food-market/src/food-market.public
nns 4296236206
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
Docker Public / Build + push Public (test + latest) (push) Waiting to run
Docker Public / Deploy :test → test.food-market.kz (push) Blocked by required conditions
feat(public): :test ↔ test.admin, :latest ↔ admin; HTTPS-safe redirects
Workflow (.forgejo/workflows/docker-public.yml):
- Собирает ДВА тега: :test с PUBLIC_APP_URL=https://test.admin.food-market.kz
  (для test.food-market.kz) и :latest с PUBLIC_APP_URL=https://admin.food-
  market.kz (для будущего food-market.kz). deploy_prod отключён
  намеренно: прод-public закрыт владельцем.
- deploy_test: SSH на prod-vm, идемпотентно устанавливает PUBLIC_TAG=test
  в ~/food-market/deploy/.env, pull + up -d public. Smoke проверяет что
  /signup/ ссылается на test.admin и НЕ содержит admin.food-market.kz.

nginx.conf (src/food-market.public/deploy/):
- absolute_redirect off; port_in_redirect off;
  Было: curl -sI https://test.food-market.kz/signup → location: http://...
  (schema терялась на 301 /signup → /signup/).
  Стало: location: /signup/ (относительный, браузер держит https).

Env-пример (.env.example) — комментарий, что для test-билда ставить
test.admin и прод в коде оставить дефолтом в source-коде (SignupForm/
Header), но в билде всегда задавать явно через PUBLIC_APP_URL build-arg.

RUNBOOK — новый раздел «Публичный сайт: какой образ ↔ какой домен» с
таблицей и smoke-командой.

Smoke проверил:
- https://test.food-market.kz/signup → 301 на /signup/ (без схемы, https
  сохраняется).
- https://test.food-market.kz/signup/ → ссылается на test.admin.food-
  market.kz; ни одного вхождения admin.food-market.kz (без test.).
- POST /api/auth/signup с Origin test.food-market.kz → user создан в
  food-market-stage-postgres-1 (STAGE), не в food-market-postgres (прод-
  adjacent).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-04 17:14:55 +05:00
..
.astro content(public): нейтральный тон, без упоминаний сторонних систем 2026-04-26 20:19:57 +05:00
deploy feat(public): :test ↔ test.admin, :latest ↔ admin; HTTPS-safe redirects 2026-10-04 17:14:55 +05:00
public feat(brand): новый логотип food-market wordmark + apple mark 2026-05-02 00:26:42 +05:00
scripts feat(domains): миграция на food-market.kz / admin.food-market.kz 2026-04-30 13:56:51 +05:00
src feat(s20): Mapster + SSO scaffold + maintenance automation (7 пунктов) 2026-06-07 21:54:12 +05:00
.dockerignore fix(public): кнопка «Войти» вела на 410-Gone zat.kz 2026-05-02 22:15:18 +05:00
.env.example feat(public): :test ↔ test.admin, :latest ↔ admin; HTTPS-safe redirects 2026-10-04 17:14:55 +05:00
.gitignore content(public): живое наполнение — скриншоты, фото, OG, баннеры 2026-04-26 21:08:05 +05:00
astro.config.mjs revert(domains): публичный сайт → test.food-market.kz, apex 404 до релиза 2026-05-01 18:06:31 +05:00
Dockerfile fix(public): кнопка «Войти» вела на 410-Gone zat.kz 2026-05-02 22:15:18 +05:00
package.json content(public): живое наполнение — скриншоты, фото, OG, баннеры 2026-04-26 21:08:05 +05:00
pnpm-lock.yaml content(public): живое наполнение — скриншоты, фото, OG, баннеры 2026-04-26 21:08:05 +05:00
tailwind.config.ts feat(public): Phase 6 — публичный маркетинговый сайт food-market.public на Astro 2026-04-26 19:11:34 +05:00
tsconfig.json feat(public): Phase 6 — публичный маркетинговый сайт food-market.public на Astro 2026-04-26 19:11:34 +05:00