config.ymlПолное описание параметров конфигурации платформы 1.0.10. Большинство настроек можно менять в админ-панели — YAML нужен для первого запуска, автоматизации и резервных копий.
| Метка | Значение |
|---|---|
| Обязательно | Без параметра приложение не стартует или не пройдёт установку |
| Желательно | Рекомендуется явно задать в production |
| Опционально | Есть значение по умолчанию; меняйте при необходимости |
app:
name: Cascad360
version: 1.0.10
setup_completed: false
web:
host: 0.0.0.0
port: 5000
database:
driver: mysql # или psql
host: localhost
port: 3306
database: cascad360
username: cascad360_user
password: CHANGE_ME # секрет — не храните в git
charset: utf8mb4
Остальные секции добавляйте по мере подключения шлюза, Public Auth, почты и расширений. Подробнее — в инструкции по установке.
app — приложение и установкаИмя инстанса, версия ядра и статус мастера первичной настройки.
| Параметр | Статус | По умолчанию | Описание |
|---|---|---|---|
name | Желательно | Cascad360 | Отображаемое имя в интерфейсе и отчётах |
version | Желательно | из сборки | Версия ядра (синхронизируйте с релизом) |
setup_completed | Обязательно | false | true — мастер установки завершён |
setup_app_configured | Опционально | false | Шаг «параметры приложения» в мастере |
module_registry_url | Желательно | vendor URL | Адрес реестра модулей (для зеркала — свой домен) |
web — HTTP-сервер и Public APIПорты админки и публичного API, режим доступа по ключу, секрет сессий.
| Параметр | Статус | По умолчанию | Описание |
|---|---|---|---|
host | Обязательно | 0.0.0.0 | Интерфейс прослушивания |
port | Обязательно | 5000 | Порт админ-панели и служебного API |
setup_port | Опционально | 5050 | Порт мастера до завершения setup |
public_port | Желательно | 5001 | Порт Public API при разделении портов |
public_api_separate | Желательно | false | true — admin и public на разных портах |
public_api_enabled | Желательно | true | false — Public API отключён (503) |
public_api_access_mode | Желательно | open | open или api_key_required — глобальный ключ для всех public-методов |
public_api_key_id | Обязательно | null | ID site-ключа при api_key_required |
secret_key | Желательно | генерируется | Секрет сессий; в production — уникальный |
debug | Опционально | false | Только для разработки |
При api_key_required фронт передаёт site public key в заголовке X-API-Key. Bootstrap-конфиг для SPA: GET /api/v1/public/runtime-config. Смена портов требует перезапуска сервиса.
database — платформенная БДПодключение к основной базе данных платформы. Пароли — секреты, не коммитьте в git.
| Параметр | Статус | Описание |
|---|---|---|
driver | Обязательно | mysql или psql |
host, port | Обязательно | Адрес СУБД (3306 / 5432) |
database, username, password | Обязательно | Имя БД и учётные данные приложения |
charset | Желательно | utf8mb4 для MySQL |
connections.<id>.* | Опционально | Дополнительные источники для «Студии БД» |
default | Опционально | ID datasource по умолчанию (core) |
Переменные окружения: DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD.
routing — шлюз: сервисы и маршрутыСписок backend-сервисов и правила проксирования /api/module/{module}/…. С версии 1.0.10 управляется в разделах Сервисы и Маршрутизация админ-панели.
routing.static_servicesКлюч записи — имя сервиса (латиница, цифры, -, _).
| Поле | Статус | Описание |
|---|---|---|
host, port | Обязательно | Адрес backend (Docker DNS, IP, FQDN) |
protocol | Желательно | http / https |
environment | Желательно | production, staging, development |
health_path | Желательно | Путь health check (по умолчанию /health) |
version | Опционально | Версия в UI или запрос GET /version |
routing.rules| Поле | Статус | Описание |
|---|---|---|
id | Обязательно | UUID правила (создаётся в UI) |
module | Обязательно | Сегмент URL: /api/module/{module}/ |
service | Обязательно | Имя из static_services |
priority | Желательно | Больше — выше приоритет |
path_prefix | Опционально | Префикс на backend, напр. api/v1 |
methods, hosts, headers | Опционально | Ограничения маршрута |
Имя сервиса используется в правилах маршрутизации и в поле linked_service_name у service API-ключей для Database API.
auth и unified_auth — авторизацияunified_auth — JWT| Параметр | Статус | Описание |
|---|---|---|
jwt.secret_key | Обязательно | Секрет подписи JWT (production) |
jwt.access_token_ttl | Опционально | TTL access token (сек) |
jwt.audiences.public / admin | Желательно | Разделение токенов сайта и панели |
public_api_prefixes | Желательно | Пути public API (auth, db, module) |
auth.public — Public Auth (1.0.9+)| Параметр | По умолчанию | Описание |
|---|---|---|
require_email_verification | true | Обязательное подтверждение email |
allow_public_registration | true | Регистрация через Public API |
confirmation_base_url | '' | Базовый URL ссылок в письмах verify |
lockout.max_attempts | 3 | Попыток входа до блокировки |
lockout.duration_seconds | 10800 | Длительность блокировки (3 ч) |
Настройки Public Auth также редактируются в Настройки → Безопасность → Public Auth. Значения из админки имеют приоритет над YAML.
logging — журналирование| Параметр | По умолчанию | Описание |
|---|---|---|
level | INFO | Уровень: DEBUG…CRITICAL |
format | json | json для ELK/Loki или console для dev |
file | app.log | Файл логов; null — только stdout |
syslog.* | выкл. | Отправка в syslog |
plugins — встроенные плагины| Ключ | Назначение |
|---|---|
plugins.enabled | Список включаемых плагинов (content, mail, …) |
plugins.mail | Централизованная почта |
plugins.cache | HTTP-кэш ответов |
plugins.validation | JSON Schema для запросов/ответов |
Public Auth и admin JWT настраиваются в unified_auth, не в legacy plugins.auth.
security_protection, data_security — защита| Раздел | Ключевые параметры |
|---|---|
security_protection | DDoS-лимиты, rate limit по IP, HTTPS, валидация входных данных |
data_security | Шифрование at rest, audit-журнал действий |
security | Rate limit Public API (в т.ч. mail) |
| Ключ | Назначение |
|---|---|
service_discovery | Автообнаружение (Docker, K8s); UI «Сервисы» использует static_services |
health_checks | Таймауты health check |
load_balancing | Алгоритмы балансировки upstream |
fault_tolerance | Circuit breaker и retry |
proxy | Таймауты HTTP-клиента к backend |
metrics | Интервалы сбора метрик платформы |
container_lifecycle | Docker: graceful stop, очистка |
storage, files | Файловое хранилище Public Files API |
updates, market | Центр обновлений и политика «Маркет» |
license | Лицензирование продукта |
Для типового деплоя достаточно defaults. Тонкая настройка — через YAML или раздел Конфигурация с историей версий.
| Где в админ-панели | Что меняется | Перезапуск |
|---|---|---|
| Системные настройки | web.* — порты, режим Public API, site key | При смене портов — да |
| Сервисы / Маршрутизация | routing.static_services, routing.rules | Hot-reload маршрутизатора |
| Конфигурация | Произвольный YAML + история версий | Зависит от ключей |
| API-ключи | Типы public/service, whitelist сущностей БД | Нет |
Перед правками production сделайте резервную копию: cp config.yml config.yml.backup.$(date +%Y%m%d_%H%M%S)
| Переменная | Перекрывает |
|---|---|
DATABASE_* | Секцию database |
CASCAD360_MASTER_KEY | Шифрование секретов at rest |
LICENSE_SECRET_KEY | license.secret_key |
APP_ENV=development | Режим разработки (setup) |
| Область | Проверить |
|---|---|
| Секреты | Пароли БД, jwt.secret_key, web.secret_key — не в git |
| HTTPS | TLS на reverse proxy или security_protection.https |
| Public API | public_api_separate, public_api_access_mode, site key |
| Шлюз | static_services + routing.rules для всех backend |
| Auth | confirmation_base_url, настроенная почта |
| Observability | logging.format: json, audit при необходимости |
app web database logging plugins routing service_discovery health_checks load_balancing fault_tolerance proxy metrics unified_auth auth security_protection data_security storage files updates market license sessions modules