Leonid Pershin 5b398f9c59
CI / Backend (build + test) (push) Successful in 1m16s
CI / Frontend (lint + typecheck + build) (push) Successful in 35s
Enhance Telegram bot functionality and configuration options
- Added new inline button features to the `/configs` command, allowing users to view their configurations in a single message with active links and a back button.
- Implemented a menu for unlinking Telegram accounts, providing a clearer user experience when managing account connections.
- Updated the `.env.example` file to include a new `Telegram__PublicSiteUrl` setting, enabling a button for accessing the panel's website directly from the bot.
- Enhanced documentation to reflect the new features and configuration options available in the Telegram bot.
2026-07-02 19:39:14 +03:00
2026-07-01 12:55:52 +00:00

PnvPanel

PnvPanel — self-service портал для VPN-конфигураций. Пользователи самостоятельно создают и управляют своими VPN-конфигами (VLESS / VMess / Trojan / Shadowsocks), а администраторы управляют серверами, лимитами и пользователями. Есть Telegram-бот (ссылка на сайт, просмотр конфигов, passwordless-вход через привязку Telegram). Под капотом — интеграция с панелями 3x-ui через библиотеку 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:

cp .env.example .env    # заполнить AdminSeed__Password, Jwt__SigningKey и т.д.
docker compose up -d --build
# → http://localhost:8080  (админ — логин/пароль из .env, AdminSeed__Username/Password)

Локальная разработка (без Docker для приложения — только db):

# backend, из backend/
dotnet build && dotnet test
dotnet run --project src/PnvPanel.Api

# frontend, из frontend/
pnpm install
pnpm dev          # проксирует /api, /hubs на localhost:8080

Документация

Проектная документация лежит в docs/:

  • Product Vision & Scope — что мы строим и для кого
  • Architecture — Clean Architecture, CQRS, интеграция, realtime, безопасность
  • Domain Model — сущности, связи, инварианты
  • Tech Stack (ADR) — решения по стеку и их обоснование
  • Backend Conventions — структура проекта, паттерны, стиль кода
  • Frontend — стек фронтенда и структура
  • Telegram Bot — бот, привязка Telegram и passwordless-вход
  • API Design — REST-эндпоинты и SignalR-контракты
  • Roadmap — этапы разработки (ретроспектива) + backlog

Пример переменных окружения (сид админа, БД, JWT, Telegram) — .env.example. Инструкции для AI-ассистента (Claude Code) — в CLAUDE.md.

Статус

MVP реализован. Backend (Clean Architecture, CQRS, 134 теста) и frontend (React SPA, полная админка) готовы, покрывают весь roadmap M0–M8: регистрация/активация/роли, управление нодами 3x-ui и inbound'ами, самообслуживание конфигами, realtime по SignalR, Telegram-бот (привязка + passwordless-вход + уведомления), админ-статистика и аудит. Единый Docker-образ и docker-compose стек проверены end-to-end. Что осталось за рамками MVP осознанно — раздел Backlog в roadmap.md.

Лицензия

MIT

S
Description
No description provided
Readme MIT
1.9 MiB
Languages
C# 69.5%
TypeScript 30.1%
Dockerfile 0.2%