feat(prod): compose прокидывает SEED_SUPERADMIN_PASSWORD/SEED_DEMO_DATA + прогресс запуска прода
Some checks failed
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
Docker Public / Build + push Public (test + latest) (push) Has been cancelled
Docker Public / Deploy :test → test.food-market.kz (push) Has been cancelled
Some checks failed
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
Docker Public / Build + push Public (test + latest) (push) Has been cancelled
Docker Public / Deploy :test → test.food-market.kz (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
77464d6c83
commit
a7b8bbc593
|
|
@ -67,6 +67,11 @@ services:
|
||||||
# выключен (см. QuickLoginOptions.EffectivelyEnabled).
|
# выключен (см. QuickLoginOptions.EffectivelyEnabled).
|
||||||
QuickLogin__Enabled: ${QUICK_LOGIN_ENABLED:-false}
|
QuickLogin__Enabled: ${QUICK_LOGIN_ENABLED:-false}
|
||||||
QuickLogin__MasterPassword: ${QUICK_LOGIN_MASTER_PASSWORD:-}
|
QuickLogin__MasterPassword: ${QUICK_LOGIN_MASTER_PASSWORD:-}
|
||||||
|
# Прод: начальный SuperAdmin (DevDataSeeder) и отключение демо-данных для
|
||||||
|
# чистого (пустого) старта. На проде SEED_DEMO_DATA=false → без «Demo Market».
|
||||||
|
# Пустой SEED_SUPERADMIN_PASSWORD = SuperAdmin не сидируется (безопасный дефолт).
|
||||||
|
SEED_SUPERADMIN_PASSWORD: ${SEED_SUPERADMIN_PASSWORD:-}
|
||||||
|
SEED_DEMO_DATA: ${SEED_DEMO_DATA:-}
|
||||||
# Host port mapping: pick free ports on existing stage server (80/443 taken by
|
# Host port mapping: pick free ports on existing stage server (80/443 taken by
|
||||||
# legacy nginx, 5000/5002/5005 taken by legacy .NET apps).
|
# legacy nginx, 5000/5002/5005 taken by legacy .NET apps).
|
||||||
ports:
|
ports:
|
||||||
|
|
|
||||||
34
docs/prod-launch-progress.md
Normal file
34
docs/prod-launch-progress.md
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Запуск прод-сервера admin.food-market.kz — прогресс
|
||||||
|
|
||||||
|
Приоритет №2 (09.10.2026). Цель: поднять ПУСТОЙ рабочий прод для перехода магазина на ALL MARKET.
|
||||||
|
Прод-vm 192.168.1.190, compose `~/food-market/deploy` (свой `food-market-prod-postgres:5437`,
|
||||||
|
НЕ shared-postgres). gateway nginx проксирует admin.food-market.kz → :8081 (web). Стенд и прод
|
||||||
|
изолированы. Публичный сайт food-market.kz НЕ трогаем.
|
||||||
|
|
||||||
|
## Контекст на старте
|
||||||
|
- Прод-стек НЕ был поднят целостно: web (8081) жил 3 мес, но postgres (5437) и api (8080) не
|
||||||
|
запущены → admin.food-market.kz отдавал SPA без живого API. Том `food-market-prod-postgres-data`
|
||||||
|
отсутствовал (чистый старт). В `api-data` лежали СТАРЫЕ dev OpenIddict-ключи — вычищаются.
|
||||||
|
- Прод .env был минимальный с `POSTGRES_PASSWORD=food_market_dev` (dev-дефолт!) и тегами latest/test.
|
||||||
|
|
||||||
|
## План и статус
|
||||||
|
1. [~] **Чек-лист готовности** (`docs/prod-runbook.md`): релизные теги (SHA, не test), прод-секреты
|
||||||
|
(БД/OpenIddict/суперадмин) отдельно от стенда в `.env` chmod 600; ВЫКЛ quick-login/демо-сидеры/
|
||||||
|
тест-орги; SuperAdmin — временный сложный пароль в `~/.fm-watchdog/prod-superadmin-initial.txt`
|
||||||
|
(chmod 600, сменить при первом входе).
|
||||||
|
- [x] Код: флаг `SEED_DEMO_DATA=false` отключает демо-орг «Demo Market»/demo-admin на проде
|
||||||
|
(DevDataSeeder), сохраняя SuperAdmin+роли+ед.изм.+SystemSettings. QuickLoginDemoSeeder на проде
|
||||||
|
и так no-op (issuer admin.food-market.kz глушит quick-login).
|
||||||
|
- [x] Прод .env собран: релиз-теги = SHA main, сильный POSTGRES_PASSWORD, SEED_SUPERADMIN_PASSWORD,
|
||||||
|
SEED_DEMO_DATA=false, QUICK_LOGIN_ENABLED=false, issuer прод; chmod 600. VAPID — автогенерация в
|
||||||
|
БД (секрет не нужен). SMTP — задаёт владелец (пока не настроен; сброс пароля по email неактивен).
|
||||||
|
2. [ ] **Бэкапы**: pg_dump каждый час (48 ч) + ежедневно (30 дн) + офсайт-копия; проверка
|
||||||
|
восстановления (реальный restore во временную БД + сверка числа строк). Мониторинг → Telegram.
|
||||||
|
3. [ ] **Развернуть прод** (compose up postgres+api+web), миграции, проверка https://admin.food-market.kz
|
||||||
|
(вход SuperAdmin, меню, касса), БЕЗ данных магазина.
|
||||||
|
4. [ ] **~/deploy-prod.sh** с guard'ами (только явная команда, backup до миграций), НЕ в ночных.
|
||||||
|
5. [x] Публичный сайт food-market.kz — не трогаем (контейнер public оставлен как есть, PUBLIC_TAG=test).
|
||||||
|
|
||||||
|
## Условие DONE
|
||||||
|
Прод поднят и пуст, бэкап/восстановление проверены, мониторинг шлёт тестовое уведомление → touch
|
||||||
|
`~/.fm-watchdog/DONE`.
|
||||||
Loading…
Reference in a new issue