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

Обзор развертывания Strapi на сервере

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

Для корректной работы приложения требуются следующие условия:

  • Операционная система: Ubuntu.

  • Права доступа: пользователь с правами root.

  • Сетевые настройки: наличие доменного имени и открытые порты для HTTP/HTTPS трафика.

FDQN итоговой панели на домене hostkey.in

Для доступа к административной панели используется следующий шаблон домена:

Параметр Значение
Префикс strapi
Домен hostkey.in
Полный шаблон strapi{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

В системе используются следующие директории для хранения данных и конфигураций:

  • /opt/strapi — основная рабочая директория приложения (том Docker).

  • /var/lib/postgresql/data — данные базы данных PostgreSQL.

  • /root/nginx — конфигурационные файлы прокси-сервера Nginx.

  • /data/nginx/user_conf.d — пользовательские настройки Nginx.

  • /data/nginx/nginx-certbot.env — переменные окружения для SSL.

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

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

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

  2. Создание тома для данных приложения по пути /opt/strapi.

  3. Развертывание базы данных PostgreSQL.

  4. Загрузка образа vshadbolt/strapi:latest из реестра контейнеров.

  5. Настройка прокси-сервера Nginx с поддержкой SSL через Certbot для обеспечения безопасного соединения.

Права доступа и безопасность

  • Для директории данных приложения (/opt/strapi) установлены права владельца 1000:1000 с режимом доступа 0755.

  • Конфигурационные файлы Nginx в директории /root/nginx имеют владельца root и режим доступа 0644.

  • Приложение работает внутри изолированной Docker-сети strapi_network.

Базы данных

В качестве системы управления базами данных используется PostgreSQL.

Параметр Значение
Имя базы данных strapi
Пользователь strapi_user
Хост strapi-db (внутри сети Docker)
Порт 5432

Данные хранятся в постоянном томе /var/lib/postgresql/data.

Контейнеры Docker и их запуск

Приложение состоит из двух основных контейнеров:

База данных (PostgreSQL)

  • Имя образа: postgres:15

  • Имя контейнера: strapi-db

  • Порты: 5432:5432

  • Сеть: strapi_network

  • Политика перезапуска: всегда (always)

  • Переменные окружения: настройки имени базы, пользователя и пароля.

Приложение (Strapi)

  • Имя образа: vshadbolt/strapi:latest

  • Имя контейнера: strapi

  • Порты: 1337:1337

  • Сеть: strapi_network

  • Политика перезапуска: всегда (always)

  • Тома: /opt/strapi:/srv/app

  • Переменные окружения:

  • NODE_ENV: production

  • Настройки подключения к базе данных (хост, порт, имя БД, пользователь, пароль).

  • Автоматически генерируемые секретные ключи (APP_KEYS, ADMIN_JWT_SECRET, JWT_SECRET, API_TOKEN_SALT, TRANSFER_TOKEN_SALT).

Прокси-сервер (Nginx + Certbot)

Контейнер используется исключительно для управления SSL-сертификатами и проксирования трафика.

  • Имя образа: jonasal/nginx-certbot:latest

  • Сеть: host

  • Тома:

  • nginx_secrets:/etc/letsencrypt (для хранения сертификатов)

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d (конфигурации сайта)

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

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

docker compose pull && docker compose up -d
(Команда выполняется в директории, где расположен файл конфигурации Nginx/Compose).

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×