Обзор развертывания SeaTable на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu или Debian.
-
Права доступа: права суперпользователя (
root). -
Порты: открытый порт
443для внешнего доступа (HTTPS). -
Зависимости: наличие установленного
curl.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу приложения используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | seatable |
| Домен | hostkey.in |
| Полный шаблон | seatable{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Все основные файлы приложения и конфигурации сосредоточены в рабочей директории /opt/seatable-compose:
-
/opt/seatable-compose/— основная рабочая директория. -
/opt/seatable-compose/.env— файл с переменными окружения и настройками доступа. -
/opt/seatable-compose/seatable-license.txt— файл лицензии (создается пустым). -
/opt/seatable-compose/caddy.yml— конфигурация прокси-сервера Caddy. -
/opt/seatable-compose/seatable-server.yml— конфигурация сервисов SeaTable.
Процесс установки приложения¶
Установка выполняется путем автоматизированного развертывания через Docker Compose. Основные этапы процесса:
-
Обновление системных пакетов
APT. -
Установка вспомогательного пакета
curl. -
Установка и настройка среды Docker.
-
Создание рабочей директории
/opt/seatable-compose. -
Загрузка последнего стабильного релиза SeaTable в формате
.tar.gzс GitHub. -
Распаковка архива в рабочую директорию.
-
Инициализация файла конфигурации
.envна основе шаблона.env-release. -
Автоматическая настройка параметров в
.env: -
Установка часового пояса сервера.
-
Настройка доменного имени (hostname).
-
Генерация и запись учетных данных администратора (
admin@admin.com). -
Генерация сложных паролей для базы данных MariaDB, Redis и ключей безопасности (JWT, Secret Key).
-
Создание пустого файла лицензии
seatable-license.txt. -
Запуск контейнеров через команду
docker compose up -d.
Используемая версия образа: seatable/seatable-developer:6.2.1.
Права доступа и безопасность¶
Безопасность системы обеспечивается следующими механизмами:
-
Использование уникальных, случайно сгенерированных паролей для всех внутренних компонентов (база данных, Redis).
-
Применение сложных ключей шифрования (
JWT_PRIVATE_KEYиSECRET_KEY). -
Ограничение доступа к веб-интерфейсу через HTTPS.
Базы данных¶
Приложение использует встроенную базу данных MariaDB для хранения структурированных данных.
-
Пароль БД: генерируется автоматически при установке.
-
Хранение: данные управляются внутри Docker-контейнера и защищены переменными окружения.
Также используется Redis для управления сессиями и кэшированием, доступ к которому ограничен паролем.
Контейнеры Docker и их запуск¶
Приложение развертывается в составе группы контейнеров, управляемых через docker compose. Основные компоненты:
| Имя образа | Назначение | Особенности |
|---|---|---|
seatable/seatable-developer:6.2.1 | Основной сервер SeaTable | Использует переменные из .env, включая часовой пояс и домен |
| Контейнер MariaDB | База данных | Защищена паролем, заданным в .env |
| Контейнер Redis | Кэширование/Сессии | Защищен паролем, заданным в .env |
Caddy (через caddy.yml) | Прокси-сервер и SSL | Обеспечивает работу по протоколу HTTPS на порту 443 |
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в рабочую директорию:
-
Подтянуть обновления образов и перезапустить контейнеры: