# PnvPanel **PnvPanel** — self-service портал для VPN-конфигураций. Пользователи самостоятельно создают и управляют своими VPN-конфигами (VLESS / VMess / Trojan / Shadowsocks), а администраторы управляют серверами, лимитами и пользователями. Есть **Telegram-бот** (ссылка на сайт, просмотр конфигов, passwordless-вход через привязку Telegram). Под капотом — интеграция с панелями [3x-ui](https://github.com/MHSanaei/3x-ui) через библиотеку [ThreeXui.Net](https://github.com/mrleo1nid/ThreeXui.Net). Приложение (фронт + бек + бот) поставляется **единым Docker-образом**; PostgreSQL — отдельным контейнером в compose. ## Стек | Слой | Технологии | | ----------- | -------------------------------------------------------------------------------- | | Backend | C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS (свой диспетчер), EF Core | | БД | PostgreSQL (Npgsql) | | Auth | ASP.NET Core Identity + JWT (access + refresh) | | Realtime | SignalR | | Интеграция | ThreeXui.Net (3x-ui REST API) | | Telegram | Telegram.Bot (in-process hosted service, long polling) | | Frontend | React 19 + Vite + TypeScript, TanStack Query/Router, shadcn/ui + Tailwind | | Упаковка | Единый Docker-образ (API + бот + статика SPA) + PostgreSQL в docker-compose | ## Быстрый старт Единый Docker-образ (API + бот + статика SPA) + PostgreSQL: ```bash cp .env.example .env # заполнить AdminSeed__Password, Jwt__SigningKey и т.д. docker compose up -d --build # → http://localhost:8080 (админ — логин/пароль из .env, AdminSeed__Username/Password) ``` Локальная разработка (без Docker для приложения — только `db`): ```bash # backend, из backend/ dotnet build && dotnet test dotnet run --project src/PnvPanel.Api # frontend, из frontend/ pnpm install pnpm dev # проксирует /api, /hubs на localhost:8080 ``` ## Документация Проектная документация лежит в [`docs/`](docs/README.md): - [Product Vision & Scope](docs/vision.md) — что мы строим и для кого - [Architecture](docs/architecture.md) — Clean Architecture, CQRS, интеграция, realtime, безопасность - [Domain Model](docs/domain-model.md) — сущности, связи, инварианты - [Tech Stack](docs/tech-stack.md) — используемые технологии - [Backend Conventions](docs/backend-conventions.md) — структура проекта, паттерны, стиль кода - [Frontend](docs/frontend.md) — стек фронтенда и структура - [Telegram Bot](docs/telegram-bot.md) — бот, привязка Telegram и passwordless-вход - [API Design](docs/api-design.md) — REST-эндпоинты и SignalR-контракты Пример переменных окружения (сид админа, БД, JWT, Telegram) — [`.env.example`](.env.example). Инструкции для AI-ассистента (Claude Code) — в [`CLAUDE.md`](CLAUDE.md). ## Лицензия [MIT](LICENSE)