~/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 Β· 4 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: 47.7 GiB / 467.9 GiB
os
nixos 26.05
load
0.20
uptime
36d 2h
last seen
44s ago
gilbertmedia ripping / minecraft / nfs
cpu
Inteli7-6700 CPU @ 3.40GHz Β· 8c
ram
15.3 GiB
storage
root: 56.6 GiB / 232.7 GiB
os
nixos 26.05
load
0.15
uptime
90d 4h
last seen
52s 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.73
uptime
89d 6h
last seen
10s 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%
latency70ms
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%
latency95ms
piholesecurity@nova
network-wide dns blocklists for the whole house
statusup
uptime100.00%
latency97ms
uptime-kumainfra@nova
monitors every other service. this page reads from its api.
statusup
uptime100.00%
latency65ms
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
1.3TiB used
total 2.7 TiBfree 1.4 TiB47% 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