К содержимому

Подготовить новый сервер — с нуля ​

Если вам выдали только IP-адрес и доступ к новому серверу, начните здесь. В результате сервер будет готов принять установочный комплект NGENSIA. Само приложение установим следующим шагом.

Пример ниже — отдельный новый сервер Ubuntu Server 24.04 LTS, x86_64 / amd64. Для другой ОС команды будут отличаться. Это инструкция подготовки, а не подтверждение нагрузочной приёмки NGENSIA на вашем сервере.

Уже работающий сервер — другой сценарий

Не выполняйте эти шаги поверх действующей NGENSIA или чужих контейнеров. Не переустанавливайте ОС, не удаляйте Docker и не обновляйте существующий VPS с Ubuntu 20.04 по этой статье. Для него сначала нужен отдельный план переноса. Если сервер уже подготовлен, выполните только проверки и переходите к установке.

Какую ОС выбрать ​

Если сервер новый и в компании нет обязательного стандарта, выбирайте Ubuntu Server 24.04 LTS, x86_64 / amd64, без графического интерфейса. Именно для неё ниже приведены команды. LTS означает длительную поддержку: стандартные обновления безопасности Ubuntu 24.04 предусмотрены до мая 2029 года. Сроки поддержки Ubuntu.

Ubuntu не является обязательной частью приложения. NGENSIA и PostgreSQL 17 запускаются в контейнерах — готовых комплектах программы и её зависимостей. Но контейнеры используют ядро, сеть и диски сервера. Поэтому «Docker запустился» ещё не означает «вся система готова к работе».

ОС сервераЧто выбрать и что учесть
Ubuntu Server 24.04 LTSОсновной вариант для этой инструкции. Перед запуском всё равно проверьте комплект, ресурсы, доступы и восстановление. Наличие инструкции не заменяет проверку конкретного сервера.
Другая поддерживаемая Ubuntu LTSВозможный вариант после проверки. Уточните поддержку точной версии ОС со стороны Docker и срок обновлений безопасности. Команды с noble ниже относятся только к 24.04 — не копируйте их в другую версию.
Debian 12 или 13Возможная альтернатива после проверки NGENSIA. Для этих версий есть официальная инструкция Docker. Используйте репозиторий Debian, а не Ubuntu, и проверьте срок поддержки выбранной версии Debian.
RHELВозможен отдельный сценарий по инструкции Docker для RHEL. Инфраструктурщики проверяют точную версию, пакеты, SELinux и сетевые правила. Команды apt из этой статьи не подходят.
Rocky Linux, AlmaLinux, Astra Linux, РЕД ОС и другие корпоративные LinuxСначала согласуйте конкретную версию с инфраструктурщиками и сопровождающим NGENSIA. Нужны подходящий способ установки Docker/Compose, разрешение по политике компании и отдельная репетиция. Совместимость с родственным Linux не является подтверждением поддержки NGENSIA.
Ubuntu 20.04Не выбирайте для новой установки по этому гайду. Стандартная поддержка закончилась в мае 2025 года; расширенная требует Ubuntu Pro/ESM. Для существующего сервера сначала проверьте поддержку и спланируйте перенос, не переустанавливайте его на месте.
Windows Server или macOSЭтот Linux-комплект не устанавливается напрямую по приведённым командам. Если инфраструктура построена на Windows, обсудите отдельную виртуальную машину Linux x86_64. Docker Desktop на рабочем компьютере не заменяет проверенный серверный сценарий.

Статус альтернатив: в этом гайде перечислены кандидаты для проверки, а не обещание работы NGENSIA на каждой ОС. Перечень платформ Docker и доступность пакетов смотрите в официальной документации Docker; совместимость самого комплекта NGENSIA подтверждается отдельно.

Название процессора тоже важно: текущий комплект рассчитан на Linux x86_64 / amd64. Сервер ARM / aarch64 нельзя считать подходящим только потому, что на нём есть Docker: нужен отдельный образ NGENSIA и его проверка.

Что проверить для другой ОС ​

Передайте этот список инфраструктурщикам. От нового администратора не требуется самостоятельно разбираться в настройках ядра или отключать защиту сервера.

До установки ​

  1. Название и версия ОС. Запишите их полностью, например «Debian 13, x86_64». Убедитесь, что для версии ещё выпускают исправления безопасности и сервер их получает. Одного названия «Linux» недостаточно.
  2. Docker Engine и Compose. Выберите подходящие пакеты по инструкции для своей ОС. Проверьте docker version и docker compose version, запишите версии. Нужен доступ к серверной части Docker, а не только установленная команда. Podman, rootless Docker и Kubernetes не являются проверенной заменой текущего комплекта.
  3. Средства установщика. Нужны Python 3.8+, sh, tar, sha256sum, stat и flock из util-linux. Для штатного расписания резервных копий нужен работающий systemd — служба, которая запускает задачи по расписанию. Названия пакетов и команды их установки могут отличаться; не заменяйте системный Python вслепую.
  4. Права и защита файлов. Проверьте создание закрытых каталогов и доступ контейнеров к своим данным. На системах с SELinux или AppArmor — механизмами ограничения доступа программ — согласуйте правила с администратором. Не отключайте защиту целиком и не используйте chmod 777, чтобы убрать ошибку доступа. Административную сессию можно получить через sudo: разрешать прямой SSH-вход root для установки не обязательно.
  5. Диски и ресурсы. Определите, где физически находятся Docker-данные, вложения и внешние резервные копии. Проверьте свободное место, память и ограничения контейнеров. Маленький тестовый запуск не подтверждает достаточную мощность для всех пользователей.
  6. Сеть. Проверьте DNS, HTTPS, время сервера и доступ к необходимым образам либо их проверенную офлайн-поставку. Снаружи должны быть доступны только согласованные службы, а не PostgreSQL и внутренние порты. Инфраструктурщики должны проверить реальные правила Docker и firewall, а не только наличие включённого межсетевого экрана.

После пробной установки ​

Сначала используйте отдельный тестовый сервер или изолированную среду без рабочих данных. Не проверяйте перезагрузку, восстановление и откат на действующей системе.

  1. Установите тот комплект, который планируете использовать, и создайте первого Superuser по инструкции установки. База — только PostgreSQL 17, независимо от ОС сервера.
  2. Проверьте состояние и журналы: нет ошибок доступа к файлам, база доступна, контейнеры работают. Войдите через целевой HTTPS-адрес, создайте тестовую заявку и убедитесь, что вложение загружается и скачивается. Проверьте ограничение доступа обычного пользователя.
  3. На тестовом сервере проверьте перезапуск приложения и перезагрузку ОС: система возвращается в работу, запись и вложение остаются на месте. Отдельно проверьте нужные вашей установке фоновые задачи и интеграции.
  4. Сделайте резервную копию, восстановите её в отдельное окружение и откройте тестовую запись с вложением. Убедитесь, что расписание копирования действительно выполняется, а копия доступна вне исходного сервера.
  5. Проведите пробное обновление и откат по инструкции для выбранного выпуска. Не подменяйте эту проверку повторным открытием страницы входа.

Когда можно принимать решение: зафиксированы точные версии ОС, Docker, Compose и комплекта NGENSIA, результаты проверок и ответственный за обслуживание. Непройденный пункт нужно исправить или согласовать как риск до запуска. Это относится и к Ubuntu 24.04, и к альтернативам.

Если выбираете не Ubuntu 24.04, остановитесь перед командами установки пакетов ниже: получите адаптированную инструкцию для своей ОС. Не подставляйте название другой системы в команды Ubuntu наугад.

Что получить до начала ​

Что нужноГде это взять
IP-адрес, имя пользователя, SSH-ключ или парольВ панели хостинга или у администратора сервера
Доступ к консоли сервера через панель хостингаПонадобится, если SSH-соединение не работает
Права администратора (sudo)У администратора; обычного доступа по SSH недостаточно
Домен и доступ к его DNS-записямУ владельца домена; провайдер может быть любым
Проверенный комплект NGENSIAУ сопровождающего, с подтверждением совместимости установщика
План хранения вложений и внешних резервных копийДиск, S3, копии

Подготовить сервер можно и до получения комплекта. Но установить NGENSIA по случайному архиву или старому установщику нельзя. Размер сервера согласуйте по объёму данных и числу пользователей: универсального обещания «любой маленький VPS подойдёт» нет.

1. Подключитесь к серверу ​

На своём компьютере откройте PowerShell в Windows или Терминал в macOS/Linux. Только команду подключения вводим на своём компьютере:

sh
ssh USER@SERVER_IP

Замените USER на выданное имя пользователя, а SERVER_IP — на IP сервера. Например, ubuntu@192.0.2.10 — лишь пример записи, не адрес вашей системы. Если выдан SSH-ключ, используйте способ подключения и путь к ключу из панели провайдера. Не вставляйте содержимое закрытого ключа в командную строку или переписку.

При первом подключении SSH показывает отпечаток ключа сервера. Сверьте его с данными администратора или консоли хостинга, прежде чем подтверждать соединение. Если ключ неожиданно изменился, остановитесь: не удаляйте старую запись вслепую. При вводе пароля символы не отображаются — это нормально.

После подключения появится приглашение с именем пользователя и сервера. Все дальнейшие команды этой статьи выполняются в этой удалённой сессии Linux, а не в PowerShell вашего компьютера.

Как вводить команды

Копируйте команду без знаков приглашения вроде $ или root@server:~#. Нажмите Enter и дождитесь окончания. Если появилась ошибка, не переходите к следующему шагу. Блок с EOF ниже нужно вставить целиком, включая последнюю строку EOF.

2. Получите административные права ​

sh
whoami

Если ответ — root, дополнительная команда не нужна. Иначе выполните:

sh
sudo -i
whoami

Теперь ожидается root. sudo может попросить пароль пользователя Linux. Сообщение об отсутствии прав означает, что администратор должен предоставить доступ; продолжать от обычного пользователя нельзя.

root управляет сервером, а Superuser управляет NGENSIA в браузере. Это разные учётные записи и разные пароли.

Для этого комплекта используем административную сессию: установщик создаёт закрытый каталог runtime, принадлежащий root. Не исправляйте ошибки доступа командой chmod 777 и не открывайте всем доступ к Docker-сокету. Группа docker тоже даёт административные возможности, а не ограниченную роль. Пояснение Docker о правах.

3. Убедитесь, что это нужный и свободный сервер ​

sh
hostname
cat /etc/os-release
uname -m
free -h
df -h /
ss -lntup
command -v docker

Проверьте имя сервера; в ОС должны быть Ubuntu и версия 24.04, в архитектуре — x86_64. free показывает память, df — место на диске, ss — занятые сетевые порты. Порт SSH обычно уже занят — так вы подключились к серверу. Занятые 80/443 или неизвестные службы не останавливайте: сначала выясните, кому они принадлежат.

Если последняя команда вывела путь к Docker, проверьте существующую установку:

sh
docker version
docker compose version
docker ps -a

Если Docker и Compose работают, не переустанавливайте их: после проверки совместимости переходите к шагу 5. Если есть неизвестные контейнеры или ошибки, сначала обратитесь к администратору.

Если Docker отсутствует, проверьте пакеты:

sh
dpkg-query -W -f='${binary:Package} ${Status}\n' docker.io docker-ce docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc

Сообщения «не найдено» здесь ожидаемы на новом сервере. Строки install ok installed означают, что часть ПО уже установлена. Не удаляйте её по универсальной команде: согласуйте совместимость и назначение сервера.

4. Установите Docker и Compose, если их нет ​

На новом сервере используем официальный репозиторий Docker. Ubuntu 24.04 есть в его списке поддерживаемых ОС. Источник и актуальные требования Docker.

Сначала установите средства загрузки и сертификаты:

sh
apt update
apt install ca-certificates curl

apt может спросить разрешение: проверьте перечень пакетов и подтвердите Y, затем Enter. Ошибки загрузки, проверки подписи или нехватки места нужно устранить до продолжения.

Добавьте ключ репозитория:

sh
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

На этом новом сервере создайте файл источника пакетов. Не заменяйте существующий файл с настройками другой установки:

sh
test ! -e /etc/apt/sources.list.d/docker.sources && tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: noble
Components: stable
Architectures: amd64
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Ожидается вывод шести строк, начиная с Types: deb. Если его нет, файл уже существует — остановитесь и проверьте настройку с администратором. Эти значения подходят только для Ubuntu 24.04 amd64 из начала статьи.

Теперь установите Docker Engine и плагин Compose:

sh
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Это установка Docker, а не обновление NGENSIA. Установленные версии запишите для приёмки; более новый Docker не означает автоматически проверенную совместимость всего продукта.

Проверьте запуск:

sh
systemctl is-active docker
systemctl is-enabled docker
docker version
docker compose version
docker run --rm hello-world

Ожидаются active, enabled, сведения о клиенте и сервере Docker, версия Compose и сообщение Hello from Docker!. Последняя команда скачивает маленький проверочный образ и удаляет только свой завершённый контейнер; нужен доступ в интернет.

Если на этом новом сервере Docker установлен, но не запущен или не включён при загрузке:

sh
systemctl enable --now docker

Затем повторите проверки. Не используйте эту команду как способ «починить» неизвестную действующую установку. Команда Compose пишется с пробелом: docker compose, не старый docker-compose.

5. Установите Python и вспомогательные команды ​

sh
apt update
apt install python3 util-linux nano
python3 --version
flock --version
nano --version

Нужен Python 3.8 или новее. util-linux предоставляет flock, чтобы две серверные операции не выполнялись одновременно; nano — редактор настроек. Для этого комплекта не нужны pip, виртуальная среда Python или замена системного Python. Документация Ubuntu о Python.

PostgreSQL 17 и приложение запускаются в контейнерах из комплекта. Не устанавливайте отдельно базу, Node.js или веб-сервер на хост «на всякий случай».

6. Подготовьте место и безопасный доступ ​

Для новой установки в статье используется /opt/ngensia. Убедитесь, что этот путь не занят прежней системой:

sh
ls -ld /opt/ngensia

Если каталога нет, создайте его:

sh
install -d -m 0750 /opt/ngensia

Если он уже есть, не очищайте его. Проверьте содержимое и согласуйте другой каталог или нужный сценарий. Размещение больших данных и диска Docker планируют до установки; каталог комплекта сам по себе не переносит Docker-тома на другой диск.

В сетевых правилах хостинга оставьте SSH доступным только согласованным администраторам. Пока не открывайте NGENSIA всем: порядок DNS, 80/443, HTTPS и ограниченной проверки описан в следующем сетевом шаге. Одних правил UFW недостаточно считать Docker-порты защищёнными. Ограничения Docker и межсетевых экранов.

Можно переходить к установке? ​

  • Вы точно подключены к новому целевому серверу и работаете от root.
  • Docker отвечает, Compose установлен, hello-world завершился успешно.
  • Python не старее 3.8, команды flock и nano доступны.
  • Память, диск и занятые порты проверены; чужие проекты не затронуты.
  • Получен проверенный комплект, подготовлены домен и внешнее место для копий.

Далее: передать комплект, создать первого Superuser и запустить NGENSIA. Подготовка сервера не отменяет проверку готовности нового установщика, указанную в начале той инструкции.

Если что-то не получилось ​

Что видитеЧто проверить
SSH: Connection timed outIP, включён ли сервер, разрешён ли SSH с вашего адреса в панели хостинга
SSH: Permission deniedВыданное имя пользователя и ключ/пароль; это ещё не ошибка Docker
sudo: command not found или нет правПравильная ли ОС и административная учётная запись; обратиться к администратору
Cannot connect to the Docker daemonsystemctl status docker --no-pager; не удалять Docker-данные
Docker: permission deniedwhoami должен показать root; не менять права сокета
hello-world не скачиваетсяDNS, интернет, доступ к реестру образов; это не проверка приложения NGENSIA
docker: 'compose' is not a docker commandНаличие пакета docker-compose-plugin из того же репозитория
No space left on devicedf -h; согласовать расширение, не удалять тома и копии вслепую

Сохраните команду и текст ошибки для сопровождающего, но не отправляйте пароли, закрытые ключи или содержимое секретных файлов. Для выхода из root-сессии введите exit; для закрытия SSH-соединения — ещё раз exit, если остались в пользовательской сессии.

Сверено с версией 0.9 · редакция 13.10.2026

Документация NGENSIA · Работа, настройка и эксплуатация