Add comprehensive traffic statistics endpoints for admin users:
API Endpoints:
- GET /admin/traffic-stats/overview - Platform-wide traffic overview
- GET /admin/traffic-stats/users - Traffic stats by user (paginated)
- GET /admin/traffic-stats/subscriptions - Traffic stats by subscription
- GET /admin/traffic-stats/nodes - Traffic stats by node
- GET /admin/traffic-stats/ranking/users - Top users by traffic
- GET /admin/traffic-stats/ranking/subscriptions - Top subscriptions
- GET /admin/traffic-stats/trend - Traffic trend with hour/day/month granularity
Implementation:
- Extend SubscriptionUsageRepository with aggregation methods
- Add admin domain with DTOs and use cases
- Add TrafficStatsHandler for HTTP endpoints
- Register routes with admin authentication
Also update docker-compose.yml to use ORRIS_ prefixed env vars
and simplify .env.example configuration
- Simplify config.example.yaml by removing verbose comments and unused options
- Update docker-compose.yml to add Caddy reverse proxy, MySQL, and Redis services
- Use bind mounts instead of named volumes for easier data migration
- Remove sdk/ directory from git tracking (already in .gitignore)
- Add Dockerfile with multi-stage build for minimal Alpine image
- Add GitHub Actions workflow to build and push images to ghcr.io on tags
- Update docker-compose.yml with orris app service, Redis, and bind mounts
- Add docker-build, docker-build-multi, docker-push commands to Makefile
- Add data/ directory to .gitignore for local volume storage