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

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

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

Процесс развертывания включает несколько этапов:

  1. Подготовка окружения: Обновление кэша пакетов apt и установка Docker CE, CLI, containerd.io и плагина Docker Compose.

  2. Настройка прокси-сервера: Создание директории /root/nginx, генерация конфигурационного файла compose.yml для Nginx и запуск контейнера для управления SSL-сертификатами через Certbot.

  3. Подготовка инфраструктуры:

  4. Создание выделенной Docker-сети restya_net.

  5. Создание директорий для данных приложения.

  6. Развертывание базы данных: Запуск контейнера PostgreSQL версии 15, создание пользователя restya и базы данных restyaboard.

  7. Развертывание приложения: Запуск основного контейнера Restyaboard с пробросом порта 8080 на локальный интерфейс.

  8. Инициализация схемы: Если база данных пуста, выполняется автоматический импорт 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

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

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

  1. Обновить образ приложения:

    docker pull restyaplatform/restyaboard:v1.7.1
    

  2. Перезапустить контейнер приложения для применения изменений:

    docker restart restya_app
    

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

Тип данных Путь на хосте Примечание
Данные БД /opt/restyaboard/postgres Хранилище PostgreSQL
Загрузки приложения /opt/restyaboard/uploads Пользовательские файлы
Конфиг Nginx (Compose) /root/nginx/compose.yml Настройки прокси-сервера

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

  • 443 (HTTPS): Внешний доступ к приложению через доменное имя.

  • 80 (HTTP): Используется Certbot для получения SSL-сертификатов.

  • 8080: Локальный порт приложения (доступен только внутри сервера).

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