dtoro 35b1a25f08 fix: remaining DHCP drifts + improve validation script
- Fixed apps LXC 105: /etc/network/interfaces was still 'iface eth0 inet
  dhcp' -> changed to static 192.168.8.205/24, killed dhclient, applied
- Fixed mule-images LXC 120: DHCP client had overridden static .136 with
  DHCP lease .108 -> killed dhclient, restored .136
- Fixed sophia docs: inventory said .157, actual Proxmox config is .109
- Updated check-caddy-backends.sh: uses curl with connect-timeout for
  reliable TCP checks, distinguishes 'port open / no HTTP' from 'unreachable'
2026-06-05 17:59:46 +02:00

Homelab Wiki — hubris

Living documentation for the hubris Proxmox homelab. Every node, every cross-cutting system, and every meaningful incident is its own page; pages are linked so you can start anywhere and walk the graph.

Last refreshed against live state: 2026-04-28.

Map

Hosts

  • hubris — single Proxmox VE node, GMKtec NucBox M6 Ultra, 192.168.8.77

VMs

LXC containers

See the full table in containers/index.md. Quick links:

ID Name IP Role
101 jellyfin 192.168.8.206 Media server
102 nfs-export 192.168.8.200 NFSv4 re-export of /mnt/library for ZimaOS
103 paperless 192.168.8.130 Document mgmt
104 gitea 192.168.8.121 Git server
105 apps 192.168.8.205 Docker host (Artifacto / Booklore / PlantUML / Portainer / WriteFreely)
114 nextcloud 192.168.8.224 Personal cloud
118 elementsynapse 192.168.8.239 Matrix Synapse
119 sophia 192.168.8.157 Sophia
120 mule-images 192.168.8.136 Mule-image / mulita photos
121 caddy 192.168.8.175 Reverse proxy
122 arriman 192.168.8.132 Docker host (*arr stack)
124 authentik 192.168.8.180 SSO + split-horizon DNS
126 plato 192.168.8.190 Plato (notes/discovery workspace)

Cross-cutting infrastructure

Investigations

Time-stamped incident notes / experiments in investigations/.

Operations

Conventions

  • Each node page ends with a ## Changelog section. Reverse-chronological. Entry format:
    ### YYYY-MM-DD — short title
    one or two lines on what changed and why.
    
  • Cross-linking is mandatory. If a page references another node or system, link to it. Treat orphans as a bug.
  • Live state wins. When something here disagrees with pct config / docker inspect / running config, fix the wiki and note the change in the relevant changelog.
  • Tracked configs. A node whose config lives in a Gitea repo (Caddy, Gitea customizations, Artifacto, mule-image) is auto-deployed via webhook — see auto-deploy. Edits there must be pushed, not left local.
  • No secrets. This is a private repo on git.hubris.network, but still: paths to secret files are fine, secret values are not.

Maintaining this wiki

When you change a node:

  1. Update the relevant page (config snapshot, ports, mounts).
  2. Add a changelog entry at the bottom of that page.
  3. If the change touches a cross-cutting system (DNS, Caddy, Authentik, mesh), update that page too and link it from the changelog entry.
  4. If it's an incident, add an entry to investigations/.

See also

Description
Agentic OS for running a Homelab
Readme 37 MiB
Languages
Go 53.1%
Svelte 25.7%
TypeScript 14%
Shell 3.8%
Python 1.7%
Other 1.5%