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
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.kz → https://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:
parent
58df887f1c
commit
79406e304e
|
|
@ -9,7 +9,7 @@ Config (/etc/food-market/telegram.env or env vars):
|
||||||
TELEGRAM_BOT_TOKEN — bot token (required)
|
TELEGRAM_BOT_TOKEN — bot token (required)
|
||||||
TELEGRAM_CHAT_ID — single whitelisted chat id (required)
|
TELEGRAM_CHAT_ID — single whitelisted chat id (required)
|
||||||
TELEGRAM_WEBHOOK_URL — public URL Telegram should POST to
|
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
|
TELEGRAM_WEBHOOK_SECRET — random secret; bridge validates the
|
||||||
X-Telegram-Bot-Api-Secret-Token header on every
|
X-Telegram-Bot-Api-Secret-Token header on every
|
||||||
incoming request and Telegram sends it back so
|
incoming request and Telegram sends it back so
|
||||||
|
|
@ -143,7 +143,7 @@ def main() -> int:
|
||||||
token = env.get("TELEGRAM_BOT_TOKEN", "").strip()
|
token = env.get("TELEGRAM_BOT_TOKEN", "").strip()
|
||||||
chat_id_raw = env.get("TELEGRAM_CHAT_ID", "").strip()
|
chat_id_raw = env.get("TELEGRAM_CHAT_ID", "").strip()
|
||||||
secret = env.get("TELEGRAM_WEBHOOK_SECRET", "").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:
|
if not token or not chat_id_raw:
|
||||||
print("ERROR: TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID required", file=sys.stderr)
|
print("ERROR: TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID required", file=sys.stderr)
|
||||||
return 78
|
return 78
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
"AllowedOrigins": [
|
"AllowedOrigins": [
|
||||||
"http://localhost:5173",
|
"http://localhost:5173",
|
||||||
"http://localhost:4173",
|
"http://localhost:4173",
|
||||||
"https://food-market.kz",
|
"https://test.food-market.kz",
|
||||||
"https://admin.food-market.kz"
|
"https://admin.food-market.kz"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Публичный URL самого сайта (canonical, OG, sitemap)
|
# Публичный 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
|
# Админка / API — куда уходит юзер после signup, и куда шлются POST /api/auth/signup
|
||||||
PUBLIC_APP_URL=https://food-market.zat.kz
|
PUBLIC_APP_URL=https://food-market.zat.kz
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Multi-stage build для Astro static site.
|
# Multi-stage build для Astro static site.
|
||||||
# Build envs:
|
# 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-формы)
|
# PUBLIC_APP_URL — admin/API endpoint (для Header «Войти» и signup-формы)
|
||||||
FROM node:20-alpine AS build
|
FROM node:20-alpine AS build
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
@ -10,8 +10,8 @@ RUN corepack enable && corepack prepare pnpm@10 --activate
|
||||||
COPY pnpm-lock.yaml* ./
|
COPY pnpm-lock.yaml* ./
|
||||||
RUN pnpm install --frozen-lockfile || pnpm install
|
RUN pnpm install --frozen-lockfile || pnpm install
|
||||||
COPY . .
|
COPY . .
|
||||||
ARG PUBLIC_SITE_URL=https://food-market.kz
|
ARG PUBLIC_SITE_URL=https://test.food-market.kz
|
||||||
ARG PUBLIC_APP_URL=https://food-market.kz
|
ARG PUBLIC_APP_URL=https://test.food-market.kz
|
||||||
ENV PUBLIC_SITE_URL=$PUBLIC_SITE_URL
|
ENV PUBLIC_SITE_URL=$PUBLIC_SITE_URL
|
||||||
ENV PUBLIC_APP_URL=$PUBLIC_APP_URL
|
ENV PUBLIC_APP_URL=$PUBLIC_APP_URL
|
||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import tailwind from '@astrojs/tailwind'
|
||||||
// astro:build:done hook'е). Добавим обратно после фикса плагина или
|
// astro:build:done hook'е). Добавим обратно после фикса плагина или
|
||||||
// заменим на ручную генерацию sitemap.xml.
|
// заменим на ручную генерацию sitemap.xml.
|
||||||
export default defineConfig({
|
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 })],
|
integrations: [react(), tailwind({ applyBaseStyles: false })],
|
||||||
output: 'static',
|
output: 'static',
|
||||||
build: { inlineStylesheets: 'auto' },
|
build: { inlineStylesheets: 'auto' },
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
User-agent: *
|
User-agent: *
|
||||||
Allow: /
|
Allow: /
|
||||||
Sitemap: https://food-market.kz/sitemap-index.xml
|
Sitemap: https://test.food-market.kz/sitemap-index.xml
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
import Logo from './Logo.astro'
|
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">
|
<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">
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 h-14 flex items-center justify-between gap-4">
|
||||||
|
|
|
||||||
|
|
@ -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. Перечень персональных данных, на обработку которых даётся согласие
|
## 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. Своими правами, предусмотренными Законом о ПДн, в том числе правом:
|
6.2. Своими правами, предусмотренными Законом о ПДн, в том числе правом:
|
||||||
- получать информацию об обработке моих персональных данных;
|
- получать информацию об обработке моих персональных данных;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ last_updated: 2026-04-26
|
||||||
1.2. Лицензиаром Сервиса выступает **ТОО «[НАЗВАНИЕ ТОО]»**, БИН [БИН], зарегистрированное в соответствии с законодательством Республики Казахстан (далее — «**Лицензиар**»). Полные реквизиты Лицензиара указаны в разделе «Реквизиты» сайта.
|
1.2. Лицензиаром Сервиса выступает **ТОО «[НАЗВАНИЕ ТОО]»**, БИН [БИН], зарегистрированное в соответствии с законодательством Республики Казахстан (далее — «**Лицензиар**»). Полные реквизиты Лицензиара указаны в разделе «Реквизиты» сайта.
|
||||||
|
|
||||||
1.3. Безусловным акцептом настоящей Оферты в соответствии с пунктом 3 статьи 396 ГК РК являются следующие действия Пользователя, совершённые в совокупности:
|
1.3. Безусловным акцептом настоящей Оферты в соответствии с пунктом 3 статьи 396 ГК РК являются следующие действия Пользователя, совершённые в совокупности:
|
||||||
- регистрация учётной записи на сайте https://food-market.kz (или ином доменном имени, используемом Лицензиаром);
|
- регистрация учётной записи на сайте https://test.food-market.kz (или ином доменном имени, используемом Лицензиаром);
|
||||||
- проставление отметки в чекбоксе «Согласен с офертой и политикой обработки персональных данных»;
|
- проставление отметки в чекбоксе «Согласен с офертой и политикой обработки персональных данных»;
|
||||||
- начало использования Сервиса.
|
- начало использования Сервиса.
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ last_updated: 2026-04-26
|
||||||
|
|
||||||
## 2. Термины и определения
|
## 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. Тарифы и порядок оплаты
|
||||||
|
|
||||||
6.1. Стоимость использования Сервиса определяется выбранным Пользователем Тарифом. Актуальная сетка Тарифов и их состав публикуются на сайте Лицензиара по адресу https://food-market.kz/pricing.
|
6.1. Стоимость использования Сервиса определяется выбранным Пользователем Тарифом. Актуальная сетка Тарифов и их состав публикуются на сайте Лицензиара по адресу https://test.food-market.kz/pricing.
|
||||||
|
|
||||||
6.2. Оплата Подписки производится авансом за выбранный период (1, 3, 6 или 12 месяцев) посредством платёжных систем, указанных на сайте Лицензиара.
|
6.2. Оплата Подписки производится авансом за выбранный период (1, 3, 6 или 12 месяцев) посредством платёжных систем, указанных на сайте Лицензиара.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ last_updated: 2026-04-26
|
||||||
|
|
||||||
1.3. Настоящая Политика применяется ко всем персональным данным, обрабатываемым Оператором с использованием средств автоматизации и без таковых.
|
1.3. Настоящая Политика применяется ко всем персональным данным, обрабатываемым Оператором с использованием средств автоматизации и без таковых.
|
||||||
|
|
||||||
1.4. Действующая редакция Политики постоянно доступна на сайте Оператора по адресу https://food-market.kz/legal/privacy.
|
1.4. Действующая редакция Политики постоянно доступна на сайте Оператора по адресу https://test.food-market.kz/legal/privacy.
|
||||||
|
|
||||||
## 2. Термины и определения
|
## 2. Термины и определения
|
||||||
|
|
||||||
|
|
@ -213,7 +213,7 @@ last_updated: 2026-04-26
|
||||||
|
|
||||||
## 12. Изменения в Политике
|
## 12. Изменения в Политике
|
||||||
|
|
||||||
12.1. Оператор вправе вносить изменения в настоящую Политику. Актуальная версия размещается на сайте Оператора по адресу https://food-market.kz/legal/privacy с указанием даты последнего обновления.
|
12.1. Оператор вправе вносить изменения в настоящую Политику. Актуальная версия размещается на сайте Оператора по адресу https://test.food-market.kz/legal/privacy с указанием даты последнего обновления.
|
||||||
|
|
||||||
12.2. Существенные изменения, затрагивающие права субъектов ПДн, вступают в силу не ранее чем через 14 (четырнадцать) календарных дней после публикации новой редакции, с уведомлением Пользователей по адресу электронной почты, указанному в учётной записи.
|
12.2. Существенные изменения, затрагивающие права субъектов ПДн, вступают в силу не ранее чем через 14 (четырнадцать) календарных дней после публикации новой редакции, с уведомлением Пользователей по адресу электронной почты, указанному в учётной записи.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,4 +57,4 @@ last_updated: 2026-04-26
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Реквизиты могут уточняться. Актуальная редакция всегда размещена по адресу https://food-market.kz/legal/requisites.*
|
*Реквизиты могут уточняться. Актуальная редакция всегда размещена по адресу https://test.food-market.kz/legal/requisites.*
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ const PAGES = [
|
||||||
]
|
]
|
||||||
|
|
||||||
export const GET: APIRoute = ({ site }) => {
|
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 urls = PAGES.map((p) => `<url><loc>${base}/${p}</loc></url>`).join('\n ')
|
||||||
const xml = `<?xml version="1.0" encoding="UTF-8"?>
|
const xml = `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { Logo } from '@/components/Logo'
|
||||||
import { logout } from '@/lib/auth'
|
import { logout } from '@/lib/auth'
|
||||||
import { useMe } from '@/lib/useMe'
|
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.
|
/** Fallback-экран для AppUser без активного Employee в живой Organization.
|
||||||
* Возможные причины: его org удалена SuperAdmin'ом, его Employee
|
* Возможные причины: его org удалена SuperAdmin'ом, его Employee
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue