Обзор развертывания Restyaboard на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Установленный Docker и Docker Compose.
-
Доступ к сети для загрузки образов из реестров (Docker Hub).
-
Наличие свободного порта
8080на локальном интерфейсе (127.0.0.1).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | restyaboard |
| Домен | hostkey.in |
| Полный шаблон | restyaboard{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
В процессе развертывания создаются и используются следующие директории:
-
/opt/restyaboard/postgres— хранилище данных базы данных PostgreSQL. -
/opt/restyaboard/uploads— директория для загружаемых файлов приложения. -
/root/nginx— конфигурационные файлы прокси-сервера. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx.
Процесс установки приложения¶
Процесс развертывания включает несколько этапов:
-
Подготовка окружения: Обновление кэша пакетов
aptи установка Docker CE, CLI, containerd.io и плагина Docker Compose. -
Настройка прокси-сервера: Создание директории
/root/nginx, генерация конфигурационного файлаcompose.ymlдля Nginx и запуск контейнера для управления SSL-сертификатами через Certbot. -
Подготовка инфраструктуры:
-
Создание выделенной Docker-сети
restya_net. -
Создание директорий для данных приложения.
-
Развертывание базы данных: Запуск контейнера PostgreSQL версии 15, создание пользователя
restyaи базы данныхrestyaboard. -
Развертывание приложения: Запуск основного контейнера Restyaboard с пробросом порта
8080на локальный интерфейс. -
Инициализация схемы: Если база данных пуста, выполняется автоматический импорт SQL-схемы из образа приложения в базу данных PostgreSQL.
Контейнеры Docker и их запуск¶
Приложение использует два основных контейнера, работающих в изолированной сети restya_net.
База данных (PostgreSQL)¶
-
Имя образа:
postgres:15 -
Имя контейнера:
restya_db -
Сеть:
restya_net -
Тома (volumes):
/opt/restyaboard/postgres:/var/lib/postgresql/data -
Переменные окружения:
-
POSTGRES_USER=postgres -
POSTGRES_DB=restyaboard -
Настройки пароля администратора и пользователя
restya. -
Политика перезапуска:
unless-stopped
Приложение (Restyaboard)¶
-
Имя образа:
restyaplatform/restyaboard:v1.7.1 -
Имя контейнера:
restya_app -
Сеть:
restya_net -
Порты:
127.0.0.1:8080:80 -
Переменные окружения:
-
Настройки подключения к БД (
POSTGRES_HOST,POSTGRES_PORT, и т.д.). -
Параметры пользователя базы данных для приложения.
-
Политика перезапуска:
unless-stopped
Прокси-сервер (Nginx + Certbot)¶
-
Имя образа:
jonasal/nginx-certbot:latest -
Имя контейнера:
nginx -
Режим сети:
host -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Политика перезапуска:
unless-stopped
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Обновить образ приложения:
-
Перезапустить контейнер приложения для применения изменений:
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на хосте | Примечание |
|---|---|---|
| Данные БД | /opt/restyaboard/postgres | Хранилище PostgreSQL |
| Загрузки приложения | /opt/restyaboard/uploads | Пользовательские файлы |
| Конфиг Nginx (Compose) | /root/nginx/compose.yml | Настройки прокси-сервера |
Доступные порты для подключения¶
-
443 (HTTPS): Внешний доступ к приложению через доменное имя.
-
80 (HTTP): Используется Certbot для получения SSL-сертификатов.
-
8080: Локальный порт приложения (доступен только внутри сервера).