Commit graph

2730 commits

Author SHA1 Message Date
Viktor Barzin
cce513349a upgrade: immich v2.7.4 -> v2.7.5
Changelog summary: Bug fix for version check rate limiting and deduplication,
translation updates. Patch-only release with no breaking changes.
Risk: SAFE
Breaking changes: none
DB backup: yes (job: pre-upgrade-immich-1776357229, 1.9G, immich namespace)
Config changes applied: none
Flagged for manual review: none

Co-Authored-By: Service Upgrade Agent <noreply@viktorbarzin.me>
2026-04-16 16:34:57 +00:00
Viktor Barzin
3afdc9a6cb upgrade: ollama (open-webui) v0.7.2 -> v0.8.12
Changelog summary: 13 intermediate releases. v0.8.0 introduces analytics dashboard,
Skills support, Open Responses protocol, and a long-running DB migration on
chat_message table. v0.8.1-v0.8.12 add model editing shortcuts, OIDC logout
endpoint, terminal integration, notebook execution, and numerous bug fixes.

Risk: CAUTION
Breaking changes: v0.8.0 long-running chat_message table migration + schema changes,
  v0.8.1 additional schema changes. SQLite auto-migrates on startup.
DB backup: skipped (SQLite on proxmox-lvm PVC, LVM snapshots available for rollback)
Config changes applied: none
Flagged for manual review: none — all changes are additive features/fixes

Co-Authored-By: Service Upgrade Agent <noreply@viktorbarzin.me>
2026-04-16 16:34:48 +00:00
Viktor Barzin
1ea48c93e5 upgrade: owntracks 0.9.9 -> 1.0.1
Changelog summary:
- 1.0.0: POI inline image support, deprecate google maps in vmap.html, packaging fixes
- 1.0.1: ocat JSON array output fix, revgeo error messages, OpenBSD support, storage dir env fix

Risk: CAUTION (major version 0→1, but changes are benign — no schema/config/API breaking changes)
Breaking changes: none (deprecate keyword hit on vmap.html google maps — cosmetic only)
DB backup: skipped (not DB-backed)
Config changes applied: none required
Flagged for manual review: none

Co-Authored-By: Service Upgrade Agent <noreply@viktorbarzin.me>
2026-04-16 16:34:29 +00:00
Viktor Barzin
216d4240c9 [infra] Add Cloudflare provider to all stack lock files and generated providers
Terragrunt now generates cloudflare_provider.tf (Vault-sourced API key)
and includes cloudflare in required_providers. These are the generated
files from running `terragrunt init -upgrade` across all stacks.

[ci skip]

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 16:31:36 +00:00
Viktor Barzin
541bee7176 state(ebooks): update encrypted state 2026-04-16 16:05:27 +00:00
Viktor Barzin
cf93f123f1 upgrade: audiobookshelf 2.32.1 -> 2.33.1
Changelog summary: Security fixes (IDOR vulnerabilities in sessions/progress/bookmarks),
DB index + query parallelization for discover performance, crash fixes, HTML sanitization
on playlist/collection/podcast endpoints, API key enabled/disabled fix.
Risk: SAFE
Breaking changes: none
DB backup: no (not DB-backed)
Config changes applied: none
Flagged for manual review: none

Co-Authored-By: Service Upgrade Agent <noreply@viktorbarzin.me>
2026-04-16 16:00:26 +00:00
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