Этап 1a: фундамент

- Next 16.4 и Payload 3.91 в одном приложении, PostgreSQL с UUID,
  TypeScript 6, ESLint 9, Prettier, Vitest
- Payload: администраторы с ролями, multi-tenant по сайтам, локализация
  en/ru/de/fr/es, интерфейс админки ru/en, языки сайта (sites.locales)
- Коллекции sites, domains, currencies, countries, locations, tags,
  tariffs, payment-systems (manual), media и начальные данные (pnpm seed)
- Proxy: хост → домен, язык и валюта, внутренние маршруты по хосту;
  /admin и /api закрыты на доменах брендов
- Токены и темы брендов, оболочки сайта и кабинета, переключатели языка,
  валюты и темы, заглушки страниц
- /svc/health, юнит systemd veilix-dev.service
- Документация: решения D-022…D-024, команды в CLAUDE.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreypr207andClaude Opus 5.5 committed 2026-10-21 05:08:05 +02:00
1 parent 3400f58a5a
commit 7e331c2c9d
140 files changed
+15885 -43

No files matched your search

+63
View File
@@ -0,0 +1,63 @@
{
"brand": {
"dedicated": {
"name": "Вейликс",
"tagline": "Персональные VPN-серверы с индивидуальным IP. Работаем с 2022 года."
},
"mass": {
"name": "ВейликсВПН",
"tagline": "VPN, который не нужно отключать. Работаем с 2022 года."
}
},
"nav": {
"main": "Основная навигация",
"home": "Главная",
"pricing": "Цены",
"locations": "Локации",
"support": "Поддержка",
"logIn": "Войти",
"getVpn": "Получить VPN",
"menu": "Меню"
},
"footer": {
"service": "Сервис",
"legal": "Документы",
"terms": "Условия использования",
"privacy": "Политика конфиденциальности",
"refund": "Возврат средств",
"cookies": "Политика cookies",
"copyright": "© {year} {brand}"
},
"switch": {
"language": "Язык",
"currency": "Валюта",
"theme": "Тема",
"light": "Светлая тема",
"dark": "Тёмная тема",
"system": "Как в системе"
},
"cabinet": {
"home": "Главная",
"keys": "Список ключей",
"keysShort": "Ключи",
"key": "Ключ",
"buy": "Купить ключ",
"buyShort": "Купить",
"billing": "Счёт и платежи",
"referral": "Реферальная программа",
"more": "Ещё",
"support": "Поддержка",
"login": "Вход в кабинет",
"order": "Оформление заказа",
"terms": "Условия",
"privacy": "Конфиденциальность"
},
"stub": {
"text": "Раздел появится на следующих этапах."
},
"notFound": {
"title": "Страница не найдена",
"text": "Возможно, она переехала или её никогда не было.",
"home": "На главную"
}
}