diff --git a/infra/cloudflared-routes.md b/infra/cloudflared-routes.md new file mode 100644 index 0000000..c0e641b --- /dev/null +++ b/infra/cloudflared-routes.md @@ -0,0 +1,45 @@ +# Cloudflare Tunnel — публичные поддомены для bit-flight-deck + +Туннель `bitra-llm` (managed mode, ID `b2680cd3-472b-4813-a7b8-42baf7a4f645`) обслуживает несколько поддоменов `*.bigmadnekenny.ru`. Конфигурация хранится в Cloudflare Dashboard (не в локальном `/etc/cloudflared/config.yml`). + +## Текущие ingress-правила (version 5, по состоянию на 2026-05-14) + +| Hostname | Service | Назначение | +|---|---|---| +| `ssh.bigmadnekenny.ru` | `ssh://localhost:22` | SSH через тоннель (был выключен CF Access — см. ROADMAP инфры) | +| `llm.bigmadnekenny.ru` | `http://localhost:4000` | LiteLLM публичный endpoint | +| `gitea.bigmadnekenny.ru` | `http://localhost:3000` | Gitea публичный endpoint | +| `bitlink-parser.bigmadnekenny.ru` | `http://localhost:8001` | Bitlink parser сервис | +| **`n8n.bigmadnekenny.ru`** | **`http://localhost:5678`** | **N8N — приём webhook'ов от Bitrix24 (этот проект)** | +| (catch-all) | `http_status:404` | По умолчанию 404 | + +## DNS + +CNAME `n8n.bigmadnekenny.ru` → `b2680cd3-472b-4813-a7b8-42baf7a4f645.cfargotunnel.com` (proxied через CF). + +## Как добавляется новый поддомен + +Через **Cloudflare API** (managed-mode не позволяет редактировать локальный config): + +```bash +# 1. DNS CNAME +curl -X POST "https://api.cloudflare.com/client/v4/zones//dns_records" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{"type":"CNAME","name":"","content":".cfargotunnel.com","proxied":true}' + +# 2. Tunnel ingress +curl -X PUT "https://api.cloudflare.com/client/v4/accounts//cfd_tunnel//configurations" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{"config":{"ingress":[...все правила, новое перед catch-all...]}}' +``` + +Альтернативно — через UI: https://one.dash.cloudflare.com → Networks → Tunnels → bitra-llm → Configure → Public Hostname. + +## Безопасность webhook-endpoint'а + +Bitrix24 outbound webhooks приходят на `https://n8n.bigmadnekenny.ru/webhook/bitrix/`. Защита: +- Секрет в URL — известен только Bitrix-админу и N8N webhook-trigger'у. +- (Опц.) проверка IP-источника в N8N (диапазоны IP Битрикса). +- HTTPS обязателен (Cloudflare выдаёт валидный SSL автоматически).