---
url: https://flip-chart.ru/developers/on-premise/config/backend.md
description: >-
  Описание файла конфигурации backend flip On-Premise: домен, PostgreSQL, S3,
  Valkey, почта, способы авторизации, сессии, приглашения и токены AI-агентов
  MCP.
---

# Конфигурация приложения backend

&#x20;Скачать пример файла конфигурации&#x20;

Файл монтируется в контейнер по пути `/flip/cfg/config.yaml`.

::: tip Область конфигурации
Файл содержит параметры, управляемые на стороне установки: подключения к внешним сервисам, домен, секреты и способ авторизации. Интервалы фоновых задач, время жизни токенов и кэшей, лимиты и тарифные ограничения фиксированы в образе и в конфигурационном файле не задаются.
:::

::: danger Секреты
Все поля с пометкой «секрет» обязательны и должны быть уникальными для установки. Генерация значения:

```bash
openssl rand -hex 16
```

:::

## Описание конфигурационных полей

### Domain

* **Domain**: Базовый URL приложения с путём `/app`. Используется в ссылках в письмах и при SSO-авторизации.\
  Пример: `https://example.flip-chart.ru/app`

### LogLevel

* **LogLevel**: Уровень логирования: `debug`, `info`, `warn`, `error`.\
  Пример: `info`

### Server

* **Host**: Адрес прослушивания сервера.\
  Пример: `0.0.0.0`
* **Port**: Порт сервера. Должен совпадать с upstream в конфигурации nginx и с `flipApi.internalUrl` в конфигурации mcp-server.\
  Пример: `9000`
* **Timeout**: Тайм-аут обработки HTTP-запроса.\
  Пример: `10s`

### Postgres

* **Address**: Адрес сервера PostgreSQL.\
  Пример: `flip-postgres`
* **Port**: Порт PostgreSQL.\
  Пример: `5432`
* **User**: Имя пользователя.\
  Пример: `flip`
* **Password**: Пароль.\
  Пример: `secret-passwd`
* **Database**: Имя базы данных.\
  Пример: `flip`
* **Driver**: Драйвер миграций. Всегда `postgres`.
* **SSLmode**: Режим SSL-соединения: `disable`, `require`, `verify-full`.\
  Standalone-установка с PostgreSQL в контейнере — `disable`; внешняя БД — `require` или `verify-full`.\
  Пример: `disable`
* **SSLRootCert**: Путь к корневому сертификату внутри контейнера. Обязателен при `SSLmode: verify-full`; файл должен быть смонтирован в контейнер.\
  Пример: `/flip/certs/ca.pem`
* **MigrationDir**: Каталог миграций внутри контейнера. Всегда `/flip/migrations`.

::: tip Миграции
Миграции базы данных применяются автоматически при каждом запуске контейнера backend.
:::

### S3

* **AwsAccessKey**: Ключ доступа к S3-хранилищу.\
  Пример: `flip-minioadmin`
* **AwsSecretKey**: Секретный ключ.\
  Пример: `flip-minioadminsecret`
* **AwsRegion**: Регион хранилища. Для MinIO значение произвольное.\
  Пример: `ru-central1`
* **AwsUrl**: URL S3-хранилища.\
  Пример: `http://flip-minio:9000`
* **AWSPartitionID**: Идентификатор раздела AWS. Пустое значение.\
  Пример: `""`
* **BucketName**: Имя бакета.\
  Пример: `flip`
* **Folders**: Префиксы для хранения данных внутри бакета. Значения фиксированы.
  * **FlipsAvatarsFolder**: `flips-avatars/`
  * **TeamsAvatarsFolder**: `teams-avatars/`
  * **UsersAvatarsFolder**: `avatars/`
  * **ElementsFolder**: `elements/`
  * **CommentsFolder**: `comments/`
  * **DocsFolder**: `documents/`
  * **LinksFolder**: `links/`
  * **PresentationFolder**: `presentations/`
  * **ShapesFolder**: `shapes/`

::: danger Примечание
Сервисы backend и file-handlers должны быть подключены к одному S3-хранилищу и одному бакету.
:::

### RedisClient (Valkey)

* **Address**: Адрес сервера Valkey.\
  Пример: `flip-valkey:6379`
* **Username**: Имя пользователя. Пустое значение, если ACL не используется.\
  Пример: `""`
* **Password**: Пароль. Пустое значение, если не используется.\
  Пример: `""`
* **DB**: Номер базы данных.\
  Пример: `0`

::: danger Примечание
Сервисы backend, file-handlers и mcp-server должны быть подключены к одному экземпляру Valkey. Поддерживается только standalone-режим Valkey (без Sentinel и Cluster).
:::

### Mail

* **Host**: Адрес SMTP-сервера.\
  Пример: `smtp.example.ru`
* **Port**: Порт SMTP-сервера.\
  Пример: `587`
* **User**: Имя пользователя SMTP.\
  Пример: `user`
* **Password**: Пароль SMTP.\
  Пример: `password`
* **From**: Адрес отправителя.\
  Пример: `welcome@example.ru`

### Auth

Секция настроек авторизации.

#### CommonAuthConfig

* **CommonRegistrationFlow**: Самостоятельная регистрация пользователей по e-mail. При `false` доступ в приложение — только по приглашению или через SSO/LDAP.\
  Пример: `true`

#### ConfirmationConfig

* **CodeDigits**: Количество цифр в коде подтверждения e-mail.\
  Пример: `6`
* **Secret**: Секрет для подписи кодов подтверждения.\
  Пример: `3f1c9a7e2b8d4c6a1e5f0b9d7c3a2e81`

#### HashPasswordSalt

* **HashPasswordSalt**: Соль для хеширования паролей. Секрет.

#### FlipPasswordCipherSecret

* **FlipPasswordCipherSecret**: Секрет для шифрования паролей доступа к доскам.

#### TokenConfig

* **AccessToken.Secret**: Секрет для подписи access-токенов.
* **RefreshToken.Secret**: Секрет для подписи refresh-токенов.
* **FlipPasswordToken.Secret**: Секрет для подписи токенов доступа к доскам, защищённым паролем.

#### KeyCloakAuthConfig

Прямая интеграция с Keycloak. Для SSO через OIDC/SAML не используется — см. [Настройка SSO](/on-premise/installation/other/sso).

* **Enable**: Включение интеграции.\
  Пример: `false`
* **Address**: Адрес сервера Keycloak.\
  Пример: `https://keycloak.example.ru`
* **ClientID**: Идентификатор клиента.
* **ClientSecret**: Секрет клиента.
* **Realm**: Имя realm.

#### LdapAuthConfig

См. [Интеграция с LDAP](/on-premise/installation/other/ldap).

* **Enable**: Включение авторизации через LDAP.\
  Пример: `false`
* **Address**: URL LDAP-сервера.\
  Пример: `ldap://ldap.example.ru:389`
* **BaseDN**: Базовый DN для поиска пользователей.\
  Пример: `dc=example,dc=ru`
* **BindDN**: DN служебного пользователя для подключения.\
  Пример: `cn=admin,dc=example,dc=ru`
* **BindPassword**: Пароль служебного пользователя.
* **UseTLS**: Выполнение STARTTLS после подключения.\
  Пример: `false`
* **Attributes**: Имена LDAP-атрибутов.
  * **DN**: `dn`
  * **CN**: атрибут с отображаемым именем пользователя, например `cn`
  * **Mail**: атрибут с e-mail, например `mail`
  * **AccountStatus**: атрибут статуса учётной записи, например `accountStatus`

::: danger Примечание
Одновременно может быть включён только один из провайдеров: `KeyCloakAuthConfig` или `LdapAuthConfig`.
:::

### SessionConfig

* **Secret**: Секрет для подписи пользовательских сессий.

### InvitationConfig

* **Secret**: Секрет для подписи ссылок-приглашений.

### FileHandlerServiceConfig

* **Enable**: Включение взаимодействия с сервисом file-handlers (загрузка документов, конвертация, превью).\
  Пример: `true`
* **Address**: Адрес API сервиса file-handlers.\
  Пример: `http://flip-file-handlers:8080/api`

### Documents

* **Enable**: Включение функциональности документов на доске.\
  Пример: `true`

### McpAgentTokens

Авторизация AI-агентов через [MCP-сервер](/on-premise/config/mcp).

* **Enable**: Включение выдачи токенов агентам по OAuth. Обязательно `true` при использовании MCP-сервера.\
  Пример: `true`
* **OAuth.Clients**: Список OAuth-клиентов. По умолчанию содержит встроенного клиента `flip-mcp` (соответствует `flipApi.clientId` в конфигурации mcp-server) с callback-адресами `http://localhost:*`, `https://claude.ai/api/mcp/auth_callback`, `https://claude.com/api/mcp/auth_callback` и правами `flip:read`, `flip:write`, `comment:read`. Указывается только при необходимости заменить встроенный список; заданное значение замещает его полностью.
  * **id**: Идентификатор клиента.
  * **name**: Отображаемое имя на экране подтверждения доступа.
  * **redirectURIPatterns**: Разрешённые callback-адреса MCP-клиентов.
  * **scopes**: Выдаваемые права.
  * **isPublic**: Публичный клиент (PKCE, без client secret). Значение `true`.
