Обзор развертывания Strapi на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Сетевые доступы: открытые порты 80, 443 (для HTTPS через Nginx) и 1337 (внутренний порт приложения).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу управления используется следующий шаблон домена:
| Параметр | Значение |
|---|---|
| Префикс | strapi |
| Домен | hostkey.in |
| Полный шаблон | strapi{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе создаются следующие директории для хранения данных и конфигураций:
-
/opt/strapi— основная рабочая директория приложения (данные Strapi). -
/root/nginx— директория с конфигурационным файлом Docker Compose для прокси-сервера. -
/var/lib/postgresql/data— хранилище данных базы данных PostgreSQL.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка окружения: создание необходимых директорий и сетевой среды Docker (
strapi_network). -
Установка системных компонентов: установка Docker на сервер.
-
Развертывание базы данных: запуск контейнера PostgreSQL для хранения данных приложения.
-
Загрузка образа приложения: получение актуального образа
vshadbolt/strapi:latest. -
Настройка прокси-сервера: создание конфигурации Nginx с поддержкой SSL через Certbot и запуск контейнера для управления сертификатами.
Права доступа и безопасность¶
-
Для директории данных приложения
/opt/strapiустановлены права владельца1000:1000с режимом доступа0755. -
Конфигурационные файлы Nginx в
/root/nginx/compose.ymlимеют права0644и принадлежат пользователюroot. -
Приложение использует случайные секретные ключи (APP_KEYS, JWT_SECRET и др.), генерируемые автоматически при установке для обеспечения безопасности сессий и токенов.
Базы данных¶
Приложение использует базу данных PostgreSQL:
-
Имя базы данных:
strapi -
Пользователь:
strapi_user -
Хост:
strapi-db(внутри Docker-сети) -
Порт:
5432 -
Место хранения:
/var/lib/postgresql/data
Контейнеры Docker и их запуск¶
В системе работают следующие контейнеры:
База данных¶
-
Имя образа:
postgres:15 -
Порты:
5432:5432 -
Политика перезапуска: всегда (
always) -
Сеть:
strapi_network -
Тома:
/var/lib/postgresql/data:/var/lib/postgresql/data
Приложение Strapi¶
-
Имя образа:
vshadbolt/strapi:latest -
Порты:
1337:1337 -
Политика перезапуска: всегда (
always) -
Сеть:
strapi_network -
Тома:
/opt/strapi:/srv/app -
Переменные окружения: настроены параметры подключения к базе данных, режим
productionи уникальные секретные ключи.
Прокси-сервер (Nginx + Certbot)¶
-
Имя образа:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Политика перезапуска: если не остановлен вручную (
unless-stopped) -
Тома:
-
nginx_secrets:/etc/letsencrypt(для хранения SSL сертификатов) -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(пользовательские конфигурации)
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с файлом compose или использовать терминал для управления контейнерами.
-
Выполнить команду:
(Примечание: если управление осуществляется через Docker CLI напрямую, необходимо остановить старый контейнер и запустить новый с актуальным образом).
Расположение конфигурационных файлов и данных¶
-
Данные приложения:
/opt/strapi -
Данные БД:
/var/lib/postgresql/data -
Конфигурация прокси:
/root/nginx/compose.yml -
Сертификаты SSL: хранятся в именованном томе
nginx_secrets.
Доступные порты для подключения¶
| Порт | Назначение |
|---|---|
| 80 | HTTP (для получения сертификатов) |
| 443 | HTTPS (основной доступ к приложению) |
| 1337 | Внутренний порт приложения Strapi |
| 5432 | Порт базы данных PostgreSQL |