← všechny projektyběží

Irminsul — indie cloud

Vlastní „malý cloud“ na třech serverech — 19 služeb s jedním společným přihlášením, celé popsané jako kód.

HonoTypeScriptDockerAuthentikCaddyCloudflarerestic
irminsul.uk
irminsul.uk — veřejná úvodní stránka

Architektura

Cloudflare→Caddy · ověření přihlášení→Authentik SSO→estate-api · Hono, vertical slices→19 kontejnerů se službami

Co to je

Kontejnery na třech serverech u Hetzneru za reverse proxy, spojené jedním přihlášením. Osobní cloud pro rodinu a přátele, žádná cloud-native platforma z mikroslužeb.

Jak to začalorešerše

Vyrostlo to z jedné myšlenky: jeden kořen, ze kterého všechno roste. Šel jsem vědomě po jednoduchosti — na frontendu jsem odmítl těžkou sadu react-query, generovaného klienta a formulářové knihovny, protože pro systém, o který se starám sám, by to byla zbytečnost.

Rozhodnutí

DNS jako kód (jeden YAML na hostname), na každém serveru jeden Caddy, přihlášení přes Authentik. estate-api je backend v Honu rozdělený na 25 vertical slices: ovládání Minecraft serveru přes RCON, rozesílání stavu přes SSE z jednoho dotazu a AI worker pro postavy ve hře, který volá claude -p.

Provoz

Zálohy přes restic (denní 7, týdenní 4, měsíční 6) s týdenní kontrolou integrity a hlášením do Discordu a Uptime Kuma. Nasazení si samo ověří, že služba běží, a když ne, vrátí předchozí verzi.

Ukázky

irminsul.uk — veřejná úvodní stránkaMinecraft hub — živý stav serveru, pluginy, města a mapa v jednom Next.js bundluImmich za Authentikem — každá služba se přihlašuje přes jedno společné přihlášení

V číslech

3
servery u Hetzneru
19
služeb
32
DNS jako kód
1
přihlášení · Authentik

Historie

  1. září 2026spuštěnoSpuštěný nový web homelabu — irminsul.uk, home i minecraft běží z jednoho statického bundlu.
  2. září 2026přibyloNa irminsul.uk/status přibyla historie dostupnosti za 90 dní, čtená z Uptime Kuma ve worker vlákně.
  3. srpen 2026změnaVětší server, každá záloha ověřená skutečnou obnovou a vlastní CI runnery přímo v homelabu.
  4. květen 2026změnaHesla a klíče přesunuté do Infisical, API homelabu ve verzi 2.