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-11https://razmakh.ru/admin(admin panel) — F-12https://razmakh.ru/api(FastAPI) — F-08https://docs.razmakh.ru(Astro Starlight) — F-13https://grafana.razmakh.ru(observability) — F-10https://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:
| Domain | 1.1.1.1 | 8.8.8.8 | 77.88.8.8 |
|---|---|---|---|
| razmakh.ru | 45.131.186.153 | 45.131.186.153 | 45.131.186.153 |
| docs.razmakh.ru | 45.131.186.153 | 45.131.186.153 | 45.131.186.153 |
| grafana.razmakh.ru | 45.131.186.153 | 45.131.186.153 | 45.131.186.153 |
| secrets.razmakh.ru | 45.131.186.153 | 45.131.186.153 | 45.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
- F-15-style closure tasks: для interconnected infra features делать explicit closure check-pass:
[x] verified via F-YYвместо предполагать что “не сделано без явного task”. - DNS test как standalone gate: для каждого нового поддомена —
dig @{1.1.1.1, 8.8.8.8, 77.88.8.8}triangulation в F-XX checklist, не отдельным lesson-level task. - Cross-link к decisions: F-15 (single razmakh-vps deployment) implementation полностью соответствует
razmakh-deployment-isolation-2026-05-17.mdADR. При 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.mdPhase 1.5 — codify 3-resolver DNS test
Tracking
| Metric | Planned | Actual | Variance |
|---|---|---|---|
| F-15 plan | 1-2 дня (8-16 h) | ~10 min closure activity | -95% (через смежные tasks) |
| DNS test | 5 min | 2 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.mdF-15 section (post-update)- Caddyfile на razmakh-vps:
/etc/caddy/Caddyfile(pernetnik-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