Leonid Pershin c4bc6ff04b
CI / Backend (build + test) (push) Successful in 1m21s
CI / Frontend (lint + typecheck + build) (push) Successful in 33s
Update ThreeXui.Net package version and enhance IXuiPanelGateway implementation
- Updated the version of `ThreeXui.Net` to 1.0.3 in `Directory.Packages.props` for improved functionality.
- Modified the `IXuiPanelGateway` interface documentation to reflect changes in client traffic retrieval, specifying the use of `GetInboundClientTrafficAsync` method for better data synchronization.
- Refactored `XuiPanelGateway` to utilize the new method, ensuring accurate client traffic data retrieval and addressing issues with previous versions not loading client statistics correctly.
2026-07-23 01:30:54 +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 — используемые технологии
  • Backend Conventions — структура проекта, паттерны, стиль кода
  • Frontend — стек фронтенда и структура
  • Telegram Bot — бот, привязка Telegram и passwordless-вход
  • API Design — REST-эндпоинты и SignalR-контракты

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

Лицензия

MIT

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