- Новый порядок этапов (D-026): фаза 1 — концепт на dev без внешних сервисов (1b сайт, 1c вход, 1d ключи, 1e счёт и демо-оплата, 1f демо-выдача, 1g продления, 1h рефералы); фаза 2 — Telegram; фаза 3 — ALTCHA, ЮKassa, почта, Twenty, Chatwoot, Umami, выдача через API и публичный запуск; фаза 4 — звёзды и эквайринги. - Решения: демо-оплата по списку IP (D-027), выдача ключей через адаптер manual/demo/api (D-028), страницы сайта из блоков Payload (D-029), пересборка через revalidatePath (D-030), RU-адрес у mass (D-031), счётчик свободных серверов (D-032), переводы на 5 языков в каждом этапе (D-033). - Тексты описывают работающий продукт; Вейликс — выделенный IP на общем сервере; Telegram поддержки — @veilix_support; сроки ответа не обещаем; VPN-серверы не ведут журналов. - Ссылки на этапы во всех документах, Q-12 решён (ЮKassa для RUB), R-19 (библиотеки для headless Chromium) сделано. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
160 lines
17 KiB
Markdown
160 lines
17 KiB
Markdown
# 01. Продукт
|
|
|
|
## 1. Бренды
|
|
|
|
| | Вейликс | ВейликсВПН |
|
|
|---|---|---|
|
|
| Код сайта | `dedicated` | `mass` |
|
|
| Название | RU «Вейликс», EN «Veilix» | RU «ВейликсВПН», EN «VeilixVPN» |
|
|
| Цвет | фиолетовый | зелёный (бирюзовый) |
|
|
| Суть | личный VPN: у каждого ключа свой индивидуальный IP в выбранной стране | классический VPN: общий сервер, ключ даёт все страны тарифа |
|
|
| Протоколы | WireGuard / Amnezia WG и Xray (VLESS, Hysteria2, XHTTP) | Xray и WireGuard |
|
|
|
|
1. Это два разных продукта на одном бэкенде и одной базе. Сайт определяется по домену.
|
|
2. veilixvpn.com продаёт только mass. Перекрёстные ссылки между брендами допустимы: на mass есть блок «нужен свой IP — тарифы Вейликс».
|
|
3. Логотип — вариант «Слои» из макета (два перекрывающихся скруглённых квадрата). Подборщик вариантов знака из макета в продукт не переносим.
|
|
|
|
## 2. Домены
|
|
|
|
| Назначение | Вейликс prod | Вейликс dev | ВейликсВПН prod | ВейликсВПН dev |
|
|
|---|---|---|---|---|
|
|
| Сайт | veilix.app | dev.veilix.app | veilixvpn.com | dev.veilixvpn.com |
|
|
| Кабинет и оформление заказа | my.veilix.app | dev.my.veilix.app | my.veilixvpn.com | dev.my.veilixvpn.com |
|
|
| MiniApp | tg.veilix.app | dev.tg.veilix.app | tg.veilixvpn.com | dev.tg.veilixvpn.com |
|
|
|
|
1. Админка одна на оба бренда: `plc.veilix.cc` (prod) и `dev.plc.veilix.cc` (dev). Аналитика Umami — `umi.veilix.cc`.
|
|
2. Все домены указывают на 169.58.76.183 (этот сервер).
|
|
3. Домены хранятся в базе (коллекция «Домены»), у каждого свои языки и валюты. Новое зеркало добавляется записью в базе плюс блоком nginx и сертификатом.
|
|
|
|
## 3. Состав каждого бренда
|
|
|
|
1. Сайт: главная, цены, локации, поддержка, юридические страницы.
|
|
2. Веб-кабинет, в том числе оформление заказа (оформление живёт на my.*, а не на сайте).
|
|
3. MiniApp в Telegram — этап 2a.
|
|
4. Два Telegram-бота: основной (команды, MiniApp, уведомления) и бот поддержки, подключённый к Chatwoot. Этапы 2b и 3e.
|
|
|
|
## 4. Термины
|
|
|
|
1. **Сайт** — бренд (тенант). Почти все сущности привязаны к сайту.
|
|
2. **Домен** — хост, на котором открывается сайт, кабинет или MiniApp. У домена свои языки и валюты.
|
|
3. **Тариф** — то, что продаётся: цены в валютах, период, лимит устройств, страны.
|
|
4. **Страна** — общий справочник. **Локация** — страна на конкретном сайте: город, статус наличия.
|
|
5. **Ключ** — купленная единица доступа пользователя со сроком действия и автопродлением.
|
|
6. **Подключение** — конкретная конфигурация внутри ключа: WG или AWG-конфиг устройства, ссылка Happ, ссылка Xray.
|
|
7. **Заказ, Платёж, Движение по счёту** — см. [04-billing.md](04-billing.md).
|
|
8. **Валюта** и **Платёжная система** — справочники; платёжная система доступна в определённых валютах.
|
|
|
|
## 5. Dedicated (Вейликс)
|
|
|
|
1. Ключ — это индивидуальный IP в выбранной стране: выделенный адрес на общем сервере, а не отдельный сервер. Страна выбирается при покупке и не меняется никогда. Нужна другая страна — пользователь покупает новый ключ в другой локации и отключает автопродление старого. Отдельного функционала смены страны нет.
|
|
2. В каждый ключ входит выделенный RU-адрес: работает и как прямое соединение, и как мост в обе стороны.
|
|
3. До 5 устройств на ключ (поле тарифа), все с одним IP. WireGuard — по конфигу на устройство. Xray — ссылка для Happ (обычная или зашифрованная crypt-ссылка Happ, которая скрывает адрес подписки).
|
|
4. Тариф — ценовой уровень со своим набором стран:
|
|
|
|
| Тариф | Страны | Первый месяц | Далее в месяц | USD (из макета) |
|
|
|---|---|---|---|---|
|
|
| Базовый | 23 страны (см. раздел 7) | 4 900 ₽ | 2 499 ₽ | $49 / $24 |
|
|
| Редкие локации | CH, AE, SG, JP, KR | 6 900 ₽ | 3 499 ₽ | $69 / $34 |
|
|
| Дальние локации | AU, BR | 9 900 ₽ | 4 999 ₽ | $99 / $49 |
|
|
|
|
5. Первый месяц дороже, потому что включает подготовку сервера: выделение адреса, настройку протоколов и маршрутизации. Период — месяц.
|
|
6. Статусы локаций: «Серверы в наличии» и «Установим за 24 часа». Оплаченный период начинается с момента выдачи ключа. Ключ выдаёт адаптер выдачи ([D-028](decisions/D-028-provisioning-adapter.md)): администратор вручную, демо-эмулятор (этап 1f) или API (этап 3g).
|
|
7. Каждый ключ продлевается независимо, в свою дату.
|
|
|
|
## 6. Mass (ВейликсВПН)
|
|
|
|
1. Ключ включает все страны тарифа. Страна при покупке не выбирается: список стран на сайте только показывает, что входит в ключ.
|
|
2. Happ — одна ссылка со всеми странами. WireGuard — пользователь может получить конфиги любой страны тарифа: их создаёт адаптер выдачи ([D-028](decisions/D-028-provisioning-adapter.md)).
|
|
3. Тарифы: «Месяц» 699 ₽ и «Год» 6 990 ₽ («582 ₽ в месяц, экономия 1 398 ₽»). Платы за подключение и доплат за страну нет: первый период стоит столько же, сколько продление.
|
|
4. До 5 устройств на ключ (поле тарифа).
|
|
5. Статусы локаций: «Включено» и «Скоро». Локации «Скоро» показываются, но не работают.
|
|
6. В кабинете — «Список ключей», как у dedicated; внутри ключа ссылка Xray и конфиги WG. Формулировки «текущая/запасная локация» из макета не используем.
|
|
7. Цены в USD (в макете их нет, решение Q-02): «Месяц» $6.99, «Год» $69.90.
|
|
8. В каждый ключ входит RU-адрес, как у dedicated; страной тарифа он не считается ([D-031](decisions/D-031-mass-ru-address.md)).
|
|
|
|
## 7. Локации из макета
|
|
|
|
Город, статус и ценовой уровень dedicated. На mass те же 30 стран: «готова» = «Включено», «24 часа» = «Скоро».
|
|
|
|
| Код | Страна | Город | Статус | Уровень |
|
|
|---|---|---|---|---|
|
|
| NL | Нидерланды | Амстердам | готова | базовый |
|
|
| DE | Германия | Франкфурт | готова | базовый |
|
|
| US | США | Нью-Йорк | готова | базовый |
|
|
| GB | Великобритания | Лондон | готова | базовый |
|
|
| FR | Франция | Париж | готова | базовый |
|
|
| FI | Финляндия | Хельсинки | готова | базовый |
|
|
| SE | Швеция | Стокгольм | готова | базовый |
|
|
| NO | Норвегия | Осло | 24 часа | базовый |
|
|
| DK | Дания | Копенгаген | 24 часа | базовый |
|
|
| CH | Швейцария | Цюрих | готова | редкие |
|
|
| AT | Австрия | Вена | готова | базовый |
|
|
| ES | Испания | Мадрид | готова | базовый |
|
|
| IT | Италия | Милан | готова | базовый |
|
|
| PL | Польша | Варшава | готова | базовый |
|
|
| CZ | Чехия | Прага | готова | базовый |
|
|
| RO | Румыния | Бухарест | 24 часа | базовый |
|
|
| LT | Литва | Вильнюс | готова | базовый |
|
|
| LV | Латвия | Рига | готова | базовый |
|
|
| EE | Эстония | Таллин | 24 часа | базовый |
|
|
| TR | Турция | Стамбул | готова | базовый |
|
|
| KZ | Казахстан | Алматы | 24 часа | базовый |
|
|
| AM | Армения | Ереван | 24 часа | базовый |
|
|
| GE | Грузия | Тбилиси | 24 часа | базовый |
|
|
| AE | ОАЭ | Дубай | готова | редкие |
|
|
| SG | Сингапур | Сингапур | готова | редкие |
|
|
| JP | Япония | Токио | готова | редкие |
|
|
| KR | Южная Корея | Сеул | 24 часа | редкие |
|
|
| CA | Канада | Торонто | готова | базовый |
|
|
| AU | Австралия | Сидней | 24 часа | дальние |
|
|
| BR | Бразилия | Сан-Паулу | 24 часа | дальние |
|
|
|
|
Координаты для карты — в массиве `L(...)` в `design/handoff/project/Price.dc.html`. Количество свободных серверов из MiniApp (NL 12, DE 10, …) — демо-данные. На сайте счётчик показывается, если поле заполнено ([D-032](decisions/D-032-free-servers.md)).
|
|
|
|
## 8. Пользователи
|
|
|
|
1. Аккаунты раздельные по сайтам: один email на veilix.app и на veilixvpn.com — два разных пользователя.
|
|
2. Регистрация и вход — одно поле email и одноразовый код. Отдельной регистрации нет.
|
|
3. Telegram (этапы 2a–2c): аккаунт можно создать по Telegram без почты. Почта привязывается кодом, после этого работает вход на сайте. На сайте есть кнопка «Войти через Telegram». Правила объединения аккаунтов в пределах сайта — [05-auth.md](05-auth.md).
|
|
|
|
## 9. Деньги
|
|
|
|
1. У пользователя есть счёт (баланс) в валюте аккаунта.
|
|
2. Валюты — отдельный справочник: RUB и USD. Переключатель валюты не зависит от языка: из России часто заходят через VPN, поэтому страна по IP для выбора валюты не годится. По умолчанию валюта зависит от языка: ru → RUB, остальные → USD.
|
|
3. Платёжные системы привязаны только к валютам. Где система доступна, следует из цепочки: валюты → домены, на которых они включены → сайты:
|
|
a. RUB — ЮKassa, только пополнения, без автосписаний (этап 3b);
|
|
b. USD — Stripe (карты, сохранение карты, автосписания) и криптовалюта (этап 4b);
|
|
c. для проверок — платёжная система «Демо», видна только с разрешённых IP ([D-027](decisions/D-027-demo-payments.md)).
|
|
4. Карта привязывается к аккаунту, а не к ключу (Stripe). Отвязать карту можно в аккаунте.
|
|
5. Продление: у каждого ключа галочка автопродления и кнопка «Продлить сейчас». Сначала списывается баланс, нехватка — с карты.
|
|
6. Не хватило денег: льготный период 3 дня (ключ работает), затем ключ истекает. Напоминание за 3 дня до окончания.
|
|
7. Ручные операции в админке: платёж через платёжную систему manual (проводится как настоящий), корректировка баланса, возврат на баланс.
|
|
8. Возвраты (политика из макета): если сервер не заработал по нашей вине — полностью в течение первых 7 дней; если пользователь передумал — остаток неиспользованного периода.
|
|
9. Подробно — [04-billing.md](04-billing.md).
|
|
|
|
## 10. Реферальная программа
|
|
|
|
1. «Приведите друга — вы оба получите по месяцу в подарок».
|
|
2. «Месяц» — это дни срока ключа, а не деньги: по 30 дней обоим после первой оплаты заказа другом ([D-025](decisions/D-025-referral-days.md)). Число дней задаётся в настройках сайта.
|
|
a. Другу — на ключ, который он купил.
|
|
b. Пригласившему — на его последний купленный ключ. Работающего ключа нет — дни добавятся к следующему.
|
|
3. Ссылки: `https://my.veilix.app/r/<код>` (для mass — `my.veilixvpn.com`) и `t.me/<основной бот>?start=<код>`.
|
|
4. Приглашения между брендами не засчитываются, самоприглашения отсекаются.
|
|
5. В кабинете показываем: приглашено, начислено месяцев, ожидает оплаты; список приглашённых с замаскированной почтой.
|
|
|
|
## 11. Поддержка и заявки
|
|
|
|
1. Страница поддержки: Telegram (бот поддержки бренда) и email, FAQ по разделам, форма связи.
|
|
2. Почта поддержки: `help@veilix.app` (dedicated) и `help@veilixvpn.com` (mass); в макете были домены .cc. Ящики — на внешнем почтовом хостинге; на этапе 3e письма из них забирает Chatwoot. До этого на сайте только адрес. Telegram поддержки — `@veilix_support` у обоих брендов, пока нет ботов поддержки (этап 3e).
|
|
3. Заявка «Нужны индивидуальные условия» (dedicated) и «Нужны особые условия» (mass): имя, email, Telegram, WhatsApp, коротко о задаче.
|
|
4. До этапов 3d и 3e формы — только интерфейс ([D-026](decisions/D-026-stage-order.md)). Затем заявки уходят в Twenty CRM (3d), обращения — в Chatwoot (3e).
|
|
5. Часы поддержки: с 10 до 20 по московскому времени в рабочие дни. Сроки ответа на сайте не обещаем.
|
|
|
|
## 12. Языки
|
|
|
|
en (по умолчанию, без префикса в URL), ru, de, fr, es. Позже — pt-br и ja. Подробно — [06-i18n.md](06-i18n.md).
|
|
|
|
## 13. Юридические страницы
|
|
|
|
Условия использования, политика конфиденциальности, политика возвратов, политика cookies. Черновики на 5 языках готовятся в этапе 1b, с заглушками вместо данных юрлица (Q-13). В политике конфиденциальности: VPN-серверы не ведут журналов ([10-security.md](10-security.md), раздел 6). Это черновики, не юридическая консультация: перед запуском — показать юристу. Stripe при подключении проверяет эти страницы.
|