How freedmanofart/vpnsrv works
VPN Service sells and provisions VPN access through Telegram, web, and administrative interfaces. The core journey is user/order interaction → API account, plan, and payment handling → subscription provisioning through the 3x-ui master → client configuration delivery; background work expires access and reconciles panel state. The graph also preserves device activation, web-cabinet/admin, notifications, and audit capabilities. Some route and worker internals were not sampled, so those links rely on README statements or indexed references rather than inspected implementations.
Main entry points: main.py FastAPI entry · session.py Database access · client.py Account and device API · payments.py Payment handling
Components 25
User interfaces
- Telegram bot
bot/app/main.py - Web cabinet
api/app/api/routes/web.py - Web admin
api/app/api/routes/admin.py
API and domain
- FastAPI entry
api/app/main.py - Account and device API
api/app/api/routes/client.py - Plans API
api/app/api/routes/plans.py - Subscription API
api/app/api/routes/subscriptions.py - Payment API
api/app/api/routes/payments.py - VPN node API
api/app/api/routes/vpn.py - Payment handling
api/app/services/payments.py
Access operations
- Client provisioning
api/app/services/provisioning.py - 3x-ui integration
api/app/services/threexui.py - Lifecycle worker
api/app/worker.py - Expiry and lifecycle
api/app/services/lifecycle.py - Node reconciliation
api/app/services/reconciliation.py - Notifications
api/app/services/notifications.py
State and integrations
- API security
api/app/core/security.py - Audit service
api/app/services/audit.py - Database access
api/app/db/session.py - Service records
api/app/db/models
Other components
- VPN customer
- Telegram
- PostgreSQL
- 3x-ui master
- Payment providers
Connections 34
- VPN customer → Telegram: uses
- Telegram → Telegram bot: delivers interaction
- Telegram bot → FastAPI entry: calls API
- VPN customer → Web cabinet: uses cabinet
- VPN customer → FastAPI entry: uses service
- FastAPI entry → Account and device API: routes to
api/app/main.py - FastAPI entry → Plans API: routes to
api/app/main.py - FastAPI entry → Subscription API: routes to
api/app/main.py - FastAPI entry → Payment API: routes to
api/app/main.py - FastAPI entry → VPN node API: routes to
api/app/main.py - FastAPI entry → Web cabinet: routes to
api/app/main.py - FastAPI entry → Web admin: routes to
api/app/main.py - Subscription API → Client provisioning: calls
api/app/api/routes/subscriptions.py - Payment handling → Client provisioning: calls
api/app/services/payments.py - Client provisioning → 3x-ui integration: manages clients
api/app/services/provisioning.py - 3x-ui integration → 3x-ui master: REST requests
- Payment API → Payment handling: handles payments
- Payment handling → Payment providers: uses provider
- Lifecycle worker → Expiry and lifecycle: runs lifecycle
api/app/worker.py - Lifecycle worker → Node reconciliation: runs reconciliation
- Lifecycle worker → 3x-ui master: syncs access
- Account and device API → Client provisioning: uses client operations
- Payment handling → Notifications: notifies
- Web admin → API security: authenticates
api/app/api/routes/admin.py - FastAPI entry → API security: protects routes
api/app/main.py - Subscription API → Database access: queries records
api/app/api/routes/subscriptions.py - Web cabinet → Database access: queries records
api/app/api/routes/web.py - Web admin → Database access: queries records
api/app/api/routes/admin.py - Account and device API → Database access: queries records
api/app/api/routes/client.py - Database access → PostgreSQL: opens sessions
api/app/db/session.py - Service records → PostgreSQL: stores service data
- Account and device API → Audit service: writes audit
api/app/api/routes/client.py - Audit service → Service records: persists audit log
api/app/services/audit.py - Notifications → Telegram: sends messages
api/app/services/notifications.py