food-market/deploy
nns 7e7eb8ef1d
Some checks are pending
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
feat(stage): полная изоляция стенда от прод-ресурсов на prod-vm
Третья утечка stage↔prod: stage-compose разделял с прод-compose
/opt/food-market-data/uploads И названные тома (food-market-postgres-data,
food-market-api-data, food-market-api-logs). Теперь всё разведено.

- Новый deploy/docker-compose.stage.yml — шаблон стендовского стека с
  food-market-stage-* волюмами, bind /opt/food-market-stage-data/uploads,
  container_name food-market-stage-*, OpenIddict Issuer по дефолту смотрит
  на test.admin.food-market.kz (а не на admin.food-market.kz).
- На prod-vm сделаны: pg_dump стенда → down → переименованы stage-*-pre-
  isolation-20261005 → up с новыми волюмами → pg_restore. Прод-контейнеры,
  прод-том food-market-postgres-data и прод-папка /opt/food-market-data/
  не тронуты (read-only inspect).
- ~/deploy-stage.sh получил guard до билда: проверяет шаблон репо и
  удалённый stage-compose на запрещённые паттерны прод-путей/томов/имён/
  issuer-URL.
- ~/quality-watchdog.sh +step 10 (06:XX ежесуточно) — тот же набор
  паттернов + docker inspect реального стенда.
- docs/stage-prod-isolation-progress.md: таблица до/после, что оставили,
  как разводили, follow-ups.

Smoke на test.admin.food-market.kz: /health/ready Healthy, 31233 товара,
invoice upload → parsing (OCR Hangfire job), GDPR org-export zip упал в
/opt/food-market-stage-data/uploads/exports/. Прод-папка /opt/food-market-
data/uploads/ до/после миграции: 13 файлов, 0 изменений.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-05 12:21:51 +05:00
..
forgejo ops: Forgejo on git.zat.kz as primary, GitHub as mirror 2026-04-23 12:27:45 +05:00
grafana/dashboards feat(s26): flaky-test detection + observability dashboards (8/8 ✓ 10/10 cert) 2026-06-08 14:44:19 +05:00
nginx feat(public): Phase 6 — публичный маркетинговый сайт food-market.public на Astro 2026-04-26 19:11:34 +05:00
prometheus feat(s26): flaky-test detection + observability dashboards (8/8 ✓ 10/10 cert) 2026-06-08 14:44:19 +05:00
telegram-bridge revert(domains): публичный сайт → test.food-market.kz, apex 404 до релиза 2026-05-01 18:06:31 +05:00
.env.example docs(deploy): .env.example + secrets.md, проброс OpenIddict env в compose (P0-8) 2026-05-27 02:51:13 +05:00
anonymize-prod.sh feat(s22): data tooling — export/import + schema docs + anon dump (7 пунктов) 2026-06-07 23:00:54 +05:00
backup.sh ci/deploy: GitHub Actions + Docker images + DB backup + 24x7 plan 2026-04-22 11:26:01 +05:00
check-prod-readiness.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
db-schema-diff.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
docker-compose.stage.yml feat(stage): полная изоляция стенда от прод-ресурсов на prod-vm 2026-10-05 12:21:51 +05:00
docker-compose.yml feat(s30): sentinel pwd для SPA — реальный мастер-пароль только в server-env 2026-10-04 21:02:36 +05:00
docker-registry.service feat(ops): Telegram <-> tmux bridge + local docker-registry unit 2026-04-23 10:53:45 +05:00
Dockerfile.api fix(hotfix): Claude CLI via ssh на dev-vm + не хранить фото накладных 2026-10-05 00:51:12 +05:00
Dockerfile.web fix(docker): обновить node:20-alpine → 22-alpine (pnpm 11 требует Node ≥22) 2026-05-18 12:56:12 +05:00
food-market-backup.service feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-backup.sh feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-backup.timer feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-mirror-base-images.service deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
food-market-mirror-base-images.timer deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
generate-release-notes.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
mirror-base-images.sh deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
nginx.conf fix(security): add HSTS header on stage + integration test 2026-06-09 03:35:38 +05:00
post-deploy-smoke.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
prod-deploy.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
prod-rollback.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
recovery-restore-orphan-owners.sql feat(employees): главный администратор — терминология + защита роли/активности 2026-04-27 19:12:33 +05:00
stage-prune-autotest.sql feat(s30): PruneAutoTestEntities + одноразовая зачистка стейджа (шаг 7/9) 2026-10-04 15:49:25 +05:00
swagger-diff.sh docs(s24): docs cross-check + auto-gen + onboarding + test gap-fill (8/8 ✓) 2026-06-08 02:15:56 +05:00