---
url: >-
  https://flip-chart.ru/developers/on-premise/installation/docker-compose/quick-start.md
description: >-
  Установка flip On-Premise на один сервер через Docker Compose (Standalone):
  требования, DNS-имена и SSL-сертификаты, пошаговая настройка.
---

# Docker Compose — Standalone

## Требования

* Сервер по [системным требованиям](/on-premise/installation/system-requirements)
* [Docker Engine](https://docs.docker.com/engine/install/) и плагин [Docker Compose](https://docs.docker.com/compose/install/)
* Два 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](/deploy/docker-compose.standalone.yaml), .env, [конфигурационные файлы](/on-premise/config/summary).

::: danger Примечание
Все дальнейшие команды выполняются из каталога `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.pem
```

### 3. Переменные окружения

Отредактируйте файл `.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

```

::: danger Примечание
Учётные данные PostgreSQL и MinIO из `.env` должны совпадать с секциями `Postgres`, `S3` и `S3Config` в конфигурационных файлах backend и file-handlers.
:::

### 4. Конфигурационные файлы

Заполните файлы в каталоге `config`: домены, параметры SMTP, секреты (`openssl rand -hex 16`).

| Файл | Описание |
|---|---|
| `config/backend/config.yaml` | [Backend](/on-premise/config/backend) |
| `config/file-handlers/config.yaml` | [File-handlers](/on-premise/config/file-handlers) |
| `config/frontend/config.js` | [Frontend](/on-premise/config/frontend) |
| `config/mcp-server/config.yaml` | [MCP-server](/on-premise/config/mcp) |
| `config/nginx/default.conf` | [Nginx](/on-premise/config/nginx) — `server_name` обоих блоков `server` |

::: danger Права на файлы
Процессы в контейнерах работают не от root (backend — uid 1001, frontend — пользователь `nginx`). Конфигурационные файлы и сертификаты должны быть доступны на чтение:

```bash
chmod -R a+rX config
```

:::

::: tip SMTP
SMTP используется для отправки кодов подтверждения, приглашений и уведомлений. Параметры задаются в секции `Mail` конфигурации backend. Инструкции провайдеров: [Yandex 360](https://yandex.ru/support/yandex-360/business/mail/ru/mail-clients/others), [Yandex Cloud Postbox](https://yandex.cloud/ru/docs/postbox/quickstart), [Mail.ru](https://help.mail.ru/mail/mailer/settings/).
:::

### 5. Доступ к реестру образов

```bash
cat ../../credentials/authorized_key.json | docker login --username json_key --password-stdin cr.yandex
docker compose pull
```

### 6. Хранилище

Запустите базы данных и 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`. Дальнейшие действия — [первый запуск](/on-premise/installation/first-boot).
