docs: Update Wiki from main repository
+23
-8
@@ -20,10 +20,11 @@ Manage Cloudflare zones, DNS records, domain groups, and TLS certificate expiry
|
|||||||
| `ADMIN_USERNAME` | Admin username |
|
| `ADMIN_USERNAME` | Admin username |
|
||||||
| `ADMIN_PASSWORD_HASH` | Argon2 hash (empty = dev `admin`/`admin`) |
|
| `ADMIN_PASSWORD_HASH` | Argon2 hash (empty = dev `admin`/`admin`) |
|
||||||
| `LOG_LEVEL` | Уровень логов API (`info`, `debug`) |
|
| `LOG_LEVEL` | Уровень логов API (`info`, `debug`) |
|
||||||
| `HEALTH_CHECK_CRON` | Cron для health-check (default `*/30 * * * * *`) |
|
| `HEALTH_CHECK_CRON` | Cron для health-check (default `0 */2 * * * *`). Переопределяется в **Настройки → Health-check**. |
|
||||||
| `HEALTH_DEGRADED_FAILURES` | Ошибок подряд до `degraded` (default `1`) |
|
| `HEALTH_DEGRADED_FAILURES` | Ошибок подряд до `degraded` (default `1`). То же в UI. |
|
||||||
| `HEALTH_DOWN_FAILURES` | Ошибок подряд до `down` (default `2`) |
|
| `HEALTH_DOWN_FAILURES` | Ошибок подряд до `down` (default `2`). То же в UI. |
|
||||||
| `HEALTH_LATENCY_WARN_MS` | Латентность-порог для `degraded` (default `1000`) |
|
| `HEALTH_SUCCESS_RECOVERIES` | Успехов подряд для recovery `CHECKING → HEALTHY` (default `2`). То же в UI. |
|
||||||
|
| `HEALTH_LATENCY_WARN_MS` | Латентность-порог для `degraded` (default `1000`). То же в UI. |
|
||||||
|
|
||||||
## Load balancing & health checks
|
## Load balancing & health checks
|
||||||
|
|
||||||
@@ -37,18 +38,32 @@ health-check работают на двух уровнях:
|
|||||||
`(domain_id, service_id, hostname)`).
|
`(domain_id, service_id, hostname)`).
|
||||||
- **Привязка сервиса с multi-A** — режим LB и health-check настраиваются в карточке
|
- **Привязка сервиса с multi-A** — режим LB и health-check настраиваются в карточке
|
||||||
сервиса для каждой привязки с несколькими IP; для IP задаются вес/приоритет.
|
сервиса для каждой привязки с несколькими IP; для IP задаются вес/приоритет.
|
||||||
|
- **Ноды** — first-class адреса сервиса (`nodes` + `binding_nodes`); IP-пулы
|
||||||
|
`service_ips` / `service_binding_ips` пишутся dual-write.
|
||||||
|
- **Change IP** — `POST /api/v1/service-bindings/:id/change-ip` (preview + PATCH DNS).
|
||||||
|
- **Change Domain** — перенос привязок между зонами `POST /api/v1/services/:id/change-domain`.
|
||||||
|
|
||||||
Режимы LB: `round_robin`, `failover`, `weighted`. В Cloudflare free `weighted`
|
Режимы LB: `round_robin`, `failover`, `weighted`. В Cloudflare free `weighted`
|
||||||
работает как `round_robin` (одна A на IP), веса хранятся в БД для будущих расширений
|
работает как `round_robin` (одна A на IP). `unknown` **не** считается healthy и
|
||||||
и отображения в UI. Reconcile DNS запускается cron-задачей `health-check` при смене
|
не попадает в пул, пока нет успешных проб; восстановление — `UNHEALTHY → CHECKING → HEALTHY`
|
||||||
статуса IP (`up` / `degraded` / `down` / `unknown`); `down`-IP убирается из A-записей.
|
после `HEALTH_SUCCESS_RECOVERIES` (default 2). Пороги и cron движка задаются в
|
||||||
|
**Настройки → Health-check** (env — fallback, пока значения не сохранены в UI).
|
||||||
|
Reconcile DNS запускается cron-задачей
|
||||||
|
`health-check`. Cloudflare Health Checks — официальный API зоны, Workers не используются.
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
|
Один alpine-контейнер (API + SPA + SQLite). Образы `cfdm` и `cloudflare-domain-manager` — один манифест.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
docker pull git.shx.one/denozord/cfdm:latest
|
||||||
|
# drop-in для прежнего тега:
|
||||||
docker pull git.shx.one/denozord/cloudflare-domain-manager:latest
|
docker pull git.shx.one/denozord/cloudflare-domain-manager:latest
|
||||||
|
|
||||||
docker run -d -p 8080:8080 -v cfdm-data:/data \
|
docker run -d -p 8080:8080 -v cfdm-data:/data \
|
||||||
-e CLOUDFLARE_API_TOKEN=... \
|
-e CLOUDFLARE_API_TOKEN=... \
|
||||||
-e JWT_SECRET=... \
|
-e JWT_SECRET=... \
|
||||||
git.shx.one/denozord/cloudflare-domain-manager:latest
|
git.shx.one/denozord/cfdm:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Compose: корневой `docker-compose.yml` или `deploy/compose/docker-compose.example.yaml`. Сборка: `deploy/docker` (bake). Релизы: [`docs/releasing.md`](releasing.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user