ci / build-test (push) Canceled after 0s
SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/ Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue, контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер), Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог). Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0, тесты 1340/130/52/38/9 зелёные.
63 lines
3.8 KiB
Bash
63 lines
3.8 KiB
Bash
# deploy/.env.prod.example — шаблон production-окружения «Дейла» (compose.prod.yml, Ruling 9; Task 14).
|
||
#
|
||
# Использование:
|
||
# cp deploy/.env.prod.example deploy/.env.prod
|
||
# # заполнить ВСЕ секреты (пустое значение = config упадёт с подсказкой — fail-fast, Ruling 9)
|
||
# docker compose --env-file deploy/.env.prod -f deploy/compose.prod.yml config # проверка
|
||
# docker compose --env-file deploy/.env.prod -f deploy/compose.prod.yml up -d --build
|
||
# # + наблюдаемость (профиль): ... up -d --build --profile observability
|
||
#
|
||
# Пароли/токены/ключи НЕ имеют значений-дефолтов (генерация: openssl rand -base64 32 и т.п.).
|
||
# DEAL_OPERATOR_* можно оставить пустыми: оператор тогда НЕ создаётся при старте (Ruling 1) —
|
||
# заведёте позже env + рестартом core.
|
||
|
||
# ── Обязательные секреты (пусто → docker compose config: ошибка с именем переменной) ──
|
||
|
||
# Пароль Postgres (пользователь/БД фиксированы: deal/deal).
|
||
DEAL_PG_PASSWORD=
|
||
|
||
# Ключ AES-256-GCM шифрования секретов настроек core (32 байта, base64): openssl rand -base64 32.
|
||
# Альтернатива — файл data/encryption.key на volume deal_api_data (см. техдок §13.4a).
|
||
DEAL_ENCRYPTION_KEY=
|
||
|
||
# Общий service-token процессов (gRPC-metadata; один на весь стек).
|
||
DEAL_SERVICE_TOKEN=
|
||
|
||
# Ключ AES-256-GCM файлов сессий telegram-service (32 байта, base64): openssl rand -base64 32.
|
||
DEAL_TELEGRAM_SESSION_KEY=
|
||
|
||
# Креды MinIO (root; S3 API и консоль). Бакет deal-files создаётся лениво (Ruling 4).
|
||
MINIO_ROOT_USER=
|
||
MINIO_ROOT_PASSWORD=
|
||
|
||
# Origin фронта для CORS/Origin-проверки core (Ruling 9/10). При статике за caddy тот же домен:
|
||
DEAL_ALLOWED_ORIGINS=https://deal.example
|
||
|
||
# ── Оператор (Ruling 1): пусто = bootstrap пропущен (стартовый warning), заводится позже env+рестарт ──
|
||
DEAL_OPERATOR_LOGIN=
|
||
DEAL_OPERATOR_PASSWORD=
|
||
|
||
# ── mTLS внутреннего gRPC (Ruling 6; Task 13/14) ──
|
||
# 0/пусто — plaintext + service-token внутри изолированной сети; 1 — TLS + клиентский сертификат.
|
||
# Сертификаты: запустите scripts/mtls-certs.sh (deploy/certs/*) и задайте пароль PFX:
|
||
DEAL_MTLS_ENABLED=0
|
||
DEAL_MTLS_CERT_PASSWORD=
|
||
|
||
# При DEAL_MTLS_ENABLED=1 схемы внутренних endpoint'ов обязаны стать https:// (иначе рукопожатие
|
||
# падает — код схему сам не переключает, см. task-13-report). Порт/имя менять не нужно:
|
||
DEAL_ML_ENDPOINT=http://ml-service:5103
|
||
DEAL_AI_ENDPOINT=http://ai-service:5102
|
||
DEAL_TELEGRAM_ENDPOINT=http://telegram-service:5101
|
||
DEAL_CORE_INGRESS=http://core:5082
|
||
|
||
# ── Необязательные (дефолты в compose.prod.yml) ──
|
||
# Каталог сертификатов mTLS на хосте (монтируется в /etc/deal/certs контейнеров):
|
||
# DEAL_CERTS_DIR=./certs
|
||
# Дефолт-бюджет ИИ нового тенанта (токенов/месяц; константа кода — 10 000 000):
|
||
# DEAL_DEFAULT_AI_BUDGET=
|
||
|
||
# ── Observability-профиль (только при --profile observability; см. compose.prod.yml) ──
|
||
# Пароль admin'а Grafana. Задать ПЕРЕД подъёмом профиля (пусто — grafana не получит пароль):
|
||
DEAL_GRAFANA_ADMIN_PASSWORD=
|
||
# DEAL_GRAFANA_ADMIN_USER=admin
|