- FastAPI REST API with JWT auth - aiogram 3 Telegram bot with admin middleware - APScheduler daily tasks (expiry, reminders, revoke, sync) - SQLAlchemy 2 async ORM with Alembic migrations - Jinja2 admin panel (Dashboard, Users, Payments, Servers, Tariffs) - VPN provider abstraction with MockProvider - Stats service with revenue/subscription analytics - Docker Compose (PostgreSQL + Redis + app) - Healthcheck endpoint
24 lines
406 B
YAML
24 lines
406 B
YAML
version: "3.9"
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: vpn
|
|
POSTGRES_PASSWORD: vpn_secret
|
|
POSTGRES_DB: vpn_control
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- pgdata_dev:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "6379:6379"
|
|
|
|
volumes:
|
|
pgdata_dev:
|