EdgeFlow CDN deployment configurations.
graph TD
User[User Request] --> Scheduler[cdn-scheduler<br/>DNS / HTTP 302]
Scheduler --> Edge[cdn-edge<br/>Caching Proxy]
Edge --> Origin[Origin Server]
Edge -->|Metrics| Prometheus
Prometheus --> Grafana
Console[cdn-console<br/>React UI] -->|REST API| Control[cdn-control<br/>Gin + gRPC]
Control -->|gRPC Config Push| Edge
Control --> PG[(PostgreSQL)]
Control --> Redis[(Redis)]
Redis -->|Pub/Sub Purge| Edge
Edge -->|Access Logs| CH[(ClickHouse)]
Start all services with one command:
docker compose up --build| Service | Port | Description |
|---|---|---|
| cdn-console | 3000 | Admin web UI |
| cdn-control | 8090 | Control plane API |
| cdn-edge | 8080/8443 | Edge proxy (HTTP/HTTPS) |
| cdn-scheduler | 15353/8053 | DNS + HTTP scheduling |
| postgres | 5432 | Database |
| redis | 6379 | Cache purge pub/sub |
| prometheus | 9090 | Metrics collection |
| grafana | 3001 | Monitoring dashboards |
- Console:
admin/admin123 - Grafana:
admin/admin
Import grafana/cdn-overview.json into Grafana for the pre-built CDN monitoring dashboard.
Panels: QPS, cache hit rate, active connections, latency percentiles, bandwidth, status codes, origin metrics.
cd e2e
chmod +x e2e_test.sh
./e2e_test.shFor VPS or K8s deployments, customize the config files in each service's configs/docker-config.yaml.