Files
andreypr207andClaude Opus 5.5 20491d1ba4 Этап 1b: сайт
- Страницы обоих брендов из блоков Payload (D-029): главная, цены,
  локации, поддержка, 4 юридические, 404 и 500. Коллекции pages
  (черновики и версии) и faq с местами показа, 12 типов блоков; поля
  sites — почта и Telegram поддержки, часы работы, SEO по умолчанию.
- Карта и глобус рисуются на сервере (d3-geo), контуры во внешнем
  SVG через <use>; выбор локации синхронизирован между картой и сеткой.
- Тексты сайта и юридические черновики на 5 языках: de, fr, es —
  перевод с глоссарием; seed создаёт страницы и FAQ, только если их
  нет, SEED_CONTENT=reset пересоздаёт.
- SEO: title и описания, canonical, hreflang с x-default,
  sitemap.xml и robots.txt на каждый домен, картинки для соцсетей.
- Статическая сборка и пересборка через revalidatePath из хуков
  Payload (D-030); /svc/internal/revalidate для проверки.
- 404 — статичная страница со статусом 404 через proxy; на сайте
  только опубликованные страницы.
- Производительность: Client Hints темы Payload только в админке,
  предзагрузка 2 файлов шрифтов вместо 6; Lighthouse mobile 97–99.
- Контраст --ink-3 по WCAG AA, радиокнопки вместо div role=button.
- Документация: итоги 1b, глоссарий de/fr/es, трактовки юридических
  черновиков подтверждены, переносимые вопросы — в этапах 3e–3h.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 04:53:15 +02:00

110 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 00. Карта документации
## 1. Документы
| Файл | О чём |
|---|---|
| [01-product.md](01-product.md) | Бренды, домены, продукты, тарифы, бизнес-правила |
| [02-architecture.md](02-architecture.md) | Стек, одно приложение на все домены, процессы, окружения, выкладка |
| [03-data-model.md](03-data-model.md) | Коллекции Payload, поля, связи, статусы |
| [04-billing.md](04-billing.md) | Счёт, заказы, платежи, продления, возвраты, ручные операции, рефералы |
| [05-auth.md](05-auth.md) | Вход по коду, сессии, капча, Telegram, объединение аккаунтов, админка |
| [06-i18n.md](06-i18n.md) | Языки, URL, определение языка, валютный переключатель, переводы |
| [07-frontend.md](07-frontend.md) | Макеты, маршруты, токены, темы, производительность |
| [08-integrations.md](08-integrations.md) | Почта, ALTCHA, MaxMind, Chatwoot, Twenty, Telegram, платёжные системы, Umami |
| [09-infrastructure.md](09-infrastructure.md) | Сервер, nginx, systemd, PostgreSQL, DNS, бэкапы, задачи для root |
| [10-security.md](10-security.md) | Безопасность и приватность |
| [decisions/](decisions/) | Принятые решения: по файлу на решение |
| [stages/](stages/) | Этапы: цель, границы, предусловия, шаги, критерии готовности |
Исходная постановка — [history/HUMAN_IDEA.md](history/HUMAN_IDEA.md) (копия файла пользователя). Это история, а не источник истины: всё актуальное — в этих документах.
## 2. Этапы
Фаза — цифра, этап — буква ([D-026](decisions/D-026-stage-order.md)). Каждый этап делается сразу на 5 языках; тексты описывают работающий продукт.
| Этап | Содержание | Статус |
|---|---|---|
| [0](stages/stage-0-docs.md) | Документация | готово |
### 2.1 Фаза 1. Концепт без внешних сервисов, на dev
| Этап | Содержание | Статус |
|---|---|---|
| [1a](stages/stage-1a-foundation.md) | Фундамент: Next + Payload, сайты, домены, языки, валюты, темы | готово |
| [1b](stages/stage-1b-marketing.md) | Сайт: страницы обоих брендов из блоков Payload, FAQ, юридические черновики, SEO; формы — только интерфейс | готово |
| [1c](stages/stage-1c-auth.md) | Вход по коду, сессии; письма — в журнал | не начат |
| [1d](stages/stage-1d-keys.md) | Ключи и подключения: ручное создание в админке, ключи в кабинете | не начат |
| [1e](stages/stage-1e-billing.md) | Счёт и оплата: заказы, баланс, демо-оплата, оформление заказа | не начат |
| [1f](stages/stage-1f-provisioning.md) | Выдача ключей «Демо» — эмулятор API выдачи | не начат |
| [1g](stages/stage-1g-renewals.md) | Продления: автопродление, льготный период, напоминания | не начат |
| [1h](stages/stage-1h-referral.md) | Реферальная программа | не начат |
### 2.2 Фаза 2. Telegram
| Этап | Содержание | Статус |
|---|---|---|
| [2a](stages/stage-2a-miniapp.md) | MiniApp | не начат |
| [2b](stages/stage-2b-bot.md) | Основной бот | не начат |
| [2c](stages/stage-2c-linking.md) | Связь аккаунтов Telegram и сайта | не начат |
### 2.3 Фаза 3. Реальные сервисы и запуск
| Этап | Содержание | Статус |
|---|---|---|
| [3a](stages/stage-3a-altcha.md) | ALTCHA | не начат |
| [3b](stages/stage-3b-yookassa.md) | ЮKassa: пополнение в RUB | не начат |
| [3c](stages/stage-3c-email.md) | Отправка почты: Postfix, DKIM | не начат |
| [3d](stages/stage-3d-crm.md) | Twenty CRM: заявки с форм | не начат |
| [3e](stages/stage-3e-chatwoot.md) | Chatwoot: виджет, боты поддержки, почта | не начат |
| [3f](stages/stage-3f-analytics.md) | Umami и баннер cookies | не начат |
| [3g](stages/stage-3g-keys-api.md) | Выдача ключей через API | обсуждение при старте |
| [3h](stages/stage-3h-launch.md) | Публичный запуск в prod | не начат |
### 2.4 Фаза 4. Позже
| Этап | Содержание | Статус |
|---|---|---|
| [4a](stages/stage-4a-stars.md) | Звёзды Telegram | обсуждение при старте |
| [4b](stages/stage-4b-acquiring.md) | Западные эквайринги и криптовалюта | обсуждение при старте |
## 3. Как запускать этап в новой сессии
1. Открыть сессию Claude под пользователем vx_dev в `/home/vx_dev/veilix_dev`.
2. Написать: «Этап 1a. Прочитай CLAUDE.md и docs/stages/stage-1a-foundation.md, сверим план».
3. Claude сверяет план и открытые вопросы этапа, вы подтверждаете, дальше — работа.
4. В конце Claude обновляет статус этапа в этой таблице и документацию.
## 4. Открытые вопросы
### 4.1 Решённые
| № | Вопрос | Решение | Где отражено |
|---|---|---|---|
| Q-01 | Вторая валюта | USD | [D-010](decisions/D-010-currencies.md) |
| Q-02 | Цены mass в USD, суммы пополнения и реферального бонуса | Mass: «Месяц» $6.99, «Год» $69.90. Пополнение: dedicated — 2 500, 5 000, 10 000 ₽ и $25, $50, $100; mass — 700, 2 100, 6 990 ₽ и $7, $21, $70. Реферальный бонус — не деньги, а 30 дней к ключу обоим | [01-product.md](01-product.md), разделы 6 и 10; [04-billing.md](04-billing.md), разделы 4 и 11; [D-025](decisions/D-025-referral-days.md) |
| Q-03 | Валюта по умолчанию для нового посетителя | По языку: ru → RUB, остальные → USD; настраивается у домена | [06-i18n.md](06-i18n.md), раздел 6 |
| Q-04 | Валюта аккаунта | Задаётся при регистрации из выбранной; меняется, пока баланс нулевой и нет ключей; дальше — через поддержку | [04-billing.md](04-billing.md), раздел 2 |
| Q-05 | WG-конфиги mass на этапе 1 | Конфиги, добавленные администратором, по странам; другая страна — через поддержку. Позже — адаптер выдачи: демо-эмулятор (этап 1f), API (3g) | [D-020](decisions/D-020-key-models.md) |
| Q-06 | Где Umami | На этом сервере, без Docker, под пользователем `umami`; панель — `umi.veilix.cc` | [D-018](decisions/D-018-analytics.md) |
| Q-07 | Как запускать сервисы | Каждый под своим пользователем ОС: vx_dev (dev), vx_prod (prod), umami; systemd user-юниты | [D-004](decisions/D-004-environments.md) |
| Q-08 | Email поддержки брендов | `help@veilix.app` и `help@veilixvpn.com` | [01-product.md](01-product.md), раздел 11 |
| Q-09 | Часовой пояс часов поддержки | Московское время | [01-product.md](01-product.md), раздел 11 |
| Q-12 | RUB-процессинг и криптопроцессинг: какие провайдеры | RUB — ЮKassa, только пополнения (этап 3b). Криптовалюта — этап 4b, провайдера выбираем на нём | [D-016](decisions/D-016-payments.md); [08-integrations.md](08-integrations.md), раздел 7 |
| Q-15 | Защита prod от сессий Claude | Отдельно не нужна: сессии Claude работают под vx_dev без доступа к prod, а под vx_prod нет ни редактора, ни ИИ-агентов | [D-004](decisions/D-004-environments.md) |
| Q-16 | Где принимать почту поддержки | Ящики на внешнем почтовом хостинге, их настраивает пользователь (R-18). На этапе 3e письма из них забирает Chatwoot; до этого на сайте только адрес | [09-infrastructure.md](09-infrastructure.md), раздел 6; [08-integrations.md](08-integrations.md), раздел 4 |
| Q-19 | Реферальный бонус днями: крайние случаи | Приглашённому тоже 30 дней; ключ готовится — дни добавятся при выдаче; «последний ключ» — купленный последним из неистёкших и неотменённых; такого нет — дни ждут следующего ключа; возврат заказа приглашённого бонус не отменяет | [D-025](decisions/D-025-referral-days.md); [04-billing.md](04-billing.md), раздел 11 |
### 4.2 Открытые
Предложение по умолчанию действует, пока не решено иначе.
| № | Вопрос | Предложение | Нужно к этапу |
|---|---|---|---|
| Q-10 | Имена Telegram-ботов: 2 основных, 2 поддержки, тестовые | — | 2a, 3e |
| Q-11 | Оплата в Telegram: Stars, внешняя страница или только с баланса | До этапа 4a — демо-оплата и баланс | 2a, 4a |
| Q-13 | Юрлицо для юридических текстов | Пока заглушки | 3b, 3h |
| Q-14 | Куда складывать бэкапы prod-базы | — | 3h |
| Q-17 | Нужны ли разные аккаунты одного провайдера для разных брендов | Пока нет. Если понадобятся — платёжной системе добавим поле «только для сайтов» | 3b, 4b |
| Q-18 | Кто запускает выкладку в prod | Пользователь одной командой; по желанию — sudo-правило, разрешающее vx_dev запускать только команду выкладки от имени vx_prod | 3h |