Commit graph

2724 commits

Author SHA1 Message Date
root
af090c818b Woodpecker CI deploy [CI SKIP] 2026-04-16 13:46:08 +00:00
Viktor Barzin
b1d152be1f [infra] Auto-create Cloudflare DNS records from ingress_factory
## Context

Deploying new services required manually adding hostnames to
cloudflare_proxied_names/cloudflare_non_proxied_names in config.tfvars —
a separate file from the service stack. This was frequently forgotten,
leaving services unreachable externally.

## This change:

- Add `dns_type` parameter to `ingress_factory` and `reverse_proxy/factory`
  modules. Setting `dns_type = "proxied"` or `"non-proxied"` auto-creates
  the Cloudflare DNS record (CNAME to tunnel or A/AAAA to public IP).
- Simplify cloudflared tunnel from 100 per-hostname rules to wildcard
  `*.viktorbarzin.me → Traefik`. Traefik still handles host-based routing.
- Add global Cloudflare provider via terragrunt.hcl (separate
  cloudflare_provider.tf with Vault-sourced API key).
- Migrate 118 hostnames from centralized config.tfvars to per-service
  dns_type. 17 hostnames remain centrally managed (Helm ingresses,
  special cases).
- Update docs, AGENTS.md, CLAUDE.md, dns.md runbook.

```
BEFORE                          AFTER
config.tfvars (manual list)     stacks/<svc>/main.tf
        |                         module "ingress" {
        v                           dns_type = "proxied"
stacks/cloudflared/               }
  for_each = list                     |
  cloudflare_record               auto-creates
  tunnel per-hostname             cloudflare_record + annotation
```

## What is NOT in this change:

- Uptime Kuma monitor migration (still reads from config.tfvars)
- 17 remaining centrally-managed hostnames (Helm, special cases)
- Removal of allow_overwrite (keep until migration confirmed stable)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:45:04 +00:00
Viktor Barzin
95d2a6abf8 state(wealthfolio): update encrypted state 2026-04-16 11:30:59 +00:00
Viktor Barzin
e8874dd37a state(cloudflared): update encrypted state 2026-04-16 10:59:30 +00:00
Viktor Barzin
997fd4f85b state(linkwarden): update encrypted state 2026-04-16 10:35:35 +00:00
Viktor Barzin
2ae31148cb state(ytdlp): update encrypted state 2026-04-16 10:33:55 +00:00
Viktor Barzin
43b0316978 state(xray): update encrypted state 2026-04-16 10:33:39 +00:00
Viktor Barzin
f0e7de8e57 state(woodpecker): update encrypted state 2026-04-16 10:33:27 +00:00
Viktor Barzin
deff4ae9f5 state(webhook_handler): update encrypted state 2026-04-16 10:33:11 +00:00
Viktor Barzin
1557ce0084 state(servarr): update encrypted state 2026-04-16 10:30:30 +00:00
Viktor Barzin
6d0772df60 state(vpa): update encrypted state 2026-04-16 10:25:07 +00:00
Viktor Barzin
1616b3c483 state(vaultwarden): update encrypted state 2026-04-16 10:24:42 +00:00
Viktor Barzin
a34df78158 state(vault): update encrypted state 2026-04-16 10:24:29 +00:00
Viktor Barzin
fc813bd5bd state(tuya-bridge): update encrypted state 2026-04-16 10:19:56 +00:00
Viktor Barzin
192bb2348f state(traefik): update encrypted state 2026-04-16 10:19:35 +00:00
Viktor Barzin
90189a4307 state(trading-bot): update encrypted state 2026-04-16 10:19:13 +00:00
Viktor Barzin
8caf760878 state(terminal): update encrypted state 2026-04-16 10:18:57 +00:00
Viktor Barzin
99d607f8d3 state(technitium): update encrypted state 2026-04-16 10:18:44 +00:00
Viktor Barzin
3999deae71 state(tandoor): update encrypted state 2026-04-16 10:18:29 +00:00
Viktor Barzin
2de253b693 state(stirling-pdf): update encrypted state 2026-04-16 10:17:41 +00:00
Viktor Barzin
6ee429f8d2 state(speedtest): update encrypted state 2026-04-16 10:17:21 +00:00
Viktor Barzin
fd51caa572 state(send): update encrypted state 2026-04-16 10:16:45 +00:00
Viktor Barzin
cdf5e583a3 state(real-estate-crawler): update encrypted state 2026-04-16 10:12:57 +00:00
Viktor Barzin
2bd8c92f00 state(privatebin): update encrypted state 2026-04-16 10:12:41 +00:00
Viktor Barzin
32ad8342a1 state(poison-fountain): update encrypted state 2026-04-16 10:11:57 +00:00
Viktor Barzin
560a7b519f state(plotting-book): update encrypted state 2026-04-16 10:11:45 +00:00
Viktor Barzin
2fddcabd01 state(owntracks): update encrypted state 2026-04-16 10:09:05 +00:00
Viktor Barzin
4f0dc058c6 state(openclaw): update encrypted state 2026-04-16 10:08:00 +00:00
Viktor Barzin
cc8e5e9d11 state(onlyoffice): update encrypted state 2026-04-16 10:07:41 +00:00
Viktor Barzin
e25eed343d state(ollama): update encrypted state 2026-04-16 10:07:20 +00:00
Viktor Barzin
7fe9eb65e8 state(ntfy): update encrypted state 2026-04-16 10:07:04 +00:00
Viktor Barzin
c72257c58e state(novelapp): update encrypted state 2026-04-16 10:06:45 +00:00
Viktor Barzin
71a3998193 state(nextcloud): update encrypted state 2026-04-16 10:06:26 +00:00
Viktor Barzin
44ef6af4fb state(netbox): update encrypted state 2026-04-16 10:03:54 +00:00
Viktor Barzin
f78672d30b state(navidrome): update encrypted state 2026-04-16 10:03:31 +00:00
Viktor Barzin
53855b4265 state(n8n): update encrypted state 2026-04-16 10:03:15 +00:00
Viktor Barzin
2e3edd7a48 state(matrix): update encrypted state 2026-04-16 10:02:24 +00:00
Viktor Barzin
4d4996f246 state(mailserver): update encrypted state 2026-04-16 10:01:59 +00:00
Viktor Barzin
0bd17e3122 state(kms): update encrypted state 2026-04-16 10:01:32 +00:00
Viktor Barzin
b8a35ecf52 state(k8s-portal): update encrypted state 2026-04-16 10:01:13 +00:00
Viktor Barzin
5d248e98fa state(freedify): update encrypted state 2026-04-16 10:00:54 +00:00
Viktor Barzin
ab82b926da state(k8s-portal): update encrypted state 2026-04-16 09:58:45 +00:00
Viktor Barzin
b25d121e4a state(k8s-dashboard): update encrypted state 2026-04-16 09:58:35 +00:00
Viktor Barzin
b22496e6d8 state(jsoncrack): update encrypted state 2026-04-16 09:58:08 +00:00
Viktor Barzin
a1dfe195c6 state(immich): update encrypted state 2026-04-16 09:57:23 +00:00
Viktor Barzin
e3a68b5746 state(homepage): update encrypted state 2026-04-16 09:57:03 +00:00
Viktor Barzin
f0334f268c state(health): update encrypted state 2026-04-16 09:56:40 +00:00
Viktor Barzin
db0c176a52 state(headscale): update encrypted state 2026-04-16 09:56:15 +00:00
Viktor Barzin
6a0d8e73e2 state(hackmd): update encrypted state 2026-04-16 09:56:00 +00:00
Viktor Barzin
83c3d95258 state(frigate): update encrypted state 2026-04-16 09:55:31 +00:00