Перейти к содержимому

F-15: Caddy + DNS + первый deploy — closure (mostly DONE через F-08/F-11/F-13)

Outcome

F-15 (Caddy + DNS + первый deploy) был largely сделан incidentally при F-08 (FastAPI skeleton), F-11 (Next.js deploy) и F-13 (Astro docs). К моменту явного closure 2026-05-18 production stack живёт уже несколько дней:

  • https://razmakh.ru (Next.js) — F-11
  • https://razmakh.ru/admin (admin panel) — F-12
  • https://razmakh.ru/api (FastAPI) — F-08
  • https://docs.razmakh.ru (Astro Starlight) — F-13
  • https://grafana.razmakh.ru (observability) — F-10
  • https://secrets.razmakh.ru (Infisical UI) — F-03

Все с auto LE TLS (Caddy HTTP-01 challenge), все на отдельном razmakh-vps (45.131.186.153) — никакой shared infrastructure с Netnik.

Что закрыто 2026-05-18

DNS propagation test через 3 resolvers (Cloudflare 1.1.1.1, Google 8.8.8.8, Yandex 77.88.8.8) — все 4 поддомена резолвятся в 45.131.186.153:

Domain1.1.1.18.8.8.877.88.8.8
razmakh.ru45.131.186.15345.131.186.15345.131.186.153
docs.razmakh.ru45.131.186.15345.131.186.15345.131.186.153
grafana.razmakh.ru45.131.186.15345.131.186.15345.131.186.153
secrets.razmakh.ru45.131.186.15345.131.186.15345.131.186.153

Yandex 360 DNS propagation OK across всех major resolvers — significa нет stale cached records / DNS misconfiguration.

Что осталось deferred (не критично Phase 1)

  • Cloudflare .com/.io domains (razmakh.com, razmakh.io) → Cloudflare Pages для docs.razmakh.com. Defer reasoning: domains не куплены пока для marketing site (Phase 1.5+ topic). Yandex 360 DNS на .ru fully sufficient для current scope. P15 (partner privacy) не зависит от secondary domains.

Lesson learned

В контексте Foundation deploy — план features может смерджиться в неявные DONE через смежные tasks. F-15 был “explicitly TODO” но 6/7 items оказались уже done через F-08/F-11/F-13 (Caddy + DNS + TLS + first deploy + auto-renewal — всё это требовалось для первых deployments).

Правило: при closure feature checklist проверять каждый item на actual state, не на “был ли явный F-XX task”. Implicit completion через смежные tasks — норма для interconnected infrastructure.

What changes in process going forward

  1. F-15-style closure tasks: для interconnected infra features делать explicit closure check-pass: [x] verified via F-YY вместо предполагать что “не сделано без явного task”.
  2. DNS test как standalone gate: для каждого нового поддомена — dig @{1.1.1.1, 8.8.8.8, 77.88.8.8} triangulation в F-XX checklist, не отдельным lesson-level task.
  3. Cross-link к decisions: F-15 (single razmakh-vps deployment) implementation полностью соответствует razmakh-deployment-isolation-2026-05-17.md ADR. При closure validate соответствие decision → actual deploy.

Action items

  • DNS propagation tested через 3 resolvers (2026-05-18)
  • F-15 inline ✅ DONE 2026-05-18 в plan/active/00-foundation.md
  • ADR-001 local stub создан с pointer на canonical в netnik-state
  • Cloudflare .com/.io domains — deferred Phase 1.5+ (marketing site decision pending)
  • (optional) Создать runbooks/dns-add-subdomain.md Phase 1.5 — codify 3-resolver DNS test

Tracking

MetricPlannedActualVariance
F-15 plan1-2 дня (8-16 h)~10 min closure activity-95% (через смежные tasks)
DNS test5 min2 min-60%

Подтверждает паттерн из estimates-recalibration-2026-05-17.md: divide plan estimate by 6-8 для realistic LLM-driven dev velocity. F-15 в этом случае ещё сильнее ускорено через implicit completion.

Sources

  • plan/active/00-foundation.md F-15 section (post-update)
  • Caddyfile на razmakh-vps: /etc/caddy/Caddyfile (per netnik-state/runbooks/razmakh-caddy-config.md если будет в Phase 1.5)
  • DNS test command: for resolver in 1.1.1.1 8.8.8.8 77.88.8.8; do for d in razmakh.ru docs.razmakh.ru grafana.razmakh.ru secrets.razmakh.ru; do echo -n "$d → "; dig @$resolver +short $d | head -1; done; done