Оформление
Подготовить новый сервер — с нуля
Если вам выдали только 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 и его проверка.
Что проверить для другой ОС
Передайте этот список инфраструктурщикам. От нового администратора не требуется самостоятельно разбираться в настройках ядра или отключать защиту сервера.
До установки
- Название и версия ОС. Запишите их полностью, например «Debian 13, x86_64». Убедитесь, что для версии ещё выпускают исправления безопасности и сервер их получает. Одного названия «Linux» недостаточно.
- Docker Engine и Compose. Выберите подходящие пакеты по инструкции для своей ОС. Проверьте
docker versionиdocker compose version, запишите версии. Нужен доступ к серверной части Docker, а не только установленная команда. Podman, rootless Docker и Kubernetes не являются проверенной заменой текущего комплекта. - Средства установщика. Нужны Python 3.8+,
sh,tar,sha256sum,statиflockиз util-linux. Для штатного расписания резервных копий нужен работающий systemd — служба, которая запускает задачи по расписанию. Названия пакетов и команды их установки могут отличаться; не заменяйте системный Python вслепую. - Права и защита файлов. Проверьте создание закрытых каталогов и доступ контейнеров к своим данным. На системах с SELinux или AppArmor — механизмами ограничения доступа программ — согласуйте правила с администратором. Не отключайте защиту целиком и не используйте
chmod 777, чтобы убрать ошибку доступа. Административную сессию можно получить черезsudo: разрешать прямой SSH-вход root для установки не обязательно. - Диски и ресурсы. Определите, где физически находятся Docker-данные, вложения и внешние резервные копии. Проверьте свободное место, память и ограничения контейнеров. Маленький тестовый запуск не подтверждает достаточную мощность для всех пользователей.
- Сеть. Проверьте DNS, HTTPS, время сервера и доступ к необходимым образам либо их проверенную офлайн-поставку. Снаружи должны быть доступны только согласованные службы, а не PostgreSQL и внутренние порты. Инфраструктурщики должны проверить реальные правила Docker и firewall, а не только наличие включённого межсетевого экрана.
После пробной установки
Сначала используйте отдельный тестовый сервер или изолированную среду без рабочих данных. Не проверяйте перезагрузку, восстановление и откат на действующей системе.
- Установите тот комплект, который планируете использовать, и создайте первого Superuser по инструкции установки. База — только PostgreSQL 17, независимо от ОС сервера.
- Проверьте состояние и журналы: нет ошибок доступа к файлам, база доступна, контейнеры работают. Войдите через целевой HTTPS-адрес, создайте тестовую заявку и убедитесь, что вложение загружается и скачивается. Проверьте ограничение доступа обычного пользователя.
- На тестовом сервере проверьте перезапуск приложения и перезагрузку ОС: система возвращается в работу, запись и вложение остаются на месте. Отдельно проверьте нужные вашей установке фоновые задачи и интеграции.
- Сделайте резервную копию, восстановите её в отдельное окружение и откройте тестовую запись с вложением. Убедитесь, что расписание копирования действительно выполняется, а копия доступна вне исходного сервера.
- Проведите пробное обновление и откат по инструкции для выбранного выпуска. Не подменяйте эту проверку повторным открытием страницы входа.
Когда можно принимать решение: зафиксированы точные версии ОС, 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 curlapt может спросить разрешение: проверьте перечень пакетов и подтвердите 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 out | IP, включён ли сервер, разрешён ли SSH с вашего адреса в панели хостинга |
SSH: Permission denied | Выданное имя пользователя и ключ/пароль; это ещё не ошибка Docker |
sudo: command not found или нет прав | Правильная ли ОС и административная учётная запись; обратиться к администратору |
Cannot connect to the Docker daemon | systemctl status docker --no-pager; не удалять Docker-данные |
Docker: permission denied | whoami должен показать root; не менять права сокета |
hello-world не скачивается | DNS, интернет, доступ к реестру образов; это не проверка приложения NGENSIA |
docker: 'compose' is not a docker command | Наличие пакета docker-compose-plugin из того же репозитория |
No space left on device | df -h; согласовать расширение, не удалять тома и копии вслепую |
Сохраните команду и текст ошибки для сопровождающего, но не отправляйте пароли, закрытые ключи или содержимое секретных файлов. Для выхода из root-сессии введите exit; для закрытия SSH-соединения — ещё раз exit, если остались в пользовательской сессии.