Перейти к содержанию

Обзор развертывания 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.

Процесс установки приложения

Развертывание выполняется в несколько этапов:

  1. Подготовка окружения: создание необходимых директорий и сетевой среды Docker (strapi_network).

  2. Установка системных компонентов: установка Docker на сервер.

  3. Развертывание базы данных: запуск контейнера PostgreSQL для хранения данных приложения.

  4. Загрузка образа приложения: получение актуального образа vshadbolt/strapi:latest.

  5. Настройка прокси-сервера: создание конфигурации 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 (пользовательские конфигурации)

Инструкция по обновлению приложения

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию с файлом compose или использовать терминал для управления контейнерами.

  2. Выполнить команду:

    docker compose pull && docker compose up -d
    
    (Примечание: если управление осуществляется через Docker CLI напрямую, необходимо остановить старый контейнер и запустить новый с актуальным образом).

Расположение конфигурационных файлов и данных

  • Данные приложения: /opt/strapi

  • Данные БД: /var/lib/postgresql/data

  • Конфигурация прокси: /root/nginx/compose.yml

  • Сертификаты SSL: хранятся в именованном томе nginx_secrets.

Доступные порты для подключения

Порт Назначение
80 HTTP (для получения сертификатов)
443 HTTPS (основной доступ к приложению)
1337 Внутренний порт приложения Strapi
5432 Порт базы данных PostgreSQL
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×