food-market/deploy/.env.example
nns 45326281f9 docs(deploy): .env.example + secrets.md, проброс OpenIddict env в compose (P0-8)
deploy/.env.example — все required/опц. переменные (POSTGRES_PASSWORD, REGISTRY,
*_TAG, OPENIDDICT_ISSUER/CERT_PASSWORD, FM_* бэкапа, Cors/RateLimiting/MoySklad).
docs/secrets.md — таблица переменных, где живут секреты (SMTP в БД, сертификаты в
volume), ротация, гигиена. compose: api получает OpenIddict__Issuer (за прокси
обязателен) и OpenIddict__CertPassword из .env. compose config валиден.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 02:51:13 +05:00

44 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# food-market — пример переменных окружения для деплоя.
#
# Скопировать в deploy/.env и заполнить значениями (.env в .gitignore — НЕ коммитить).
# cp deploy/.env.example deploy/.env && $EDITOR deploy/.env
#
# docker-compose читает deploy/.env автоматически. Описание секретов и ротация —
# docs/secrets.md. Ключи OpenIddict — docs/openiddict-keys.md.
# ─── Реестр образов и теги (docker-compose) ──────────────────────────────────
# Откуда тянуть образы. Локальный registry на stage — 127.0.0.1:5001 (см. CLAUDE/memory).
REGISTRY=127.0.0.1:5001
API_TAG=latest
WEB_TAG=latest
PUBLIC_TAG=latest
# ─── База данных (ОБЯЗАТЕЛЬНО) ───────────────────────────────────────────────
# Пароль пользователя food_market в Postgres-контейнере. Подставляется и в
# POSTGRES_PASSWORD контейнера БД, и в ConnectionStrings__Default API.
# Сгенерировать: openssl rand -base64 24
POSTGRES_PASSWORD=CHANGE_ME_strong_db_password
# ─── OpenIddict / выдача токенов ─────────────────────────────────────────────
# Публичный URL админки = issuer токенов (обязателен за nginx-прокси).
OPENIDDICT_ISSUER=https://admin.food-market.kz/
# Пароль PFX-сертификатов подписи/шифрования. Пусто = без пароля (self-signed
# генерируется автоматически в App_Data, если файлов нет). Подробности — docs/openiddict-keys.md.
OPENIDDICT_CERT_PASSWORD=
# ─── Бэкап (systemd food-market-backup.*) ────────────────────────────────────
# Переопределения для скрипта бэкапа. По умолчанию совпадают с compose — можно не задавать.
# FM_BACKUP_DIR=/opt/food-market-data/backups
# FM_UPLOADS_DIR=/opt/food-market-data/uploads
# FM_BACKUP_RETENTION_DAYS=30
# ─── Прочее (опционально, переопределяет appsettings.json) ───────────────────
# CORS-origins фронта (если отличается от зашитых в appsettings). Индексируется с 0:
# Cors__AllowedOrigins__0=https://admin.food-market.kz
# Антибрутфорс на /connect/token и /api/auth/signup (дефолты 5/мин, 20/час):
# RateLimiting__Enabled=true
# RateLimiting__PerMinute=5
# RateLimiting__PerHour=20
# Интеграция МойСклад (по умолчанию боевой api.moysklad.ru):
# MoySklad__BaseUrl=https://api.moysklad.ru/api/remap/1.2/