Гид по технологиям

Установка RavenDB на Ubuntu 20.04

• 5 min read • Базы данных • Обновлено 24 Nov 2025
Установка RavenDB на Ubuntu 20.04
Установка RavenDB на Ubuntu 20.04

Стартовый экран установки RavenDB на Ubuntu

О чём эта инструкция

Этот материал поможет быстро развернуть RavenDB — документно-ориентированную NoSQL базу данных, оптимизированную для .NET/Windows, на сервере Ubuntu 20.04. Примеры команд и конфигурации проверены на типичном сервере. Ключевые этапы: подготовка зависимостей, загрузка RavenDB, настройка доступа по сети, автозапуск через systemd и первичная настройка через веб-интерфейс.

Важно: инструкция предполагает доступ с правами root или эквивалентом sudo и что на сервере уже настроен пароль root.

Предварительные требования

  • Сервер с Ubuntu 20.04 LTS.
  • Доступ root (или sudo) на сервере.
  • Базовые знания работы с терминалом и редактором nano.

Установка необходимых зависимостей

RavenDB на Linux требует установленного .NET Core runtime (aspnetcore-runtime-3.1 в примере). Сначала добавим репозиторий Microsoft и установим зависимости:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb  
dpkg -i packages-microsoft-prod.deb

Ожидаемый фрагмент вывода (пример):

Selecting previously unselected package packages-microsoft-prod.
(Reading database ... 91134 files and directories currently installed.)
Preparing to unpack packages-microsoft-prod.deb ...
Unpacking packages-microsoft-prod (1.0-ubuntu20.04.1) ...
Setting up packages-microsoft-prod (1.0-ubuntu20.04.1) ...

Далее обновим индекс пакетов и установим runtime:

apt-get install apt-transport-https -y  
apt-get update -y
apt-get install aspnetcore-runtime-3.1 -y

После успешной установки .NET можно переходить к загрузке RavenDB.

Загрузка и запуск RavenDB

Скачиваем последнюю сборку RavenDB для Linux x64 и распаковываем её:

wget -O ravendb.tar.bz2 https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest

tar xvjf ravendb.tar.bz2

Установим корректные права на папку RavenDB (в примере каталог в домашнем каталоге root):

chmod -R 755 ~/RavenDB

Перейдём в директорию и запустим стартовый скрипт:

cd ~/RavenDB  
./run.sh

Примерный вывод на консоли (фрагмент):

./run.sh: line 24: xdg-open: command not found
       _____                       _____  ____ 
      |  __ \                     |  __ \|  _ \ 
      | |__) |__ ___   _____ _ __ | |  | | |_) |
      |  _  // _` \ \ / / _ \ '_ \| |  | |  _ < 
      | | \ \ (_| |\ V /  __/ | | | |__| | |_) |
      |_|  \_\__,_| \_/ \___|_| |_|_____/|____/ 


      Safe by default, optimized for efficiency

 Build 50005, Version 5.0, SemVer 5.0.0, Commit a8d3f94
 PID 23883, 64 bits, 2 Cores, Phys Mem 1.941 GBytes, Arch: X64
 Source Code (git repo): https://github.com/ravendb/ravendb
 Built with love by Hibernating Rhinos and awesome contributors!
+---------------------------------------------------------------+
Using GC in server concurrent mode retaining memory from the OS.
Could not start browser: System.ComponentModel.Win32Exception (2): No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName, String arguments)
   at Raven.Server.Utils.Cli.BrowserHelper.OpenStudioInBrowser(String url, Action`1 onError) in C:\Builds\RavenDB-Stable-5.0\50005\src\Raven.Server\Utils\Cli\BrowserHelper.cs:line 26
Server available on: http://127.0.0.1:43241
Server started, listening to requests...
TIP: type 'help' to list the available commands.
Running non-interactive.

Если появилось сообщение про xdg-open, это нормально на минимальных серверах — браузер не откроется автоматически, но сервер продолжит работать.

Примечание: при запуске сервер изначально слушает на локальном адресе (127.0.0.1) и порту вида 43241.

Нажмите Ctrl+C для остановки процесса перед изменением конфигурации.

Настройка доступа по сети

По умолчанию RavenDB доступен только с localhost. Чтобы открыть доступ извне, отредактируйте файл настроек:

nano ~/RavenDB/Server/settings.json

Измените или добавьте следующие параметры (укажите IP вашего сервера вместо your-server-ip):

{
    "ServerUrl": "http://your-server-ip:8080",
    "Setup.Mode": "Initial",
    "DataDir": "RavenData",
    "Security.UnsecuredAccessAllowed": "PrivateNetwork"

}

Сохраните изменения и закройте редактор (Ctrl+O, Enter, Ctrl+X в nano).

Создание systemd-сервиса для RavenDB

Для автоматического управления сервисом создадим unit-файл systemd:

nano /etc/systemd/system/ravendb.service

Вставьте конфигурацию (при необходимости скорректируйте путь ExecStart):

[Unit]
Description=RavenDB v4.0
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=65536
LimitRSS=infinity
LimitAS=infinity
User=root
Restart=on-failure
Type=simple
ExecStart=/root/RavenDB/run.sh

[Install]
WantedBy=multi-user.target

Загрузите изменения systemd и включите автозапуск:

systemctl daemon-reload
systemctl start ravendb
systemctl enable ravendb

Проверить статус сервиса:

systemctl status ravendb

Пример фрагмента корректного статуса:

? ravendb.service - RavenDB v4.0
     Loaded: loaded (/etc/systemd/system/ravendb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 11:25:12 UTC; 7min ago
   Main PID: 30833 (run.sh)
      Tasks: 32 (limit: 2353)
     Memory: 157.0M
     CGroup: /system.slice/ravendb.service
             ??30833 /bin/bash /root/RavenDB/run.sh
             ??30871 ./Raven.Server --browser

Когда сервис запущен, сервер должен слушать указанный в settings.json порт (в примере 8080).

Доступ к веб-интерфейсу RavenDB

Откройте в браузере http://your-server-ip:8080. Примеры экранов и последовательность действий:

Экран лицензии RavenDB

Нажмите кнопку Accept для принятия лицензионного соглашения.

Выбор режима безопасности RavenDB

Выберите опцию Unsecured, если разворачиваете в приватной сети для тестирования. Для продакшена всегда выбирайте защищённые варианты.

Настройка портов и IP

Укажите HTTP Port и IP-адрес сервера, затем Next.

Конфигурация завершена

Нажмите Restart для перезапуска сервера. После перезапуска вы попадёте на панель управления RavenDB:

Панель управления RavenDB

Нажмите CREATE DATABASE и создайте базу данных через интерфейс:

Настройка репликации в RavenDB

Укажите имя базы и нажмите Create. После этого база появится в списке:

Создание базы данных в RavenDB

Что делать если что-то пошло не так — отладка

  • Сервер не запускается: проверьте журналы systemd journalctl -u ravendb и вывод systemctl status ravendb.
  • Порт не слушается: убедитесь, что в settings.json указан правильный ServerUrl и сервер перезапущен.
  • Ошибка xdg-open: на headless-системах это нормально; для устранения можно установить xdg-utils: apt-get install -y xdg-utils.
  • .NET runtime не найден или несовместимая версия: перепроверьте версию aspnetcore-runtime.
  • Брандмауэр блокирует подключение: откройте порт в UFW/iptables, например ufw allow 8080/tcp.

Безопасность и рекомендации для продакшена

  • Никогда не используйте режим Unsecured в общедоступной сети. Используйте TLS и включите аутентификацию.
  • Размещайте RavenDB за обратным прокси (nginx) с TLS для публичного доступа.
  • Запускайте процесс под непривилегированным пользователем, а не под root. Измените User в unit-файле systemd и убедитесь, что у пользователя есть права на директории.
  • Резервное копирование DataDir по расписанию.

Альтернативные способы развертывания

  • Docker: официальный образ RavenDB может ускорить развёртывание и облегчить изоляцию.
  • Менеджер конфигурации/Ansible: автоматизация установки на группу серверов.
  • Hibernating Rhinos Cloud / управляемые сервисы: подход для минимизации операционной нагрузки.

Методология установки (мини-процесс)

  1. Подготовить сервер и доступы (root/sudo).
  2. Установить .NET runtime и зависимости.
  3. Скачать и распаковать RavenDB в выбранную директорию.
  4. Запустить ./run.sh локально, убедиться в старте.
  5. Настроить settings.json для сетевого доступа.
  6. Создать systemd unit, включить автозапуск.
  7. Настроить безопасность, создать базы через UI.

Рольовые чек-листы

Системный администратор:

  • Проверить наличие .NET runtime.
  • Настроить systemd unit и права на каталоги.
  • Открыть порты в брандмауэре.
  • Настроить резервное копирование.

Разработчик:

  • Убедиться, что приложение подключается к указанному ServerUrl.
  • Создать индексы и тестовые данные.
  • Протестировать CRUD-операции и производительность в тестовой среде.

Критерии приёмки

  • systemctl status ravendb показывает Active: active (running).
  • Веб-интерфейс доступен по http://your-server-ip:8080 и открывается страница RavenDB.
  • Можно создать базу данных через UI и выполнять запросы.
  • Процесс запущен не от root (рекомендуемо) или есть обоснование для root в инфраструктуре.

Краткий глоссарий

  • RavenDB: документная NoSQL СУБД, хранит документы в формате JSON.
  • ServerUrl: URL, на котором сервер принимает HTTP-запросы.
  • DataDir: каталог, где RavenDB хранит данные.

Короткое резюме

  • Установите aspnetcore-runtime, скачайте RavenDB, запустите ./run.sh.
  • Настройте settings.json для сетевого доступа и создайте systemd unit для автозапуска.
  • Проверьте доступность через веб-интерфейс и примените меры безопасности для продакшена.

Если нужны примеры автоматизации (Ansible playbook, systemd unit для непривилегированного пользователя) или конфигурация через Docker — напишите, подготовлю шаблоны.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро