Обзор развертывания Seatable на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Debian или её производными. Требуется наличие прав суперпользователя (root) или учетной записи с правами sudo для выполнения команд установки и управления сервисами.
Необходимые условия перед началом установки: - Доступ к интернету для загрузки пакетов и образов контейнеров. - Наличие свободного порта для работы веб-сервера (по умолчанию используется порт 80 и 443 для Caddy). - Установленная версия Docker Engine.
Структура файлов и каталогов¶
Все файлы приложения, конфигурации и данные размещаются в каталоге /opt/seatable-compose.
Основные компоненты структуры: - /opt/seatable-compose — корневая директория развертывания. - /opt/seatable-compose/.env — файл конфигурации переменных окружения, создается на основе шаблона .env-release. - /opt/seatable-compose/caddy.yml — файл конфигурации для прокси-сервера Caddy. - /opt/seatable-compose/seatable-server.yml — файл конфигурации для основного сервиса Seatable. - /opt/seatable-compose/seatable-license.txt — файл лицензии (создается пустым). - /opt/seatable-compose/seatable-compose.tar.gz — архив с исходными файлами развертывания.
Процесс установки приложения¶
Установка приложения выполняется путем загрузки архива с последней версией релиза и его распаковки в целевую директорию.
Последовательность действий: 1. Обновление кэша пакетов APT. 2. Установка пакета curl. 3. Установка Docker Engine с использованием официального скрипта установки. 4. Создание рабочей директории /opt/seatable-compose. 5. Скачивание архива seatable-compose.tar.gz с репозитория GitHub. 6. Распаковка архива в директорию /opt/seatable-compose. 7. Копирование файла .env-release в .env, если файл .env отсутствует.
Контейнеры Docker и их запуск¶
Приложение развертывается с использованием Docker Compose. Конфигурация контейнеров описана в файлах caddy.yml и seatable-server.yml.
Переменные окружения в файле .env настраиваются следующим образом: - COMPOSE_FILE указывает на список файлов конфигурации: caddy.yml,seatable-server.yml. - COMPOSE_PATH_SEPARATOR устанавливается в значение , для разделения файлов. - TIME_ZONE автоматически подставляется из системного файла /etc/timezone. - SEATABLE_SERVER_HOSTNAME задает доменное имя сервера. - SEATABLE_ADMIN_EMAIL и SEATABLE_ADMIN_PASSWORD задают учетные данные администратора. - MARIADB_PASSWORD и REDIS_PASSWORD содержат пароли для баз данных и кэша. - JWT_PRIVATE_KEY содержит приватный ключ для токенов. - SEATABLE_IMAGE указывает на образ seatable/seatable-developer:latest.
Запуск контейнеров осуществляется командой:
Команда выполняется в директории/opt/seatable-compose. Прокси серверы¶
В конфигурации используется прокси-сервер Caddy, который описан в файле caddy.yml. Он отвечает за обработку входящих HTTP/HTTPS запросов и перенаправление их на контейнер Seatable.
Настройка домена и SSL сертификатов происходит автоматически через переменную SEATABLE_SERVER_HOSTNAME в файле .env. Caddy автоматически запрашивает и обновляет сертификаты для указанного домена.
Базы данных¶
Приложение использует следующие компоненты для хранения данных: - База данных MariaDB для хранения основных данных приложения. Пароль для подключения задается в переменной MARIADB_PASSWORD. - Кэш Redis для временного хранения сессий и кэширования. Пароль для подключения задается в переменной REDIS_PASSWORD.
Данные баз данных хранятся внутри контейнеров Docker, использующих тома (volumes) для персистентности, конфигурация которых содержится в файлах docker-compose.
Запуск, остановка и обновление¶
Управление сервисом осуществляется через команды Docker Compose в директории /opt/seatable-compose.
Команды управления: - Запуск контейнеров в фоновом режиме:
- Остановка контейнеров: - Перезапуск контейнеров: - Просмотр логов:Обновление приложения до последней версии требует повторного скачивания архива seatable-compose.tar.gz, его распаковки и перезапуска контейнеров командой docker compose up -d.