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

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

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

  • Операционная система: Дистрибутив Linux на базе Debian.

  • Права доступа: Для установки пакетов и управления службами Docker требуются права root или доступ через sudo.

  • Зависимости:

    • curl: Необходим для загрузки скрипта установки Docker и архива релиза SeaTable.

    • Docker: Устанавливается через официальный скрипт get.docker.com.

    • Docker Compose: Управляется в рамках установки Docker.

  • Сеть: Сервер должен иметь исходящий доступ в интернет для загрузки скрипта установки Docker и пакета релиза SeaTable.

Конфигурация FQDN

Приложение настроено на доступ через конкретное доменное имя полностью (Fully Qualified Domain Name — FQDN) в зоне hostkey.in.

  • Доменная зона: hostkey.in

  • Префикс имени хоста: seatable

  • Формат: seatable<Server ID>.hostkey.in

  • Внешний порт: 443 (HTTPS)

Конечный доступный URL будет соответствовать шаблону seatable<Server ID>.hostkey.in:443.

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

Файлы приложения, конфигурация и данные находятся в следующей структуре каталогов:

  • Корневой каталог установки: /opt/seatable-compose

  • Конфигурация окружения: /opt/seatable-compose/.env

  • Файлы Docker Compose:

    • /opt/seatable-compose/caddy.yml

    • /opt/seatable-compose/seatable-server.yml

  • Расположение архива: /opt/seatable-compose/seatable-compose.tar.gz (исходный архив, может оставаться после распаковки)

  • Файл лицензии: /opt/seatable-compose/seatable-license.txt

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

Развертывание использует настройку Docker Compose, полученную из последней версии релиза SeaTable.

  1. Обновление пакетов: Система обновляет кэш пакетов APT.

  2. Установка Docker: Docker устанавливается путем выполнения официального скрипта установки через curl.

  3. Создание директории: Рабочий каталог /opt/seatable-compose создается.

  4. Загрузка архива: Архив с последней версией релиза SeaTable загружается из https://github.com/seatable/seatable/releases/latest/download/seatable-compose.tar.gz в рабочий каталог.

  5. Распаковка: Архив распаковывается в рабочий каталог.

  6. Инициализация конфигурации:

    • Если файл окружения .env отсутствует, по умолчанию создается путем копирования файла .env-release в .env.

    • Часовой пояс автоматически определяется от хоста (/etc/timezone) и устанавливается в файле .env.

    • В файл .env записываются учетные данные безопасности (адрес электронной почты и пароль администратора, пароль базы данных, пароль Redis, ключ JWT) и имя хоста сервера.

    • Образ Docker явно устанавливается как seatable/seatable-developer:latest.

Контейнеры Docker и их развертывание

Приложение запускается внутри контейнеров Docker, управляемых Docker Compose.

  • Версия образа: seatable/seatable-developer:latest

  • Файлы Compose: Развертывание использует два конкретных файла, определенных в окружении:

    • caddy.yml: Отвечает за обратный прокси-сервер и завершение SSL-сессий.

    • seatable-server.yml: Определяет службы приложения SeaTable, базу данных и кэш.

  • Выполнение: Контейнеры запускаются и управляются с помощью команды docker compose up -d из каталога /opt/seatable-compose.

Серверы прокси

Развертывание включает интегрированный обратный прокси-сервер для обработки SSL-завершения и маршрутизации.

  • ПО прокси-сервера: Caddy

  • Конфигурация: Описана в /opt/seatable-compose/caddy.yml

  • SSL/TLS: Автоматически управляется Caddy как часть стека контейнеров.

  • Внешний порт: Трафик принимается на порту 443.

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

Для внешнего доступа конфигурируется следующий порт:

Протокол Порт Назначение
HTTPS 443 Защищенный веб-доступ к панели управления SeaTable

Запуск, остановка и обновление

Управление службами выполняется через Docker Compose в каталоге установки.

  • Запуск/Перезапуск:

    cd /opt/seatable-compose
    docker compose up -d
    

  • Остановка:

    cd /opt/seatable-compose
    docker compose down
    

  • Обновление: Для обновления до последней версии developer-сборки:

    1. Остановите текущие контейнеры: docker compose down

    2. Загрузите новые образы: docker compose pull

    3. Перезапустите контейнеры: docker compose up -d

Детали конфигурации окружения

Основные параметры конфигурации хранятся в файле /opt/seatable-compose/.env. В таблице ниже приведено краткое описание критических настроек, применяемых во время развертывания:

Параметр Описание Источник/Значение
COMPOSE_FILE Список файлов Compose для загрузки caddy.yml,seatable-server.yml
COMPOSE_PATH_SEPARATOR Разделитель для списка файлов ,
TIME_ZONE Часовой пояс сервера Автоматически определен из /etc/timezone
SEATABLE_SERVER_HOSTNAME FQDN для приложения seatable<Server ID>.hostkey.in
SEATABLE_ADMIN_EMAIL Адрес электронной почты учетной записи администратора по умолчанию admin@admin.com
SEATABLE_ADMIN_PASSWORD Пароль учетной записи администратора по умолчанию Определен в переменных развертывания
MARIADB_PASSWORD Пароль базы данных MariaDB Определен в переменных развертывания
REDIS_PASSWORD Пароль кэша Redis Определен в переменных развертывания
JWT_PRIVATE_KEY Приватный ключ для подписи JWT Определен в переменных развертывания
SEATABLE_IMAGE Тег образа Docker seatable/seatable-developer:latest

Базы данных

Приложение зависит от следующих компонентов постоянного хранения данных, управляемых как контейнеры Docker:

  • Основная база данных: MariaDB

    • Учетные данные подключения хранятся в переменной окружения MARIADB_PASSWORD.
  • Кэш: Redis

    • Учетные данные подключения хранятся в переменной окружения REDIS_PASSWORD.
  • Хранилище: Данные сохраняются в томах Docker, управляемых автоматически конфигурацией docker compose.

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

  • Права доступа к файлам: Каталог установки /opt/seatable-compose создается со стандартными системными правами доступа. Файл .env и файлы конфигурации Docker сохраняют права доступа, установленные в процессе распаковки и модификации.

  • Аутентификация:

    • Система обеспечивает защиту паролем базы данных MariaDB и кэша Redis.

    • Для управления сеансами генерируется и устанавливается уникальный ключ JWT_PRIVATE_KEY.

    • Учетная запись администратора по умолчанию создается с адресом электронной почты admin@admin.com.

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