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
52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# CDN Manager
|
||
|
||
Панель desired-state DNS для флота CHR/VPS: канонические ноды (A/AAAA) + сервисные CNAME, sync с Cloudflare (DNS-only). Дополняет CFDM, не заменяет его.
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
pnpm install
|
||
pnpm --filter @cdnmanager/shared build
|
||
pnpm --filter @cdnmanager/db build
|
||
pnpm --filter @cdnmanager/api dev # :8081
|
||
pnpm --filter web dev # :5176
|
||
```
|
||
|
||
Локальный логин: `admin` / `admin` (`AUTH_REQUIRED=false`).
|
||
|
||
```env
|
||
CLOUDFLARE_API_TOKEN= # Zone DNS Edit + Zone Read
|
||
```
|
||
|
||
## Auth Portal
|
||
|
||
SSO: [`docs/integrate-auth-portal.md`](docs/integrate-auth-portal.md).
|
||
|
||
## Docker (сервер)
|
||
|
||
**Рекомендуется (HTTPS + Traefik):** [`docs/deploy-traefik.md`](docs/deploy-traefik.md)
|
||
|
||
```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 # fill secrets
|
||
docker login git.shx.one
|
||
cd /opt/cdnmanager && docker compose pull && docker compose up -d
|
||
```
|
||
|
||
Без Traefik: [`docs/deploy-docker.md`](docs/deploy-docker.md).
|
||
|
||
## Структура
|
||
|
||
```
|
||
apps/web # Vite SPA — nodes / aliases / topology / zones / dashboard
|
||
apps/api # Fastify — fleet + Cloudflare DNS client
|
||
packages/ui # @cdnmanager/ui — shadcn
|
||
packages/shared # @cdnmanager/shared — Zod contracts
|
||
packages/db # @cdnmanager/db — Drizzle + SQLite
|
||
```
|
||
|
||
Экраны: Обзор · Ноды · Алиасы · Топология · Зоны/Sync · Настройки.
|
||
|
||
Подробнее: [AGENTS.md](AGENTS.md), [docs/Home.md](docs/Home.md), [docs/ui-design-contract.md](docs/ui-design-contract.md).
|