revert(domains): публичный сайт → test.food-market.kz, apex 404 до релиза
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 53s
CI / Web (React + Vite) (push) Successful in 38s
Docker API / Build + push API (push) Successful in 1m9s
Docker Public / Build + push Public (push) Successful in 28s
Docker Web / Build + push Web (push) Successful in 33s
Docker API / Deploy API on stage (push) Successful in 17s
Docker Public / Deploy Public on stage (push) Successful in 10s
Docker Web / Deploy Web on stage (push) Successful in 11s

Публичный сайт ещё в разработке — выносим его с food-market.kz на
test.food-market.kz. На корневом домене food-market.kz пока 404.
admin.food-market.kz остаётся как есть.

— Заменены https-URL в src/** и deploy/:
  https://food-market.kzhttps://test.food-market.kz
  (admin.food-market.kz, app.food-market.kz и emails @food-market.kz
  не трогаем — sed строго по https-префиксу).
— public Dockerfile ARG PUBLIC_SITE_URL → test.food-market.kz.
— SignupForm/Header/NoOrganizationPage указывают на admin.food-market.kz
  для API (без изменений с прошлого коммита).
— appsettings.json CORS: test + admin.food-market.kz.

Nginx (на сервере):
- /etc/nginx/conf.d/test.food-market.kz.conf — новый, серт LE issued.
- food-market.kz.conf — apex теперь 404 (HTTPS), серт переиспользует
  пару (food-market.kz + admin.food-market.kz).
- food-market.zat.kz и app.food-market.zat.kz — 301 на test/admin
  соответственно.

Smoke: test/, /signup/, admin/health, admin/login = 200; apex = 404;
zat → test/admin 301; sitemap.xml отдаёт https://test.food-market.kz/.
This commit is contained in:
nns 2026-05-01 18:06:31 +05:00
parent 58df887f1c
commit 79406e304e
13 changed files with 20 additions and 20 deletions

View file

@ -9,7 +9,7 @@ Config (/etc/food-market/telegram.env or env vars):
TELEGRAM_BOT_TOKEN bot token (required)
TELEGRAM_CHAT_ID single whitelisted chat id (required)
TELEGRAM_WEBHOOK_URL public URL Telegram should POST to
(default: https://food-market.kz/tg-webhook)
(default: https://test.food-market.kz/tg-webhook)
TELEGRAM_WEBHOOK_SECRET random secret; bridge validates the
X-Telegram-Bot-Api-Secret-Token header on every
incoming request and Telegram sends it back so
@ -143,7 +143,7 @@ def main() -> int:
token = env.get("TELEGRAM_BOT_TOKEN", "").strip()
chat_id_raw = env.get("TELEGRAM_CHAT_ID", "").strip()
secret = env.get("TELEGRAM_WEBHOOK_SECRET", "").strip()
webhook_url = env.get("TELEGRAM_WEBHOOK_URL", "https://food-market.kz/tg-webhook").strip()
webhook_url = env.get("TELEGRAM_WEBHOOK_URL", "https://test.food-market.kz/tg-webhook").strip()
if not token or not chat_id_raw:
print("ERROR: TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID required", file=sys.stderr)
return 78

View file

@ -31,7 +31,7 @@
"AllowedOrigins": [
"http://localhost:5173",
"http://localhost:4173",
"https://food-market.kz",
"https://test.food-market.kz",
"https://admin.food-market.kz"
]
},

View file

@ -1,5 +1,5 @@
# Публичный URL самого сайта (canonical, OG, sitemap)
PUBLIC_SITE_URL=https://food-market.kz
PUBLIC_SITE_URL=https://test.food-market.kz
# Админка / API — куда уходит юзер после signup, и куда шлются POST /api/auth/signup
PUBLIC_APP_URL=https://food-market.zat.kz

View file

@ -1,6 +1,6 @@
# Multi-stage build для Astro static site.
# Build envs:
# PUBLIC_SITE_URL — публичный URL сайта (canonical/OG/sitemap), default https://food-market.kz
# PUBLIC_SITE_URL — публичный URL сайта (canonical/OG/sitemap), default https://test.food-market.kz
# PUBLIC_APP_URL — admin/API endpoint (для Header «Войти» и signup-формы)
FROM node:20-alpine AS build
WORKDIR /app
@ -10,8 +10,8 @@ RUN corepack enable && corepack prepare pnpm@10 --activate
COPY pnpm-lock.yaml* ./
RUN pnpm install --frozen-lockfile || pnpm install
COPY . .
ARG PUBLIC_SITE_URL=https://food-market.kz
ARG PUBLIC_APP_URL=https://food-market.kz
ARG PUBLIC_SITE_URL=https://test.food-market.kz
ARG PUBLIC_APP_URL=https://test.food-market.kz
ENV PUBLIC_SITE_URL=$PUBLIC_SITE_URL
ENV PUBLIC_APP_URL=$PUBLIC_APP_URL
RUN pnpm build

View file

@ -6,7 +6,7 @@ import tailwind from '@astrojs/tailwind'
// astro:build:done hook'е). Добавим обратно после фикса плагина или
// заменим на ручную генерацию sitemap.xml.
export default defineConfig({
site: process.env.PUBLIC_SITE_URL || 'https://food-market.kz',
site: process.env.PUBLIC_SITE_URL || 'https://test.food-market.kz',
integrations: [react(), tailwind({ applyBaseStyles: false })],
output: 'static',
build: { inlineStylesheets: 'auto' },

View file

@ -1,3 +1,3 @@
User-agent: *
Allow: /
Sitemap: https://food-market.kz/sitemap-index.xml
Sitemap: https://test.food-market.kz/sitemap-index.xml

View file

@ -1,6 +1,6 @@
---
import Logo from './Logo.astro'
const APP_URL = import.meta.env.PUBLIC_APP_URL || 'https://food-market.kz'
const APP_URL = import.meta.env.PUBLIC_APP_URL || 'https://test.food-market.kz'
---
<header class="sticky top-0 z-40 bg-white/95 backdrop-blur border-b border-slate-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 h-14 flex items-center justify-between gap-4">

View file

@ -12,7 +12,7 @@ last_updated: 2026-04-26
---
Настоящим я, как субъект персональных данных, регистрируясь в сервисе **Food Market** (далее — «**Сервис**»), размещённом на сайте https://food-market.kz, и проставляя отметку в чекбоксе «Согласен с офертой и политикой обработки персональных данных» при создании учётной записи, в соответствии со статьёй 8 Закона Республики Казахстан от 21 мая 2013 года № 94-V «О персональных данных и их защите», свободно, своей волей и в своём интересе даю своё согласие **ТОО «[НАЗВАНИЕ ТОО]»**, БИН [БИН], юридический адрес: [Юр.адрес] (далее — «**Оператор**»), на сбор, обработку, хранение, использование, обезличивание и уничтожение моих персональных данных в нижеуказанном объёме и для нижеуказанных целей.
Настоящим я, как субъект персональных данных, регистрируясь в сервисе **Food Market** (далее — «**Сервис**»), размещённом на сайте https://test.food-market.kz, и проставляя отметку в чекбоксе «Согласен с офертой и политикой обработки персональных данных» при создании учётной записи, в соответствии со статьёй 8 Закона Республики Казахстан от 21 мая 2013 года № 94-V «О персональных данных и их защите», свободно, своей волей и в своём интересе даю своё согласие **ТОО «[НАЗВАНИЕ ТОО]»**, БИН [БИН], юридический адрес: [Юр.адрес] (далее — «**Оператор**»), на сбор, обработку, хранение, использование, обезличивание и уничтожение моих персональных данных в нижеуказанном объёме и для нижеуказанных целей.
## 1. Перечень персональных данных, на обработку которых даётся согласие
@ -92,7 +92,7 @@ last_updated: 2026-04-26
Я подтверждаю, что ознакомлен с:
6.1. Политикой обработки персональных данных Оператора, размещённой на сайте https://food-market.kz/legal/privacy.
6.1. Политикой обработки персональных данных Оператора, размещённой на сайте https://test.food-market.kz/legal/privacy.
6.2. Своими правами, предусмотренными Законом о ПДн, в том числе правом:
- получать информацию об обработке моих персональных данных;

View file

@ -19,7 +19,7 @@ last_updated: 2026-04-26
1.2. Лицензиаром Сервиса выступает **ТОО «[НАЗВАНИЕ ТОО]»**, БИН [БИН], зарегистрированное в соответствии с законодательством Республики Казахстан (далее — «**Лицензиар**»). Полные реквизиты Лицензиара указаны в разделе «Реквизиты» сайта.
1.3. Безусловным акцептом настоящей Оферты в соответствии с пунктом 3 статьи 396 ГК РК являются следующие действия Пользователя, совершённые в совокупности:
- регистрация учётной записи на сайте https://food-market.kz (или ином доменном имени, используемом Лицензиаром);
- регистрация учётной записи на сайте https://test.food-market.kz (или ином доменном имени, используемом Лицензиаром);
- проставление отметки в чекбоксе «Согласен с офертой и политикой обработки персональных данных»;
- начало использования Сервиса.
@ -29,7 +29,7 @@ last_updated: 2026-04-26
## 2. Термины и определения
**Сервис** — программный продукт «Food Market», представляющий собой облачную систему учёта розничной торговли с функциями управления товарами, складом, продажами, кассовыми операциями, аналитикой и сопутствующими сервисами, размещённый по адресу https://food-market.kz и связанных с ним поддоменах.
**Сервис** — программный продукт «Food Market», представляющий собой облачную систему учёта розничной торговли с функциями управления товарами, складом, продажами, кассовыми операциями, аналитикой и сопутствующими сервисами, размещённый по адресу https://test.food-market.kz и связанных с ним поддоменах.
**Учётная запись** — совокупность данных Пользователя, обеспечивающих его идентификацию и авторизацию в Сервисе.
@ -75,7 +75,7 @@ last_updated: 2026-04-26
## 6. Тарифы и порядок оплаты
6.1. Стоимость использования Сервиса определяется выбранным Пользователем Тарифом. Актуальная сетка Тарифов и их состав публикуются на сайте Лицензиара по адресу https://food-market.kz/pricing.
6.1. Стоимость использования Сервиса определяется выбранным Пользователем Тарифом. Актуальная сетка Тарифов и их состав публикуются на сайте Лицензиара по адресу https://test.food-market.kz/pricing.
6.2. Оплата Подписки производится авансом за выбранный период (1, 3, 6 или 12 месяцев) посредством платёжных систем, указанных на сайте Лицензиара.

View file

@ -24,7 +24,7 @@ last_updated: 2026-04-26
1.3. Настоящая Политика применяется ко всем персональным данным, обрабатываемым Оператором с использованием средств автоматизации и без таковых.
1.4. Действующая редакция Политики постоянно доступна на сайте Оператора по адресу https://food-market.kz/legal/privacy.
1.4. Действующая редакция Политики постоянно доступна на сайте Оператора по адресу https://test.food-market.kz/legal/privacy.
## 2. Термины и определения
@ -213,7 +213,7 @@ last_updated: 2026-04-26
## 12. Изменения в Политике
12.1. Оператор вправе вносить изменения в настоящую Политику. Актуальная версия размещается на сайте Оператора по адресу https://food-market.kz/legal/privacy с указанием даты последнего обновления.
12.1. Оператор вправе вносить изменения в настоящую Политику. Актуальная версия размещается на сайте Оператора по адресу https://test.food-market.kz/legal/privacy с указанием даты последнего обновления.
12.2. Существенные изменения, затрагивающие права субъектов ПДн, вступают в силу не ранее чем через 14 (четырнадцать) календарных дней после публикации новой редакции, с уведомлением Пользователей по адресу электронной почты, указанному в учётной записи.

View file

@ -57,4 +57,4 @@ last_updated: 2026-04-26
---
*Реквизиты могут уточняться. Актуальная редакция всегда размещена по адресу https://food-market.kz/legal/requisites.*
*Реквизиты могут уточняться. Актуальная редакция всегда размещена по адресу https://test.food-market.kz/legal/requisites.*

View file

@ -8,7 +8,7 @@ const PAGES = [
]
export const GET: APIRoute = ({ site }) => {
const base = (site?.toString() ?? 'https://food-market.kz').replace(/\/$/, '')
const base = (site?.toString() ?? 'https://test.food-market.kz').replace(/\/$/, '')
const urls = PAGES.map((p) => `<url><loc>${base}/${p}</loc></url>`).join('\n ')
const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

View file

@ -2,7 +2,7 @@ import { Logo } from '@/components/Logo'
import { logout } from '@/lib/auth'
import { useMe } from '@/lib/useMe'
const PUBLIC_SITE = (import.meta.env.VITE_PUBLIC_SITE_URL as string | undefined) ?? 'https://food-market.kz'
const PUBLIC_SITE = (import.meta.env.VITE_PUBLIC_SITE_URL as string | undefined) ?? 'https://test.food-market.kz'
/** Fallback-экран для AppUser без активного Employee в живой Organization.
* Возможные причины: его org удалена SuperAdmin'ом, его Employee