quality / commitlint (push) Skipped
CD / update-wiki (push) Successful in 6s
quality / changes (push) Successful in 5s
quality / docker-check (push) Skipped
quality / web (push) Successful in 56s
quality / api (push) Successful in 41s
CD / quality (push) Successful in 1m47s
CD / publish (push) Successful in 33s
28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# CDN Manager
|
|
|
|
Self-hosted панель управления DNS флота (ноды A/AAAA + сервисные CNAME) через Cloudflare.
|
|
|
|
- App id (auth-portal): `cdn`
|
|
- Стек: pnpm monorepo, Vite/React/TanStack/ReUI, Fastify/Drizzle/SQLite
|
|
- Модель: zones → nodes / aliases → sync desired↔Cloudflare (DNS-only)
|
|
- UI DNA дашборда: как CFDM (`OpsDashboard`, `AttentionQueue`, hybrid KPI)
|
|
- Не замена CFDM: там домены/сервисы/LB; здесь флот CHR и failover CNAME
|
|
- SSO: [`integrate-auth-portal.md`](./integrate-auth-portal.md)
|
|
- Docker + Traefik (prod): [`deploy-traefik.md`](./deploy-traefik.md)
|
|
- Docker без Traefik: [`deploy-docker.md`](./deploy-docker.md)
|
|
|
|
См. [README](../README.md) и [AGENTS.md](../AGENTS.md).
|
|
|
|
## Docker + Traefik (кратко)
|
|
|
|
```bash
|
|
mkdir -p /opt/cdnmanager/data
|
|
cp deploy/docker-compose.traefik.yml /opt/cdnmanager/docker-compose.yml
|
|
cp deploy/env.traefik.example /opt/cdnmanager/.env
|
|
# заполнить CF_DNS_API_TOKEN, CLOUDFLARE_API_TOKEN, AUTH_JWT_SECRET, …
|
|
docker login git.shx.one
|
|
cd /opt/cdnmanager && docker compose pull && docker compose up -d
|
|
```
|
|
|
|
Compose: [`deploy/docker-compose.traefik.yml`](../deploy/docker-compose.traefik.yml). Env: [`deploy/env.traefik.example`](../deploy/env.traefik.example).
|