~/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 3/3 reportingservices 9 Β· 3 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: 39.6 GiB / 467.9 GiB
os
nixos 26.05
load
0.16
uptime
39d 12h
last seen
27s ago
gilbertmedia ripping / minecraft / nfs
cpu
Inteli7-6700 CPU @ 3.40GHz Β· 8c
ram
15.3 GiB
storage
root: 54.0 GiB / 232.7 GiB
os
nixos 26.05
load
0.07
uptime
39d 12h
last seen
1m 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.00
uptime
38d 15h
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%
latency64ms
immichmedia@nova
photo library, replaces icloud for anything i actually care about
statusup
uptime100.00%
latency0ms
matrix-synapseinfra@nova
matrix homeserver; federates out, postgres-backed
statusup
uptime100.00%
latency93ms
piholesecurity@nova
network-wide dns blocklists for the whole house
statusup
uptime100.00%
latency98ms
uptime-kumainfra@nova
monitors every other service. this page reads from its api.
statusup
uptime100.00%
latency63ms
rommmedia@nova
rom library + emulator frontend; postgres-backed
statusup
uptime100.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
statusup
uptime100.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
0.3TiB used
total 2.7 TiBfree 2.4 TiB10% 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