Docker Compose — Standalone
Требования
- Сервер по системным требованиям
- Docker Engine и плагин Docker Compose
- Два DNS-имени, указывающие на сервер: приложение (
example.flip-chart.ru) и MCP-сервер (mcp.example.flip-chart.ru) - SSL-сертификаты на оба имени либо один wildcard/SAN-сертификат
- Учётные данные SMTP-сервера
Шаги по настройке
1. Копирование файлов на сервер
Распакуйте на сервере архив поставки с ключами доступа и конфигурационными файлами.
├── credentials
│ ├── authorized_key.json — ключ доступа к реестру Docker-образов
│ └── License_key.txt — лицензионный ключ приложения
└── deploy
├── docker-compose
│ ├── .env — версия образов и учётные данные PostgreSQL/MinIO
│ ├── docker-compose.yaml
│ ├── config
│ │ ├── backend/config.yaml
│ │ ├── file-handlers/config.yaml
│ │ ├── frontend/config.js
│ │ ├── mcp-server/config.yaml
│ │ └── nginx
│ │ ├── default.conf
│ │ └── certificates/ — каталог для SSL-сертификатов
│ └── sources
│ └── gifs.tar
└── kubernetesПримеры файлов: docker-compose.yaml, .env, конфигурационные файлы.
Примечание
Все дальнейшие команды выполняются из каталога deploy/docker-compose.
2. SSL-сертификаты
Разместите сертификаты в config/nginx/certificates/:
| Файл | Назначение |
|---|---|
crt.pem, key.pem | приложение (example.flip-chart.ru) |
mcp-crt.pem, mcp-key.pem | MCP-сервер (mcp.example.flip-chart.ru) |
При использовании одного сертификата на оба домена в обоих блоках server файла config/nginx/default.conf указываются одни и те же файлы.
Самоподписанный сертификат для тестовой установки:
bash
openssl req -x509 -newkey rsa:4096 -days 365 -nodes \
-subj "/CN=example.flip-chart.ru" \
-addext "subjectAltName=DNS:example.flip-chart.ru,DNS:mcp.example.flip-chart.ru" \
-keyout config/nginx/certificates/key.pem \
-out config/nginx/certificates/crt.pem3. Переменные окружения
Отредактируйте файл .env:
ini
# Реестр и версия образов flip
FLIP_REGISTRY_IMAGE=cr.yandex/crpbj8irels1kqult74e/onpremise
FLIP_VERSION=v1.2.0
# PostgreSQL (Standalone). Значения должны совпадать с секцией Postgres в config/backend/config.yaml
POSTGRES_USER=flip
POSTGRES_PASSWORD=secret-passwd
POSTGRES_DB=flip
# MinIO (Standalone). Значения должны совпадать с секциями S3 в конфигурациях backend и file-handlers
MINIO_ROOT_USER=flip-minioadmin
MINIO_ROOT_PASSWORD=flip-minioadminsecret
MINIO_BUCKET=flipПримечание
Учётные данные PostgreSQL и MinIO из .env должны совпадать с секциями Postgres, S3 и S3Config в конфигурационных файлах backend и file-handlers.
4. Конфигурационные файлы
Заполните файлы в каталоге config: домены, параметры SMTP, секреты (openssl rand -hex 16).
| Файл | Описание |
|---|---|
config/backend/config.yaml | Backend |
config/file-handlers/config.yaml | File-handlers |
config/frontend/config.js | Frontend |
config/mcp-server/config.yaml | MCP-server |
config/nginx/default.conf | Nginx — server_name обоих блоков server |
Права на файлы
Процессы в контейнерах работают не от root (backend — uid 1001, frontend — пользователь nginx). Конфигурационные файлы и сертификаты должны быть доступны на чтение:
bash
chmod -R a+rX configSMTP
SMTP используется для отправки кодов подтверждения, приглашений и уведомлений. Параметры задаются в секции Mail конфигурации backend. Инструкции провайдеров: Yandex 360, Yandex Cloud Postbox, Mail.ru.
5. Доступ к реестру образов
bash
cat ../../credentials/authorized_key.json | docker login --username json_key --password-stdin cr.yandex
docker compose pull6. Хранилище
Запустите базы данных и S3-хранилище:
bash
docker compose up -d flip-postgres flip-valkey flip-minioСоздайте бакет с публичным доступом на чтение (переменные из .env):
bash
set -a; . ./.env; set +a
docker compose exec flip-minio sh -c "mc alias set flipminio http://localhost:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD && mc mb --ignore-existing flipminio/$MINIO_BUCKET && mc anonymous set download flipminio/$MINIO_BUCKET"Загрузите медиа-ресурсы приложения:
bash
tar -xf sources/gifs.tar -C .
docker compose cp gifs flip-minio:/gifs
docker compose exec flip-minio sh -c "mc cp -r /gifs flipminio/$MINIO_BUCKET"7. Запуск приложения
bash
docker compose up -d
docker compose psВсе контейнеры должны быть в состоянии running (healthy для PostgreSQL, Valkey и MinIO). Приложение доступно по адресу https://example.flip-chart.ru/app. Дальнейшие действия — первый запуск.