~/homelab

homelab.

three nixos boxes on tailscale. runs everything i refuse to cloud β€” photos, media, matrix, push notifications. host telemetry pushed every 60s by the homelab-agent module on each box; service status scraped from uptime-kuma on nova.

hosts 2/3 reportingservices 9 Β· 5 down

01 //topology.

ascii Β· the whole rack in 20 lines
     [ internet ]
          β”‚
     β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
     β”‚ router  β”‚   home gateway Β· 192.168.0.0/24
     β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
          β”‚
     β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚                    β”‚              β”‚
 β”Œβ”€β”€β”€β”΄β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”΄β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”
 β”‚  nova  β”‚           β”‚gilbert β”‚    β”‚  void  β”‚
 β”‚  .10   β”‚           β”‚  .11   β”‚    β”‚  .12   β”‚
 β”‚ caddy  β”‚           β”‚ ripper β”‚    β”‚  zfs   β”‚
 β”‚ matrix β”‚           β”‚  mc    β”‚    β”‚  nas   β”‚
 β”‚ media  β”‚           β”‚  nfs   β”‚    β”‚ samba  β”‚
 β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚
     β–Ό
 [ tailscale ⇄ cloudflare dns ⇄ *.flaked.org ]

02 //hosts.

3 machines Β· all nixos Β· all on tailscale
novamedia server / reverse proxy / matrix
cpu
IntelN100 Β· 4c
ram
15.4 GiB
storage
root: 134.4 GiB / 467.9 GiB
os
nixos 26.05
load
1.54
uptime
42d 5h
last seen
17s ago
gilbertmedia ripping / minecraft / nfs
cpu
Inteli7-6700 CPU @ 3.40GHz Β· 8c
ram
15.3 GiB
storage
root: 58.4 GiB / 232.7 GiB
os
nixos 26.05
load
0.10
uptime
140d 4h
last seen
46d ago
voidnas Β· zfs raid
cpu
Inteli5-4460 CPU @ 3.20GHz Β· 4c
ram
15.5 GiB
storage
storage: 2.72 TiB ONLINE
os
nixos 26.05
load
0.46
uptime
185d 6h
last seen
1m ago

03 //services.

9 containers across 3 hosts
jellyfinmedia@nova
self-hosted media library; streams whatever gilbert ripped to whichever tv is on
statusup
uptime100.00%
latency62ms
immichmedia@nova
photo library, replaces icloud for anything i actually care about
statusup
uptime0.00%
latency0ms
matrix-synapseinfra@nova
matrix homeserver; federates out, postgres-backed
statusup
uptime100.00%
latency89ms
piholesecurity@nova
network-wide dns blocklists for the whole house
statusup
uptime100.00%
latency92ms
uptime-kumainfra@nova
monitors every other service. this page reads from its api.
statusup
uptime100.00%
latency0ms
rommmedia@nova
rom library + emulator frontend; postgres-backed
statusup
uptime0.00%
latency0ms
rustfsstorage@nova
s3-compatible object store; serves as a backup target
statusdown
uptime0.00%
latency0ms
gotifyinfra@nova
push notifications for nixos upgrades + alerts
statusdown
uptime0.00%
latency0ms
igotifyinfra@nova
second gotify instance β€” split channel for noisier alerts
statusdown
uptime0.00%
latency0ms

04 //storage.

raid6 Β· nightly restic β†’ b2
capacity// zfs pools across all hosts
2.8TiB used
total 8.2 TiBfree 5.4 TiB35% used
backups// rustic-backup module
tool
rustic (restic-compatible)
schedule
nightly via systemd timer
encryption
per-host repo password (sops)
last snapshot
tbd β€” agent will report
network// tailscale + caddy
subnet
192.168.0.0/24
tailscale
nova as exit + subnet router
public dns
*.flaked.org via cloudflare
dns blocking
tbd β€” pihole stats