Содержание

Архитектура и разработка

На этой странице

Проект — Rust workspace и PostgreSQL. Панель написана на JavaScript/HTML/CSS без frontend-сборщика. Клиентские ресурсы встраиваются в sn-cabinet при компиляции; изменение web/app требует пересборки шлюза для установленного кабинета.

Каталог Назначение
crates/core База, авторизация, общие правила и проверка конфигураций
crates/api API панели, sn-admin и шлюз sn-cabinet
crates/sub Форматы подписки и страница подключения
crates/payments Провайдеры, счета, начисления и докупки
crates/bot Telegram-бот
crates/node Агент сервера и Xray
crates/worker Фоновые задачи, рассылки и уведомления
web Панель и клиентские интерфейсы
db/migrations Упорядоченные миграции PostgreSQL

Локальная работа

Используйте отдельную базу и окружение по .env.example. Примените bash deploy/migrate.sh с настроенным DATABASE_URL. Не используйте seed на рабочем сервере. Соберите cargo build --locked --workspace. Учётную запись владельца создавайте утилитой sn-admin со скрытым stdin, а не паролем в аргументах.

make test-release
cargo test --locked --workspace --lib --bins
cargo build --release --locked --workspace

Интеграционные проверки с базой и Telegram-моками имеют отдельные переменные и ограничения тестовой БД. Не запускайте их против рабочей базы. Для Linux-релиза используйте штатную сборку, которая проверяет ELF/архитектуру и манифест.

Платёжный модуль

Типовой HTTP-провайдер настраивается в панели, если соответствует поддержанному контракту. Нестандартная подпись или многоэтапный протокол требуют Rust-модуля и пересборки. Реализуйте контракт реестра провайдеров; проверяйте подпись исходного тела, внешний ID, сумму и валюту. Начисление и отметка оплаты должны быть идемпотентны и транзакционны. См. интерфейс платежей.

Изменения и переводы

Добавляйте миграции новым номером, не переписывайте уже выпущенные. При UI-изменении обновляйте RU/EN строки, подсказки и руководство соответствующего раздела. Проверяйте мобильный и широкий экран, светлую и тёмную темы. Планы развития не описывайте как готовые функции.

Правила участия — CONTRIBUTING.ru.md.

Поиск по документации

СодержаниеВсе категории