Описание архитектуры

Из чего состоит Nooka: клиентская часть, сервер, база данных и внешние сервисы.

Программа для ЭВМ «Nooka», версия 1.0 · редакция от 13 октября 2026 · {{short}}

Документация · Функциональные характеристики · Установка · Руководство пользователя · Руководство администратора · Архитектура · Жизненный цикл и поддержка

1. Общая схема

Браузер пользователя — по HTTPS обращается к серверу nookagame.ru.

Caddy — веб-сервер с сертификатом HTTPS. Отдаёт:

Сервер Nooka работает с:

Сервер, база данных и все внешние сервисы находятся в Российской Федерации. Веб-аналитика — Яндекс Метрика.

2. Клиентская часть (сайт)

3. Сервер

4. База данных

ТаблицаЧто хранит
usersАккаунты: адрес почты, дата создания
login_codesКоды входа — только в виде хешей, со сроком действия и счётчиком попыток
sessionsСессии — только хеши токенов, срок действия
progressПрогресс ребёнка по ключам: опыт, пройденные уровни, звания
gallery_itemsРаботы из коллекции
ordersЗаказы: тариф, сумма, статус, номер платежа PayKeeper
access_grantsВыдачи доступа: вид, срок, основание, кто выдал
issued_codesСписок ранее выданных кодов доступа
chat_turnsУчёт сообщений чата: кто, когда, сколько токенов, вид ответа — без текстов

5. Безопасность

6. Внешние сервисы

СервисДля чего
PayKeeperПриём оплаты и кассовые чеки
Unisender Go или SMTP Яндекс ПочтыОтправка писем с кодом входа
YandexGPT (Yandex AI Studio)Ответы ИИ-наставника в чате
Яндекс МетрикаОбезличенная статистика посещений

7. Сторонние компоненты

КомпонентЛицензия
Node.jsMIT
PostgreSQLPostgreSQL License
CaddyApache 2.0
pg (драйвер PostgreSQL)MIT
NodemailerMIT-0
ReactMIT
Шрифты Unbounded, Nunito, Fredoka One, Orbitron, Space GroteskSIL Open Font License 1.1
Ansible (средство развёртывания, в состав программы не входит)GPL 3.0

8. Исходный код и развёртывание

Исходный код хранится в системе контроля версий Git с полной историей изменений: отдельно клиентская часть и серверная часть вместе со средствами развёртывания. Сервер настраивается и обновляется Ansible-плейбуками; для проверки изменений поднимаются тестовые стенды с отдельной базой данных.

Правообладатель — {{seller}}, ИНН {{inn}}, ОГРНИП {{ogrnip}}.
Публичная оферта · Политика обработки персональных данных · На главную