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

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

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

Для успешного развертывания приложения требуются следующие условия:

  • Операционная система: Ubuntu или Debian.

  • Права доступа: права суперпользователя (root) для установки системных пакетов и управления Docker.

  • Доменное имя: наличие настроенного домена, указывающего на IP сервера.

  • Порты:

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

  • 443 (HTTPS) — основной порт для работы приложения.

  • 27017 (MongoDB) — внутренний доступ к базе данных.

FQDN итоговой панели на домене hostkey.in

Параметр Значение
Префикс appwrite
Домен hostkey.in
Полный шаблон appwrite{Server_ID_from_Invapi}.hostkey.in

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

Основные директории, используемые в системе:

  • /opt/appwrite — рабочая директория приложения (содержит конфигурацию Docker).

  • /data/nginx — конфигурации прокси-сервера Nginx и файлы для Certbot.

  • /data/nginx/user_conf.d — пользовательские конфигурационные файлы Nginx.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка системы: установка плагина docker-compose-plugin и обновление кэша пакетов через менеджер пакетов apt.

  2. Создание окружения: создание директории /opt/appwrite с правами доступа 0755.

  3. Развертывание конфигурации:

  4. Создание файла docker-compose.yml в /opt/appwrite.

  5. Создание файла переменных окружения .env в /opt/appwrite (права доступа 0600).

  6. Запуск контейнеров: выполнение команды docker compose up -d --remove-orphans из директории /opt/appwrite.

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

  • Ограничение прав: файл конфигурации .env доступен только владельцу (0600).

  • Изоляция сети: контейнеры приложения работают в выделенной Docker-сети appwrite, что ограничивает их взаимодействие с другими процессами на хосте.

  • Безопасность базы данных: MongoDB запускается в режиме аутентификации с использованием файла ключа (keyfile) для обеспечения безопасности репликации.

Базы данных

Приложение использует две основные системы управления базами данных:

Тип БД Образ Назначение
MongoDB mongo:8.2.5 Основное хранилище данных приложения (режим Replica Set)
Redis redis:7.2.4-alpine Хранение сессий и кэширование

Данные MongoDB хранятся в Docker-томе appwrite-mongodb.

Контейнеры Docker и их запуск

Приложение разворачивается через Docker Compose и включает в себя следующие сервисы:

Основные сервисы приложения

Имя контейнера Образ Порты (внутри) Описание
appwrite appwrite/appwrite:1.9.0 80 Основное API приложение
appwrite-console appwrite/console:7.8.26 80 Панель управления (доступна по пути /console)
appwrite-realtime appwrite/appwrite:1.9.0 80 Сервис Realtime (WebSocket)

Вспомогательные сервисы и воркеры

Приложение использует множество специализированных контейнеров на базе образа appwrite/appwrite:1.9.0 для выполнения фоновых задач:

  • Воркеры: appwrite-worker-audits, appwrite-worker-webhooks, appwrite-worker-deletes, appwrite-worker-databases, appwrite-worker-functions, appwrite-worker-mails, appwrite-worker-messaging, appwrite-worker-usage.

  • Планировщики и задачи: appwrite-task-maintenance, appwrite-task-scheduler-functions, appwrite-task-scheduler-messages, appwrite-task-stats-resources.

Инфраструктурные контейнеры

Имя контейнера Образ Описание
appwrite-traefik traefik:3.6 Обратный прокси и балансировщик нагрузки
appwrite-mongodb mongo:8.2.5 База данных MongoDB
appwrite-redis redis:7.4.7-alpine Хранилище в оперативной памяти
openruntimes-executor openruntimes/executor:0.7.22 Исполнитель функций (Functions Executor)

Кастомные скрипты и дополнительные настройки

В процессе развертывания выполняются следующие действия:

  • Инициализация MongoDB: при первом запуске выполняется скрипт, который генерирует keyfile, настраивает Replica Set (rs0) и создает учетные записи пользователя (root и application user).

  • Настройка SSL: используется контейнер jonasal/nginx-certbot для автоматического получения и обновления сертификатов Let's Encrypt.

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

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

  1. Перейти в директорию с конфигурацией:

    cd /opt/appwrite
    

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

    docker compose pull
    

  3. Перезапустить контейнеры:

    docker compose up -d
    

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

Тип Путь / Том
Основной конфиг Docker /opt/appwrite/docker-compose.yml
Переменные окружения /opt/appwrite/.env
Конфигурация Nginx (SSL) /data/nginx/user_conf.d
Данные MongoDB Том appwrite-mongodb
Данные Redis Том appwrite-redis

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

  • 443 — HTTPS доступ к API и консоли управления.

  • 80 — HTTP (перенаправляется на 443).

  • 27017 — MongoDB (доступен внутри сети Docker).

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