~/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.8 GiB / 467.9 GiB
os
nixos 26.05
load
1.92
uptime
87d 22h
last seen
60s 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
92d 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
230d 23h
last seen
51s 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
uptime0.00%
latency0ms
matrix-synapseinfra@nova
matrix homeserver; federates out, postgres-backed
statusup
uptime100.00%
latency86ms
piholesecurity@nova
network-wide dns blocklists for the whole house
statusup
uptime100.00%
latency82ms
uptime-kumainfra@nova
monitors every other service. this page reads from its api.
statusup
uptime100.00%
latency58ms
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
4.1TiB used
total 8.2 TiBfree 4.1 TiB50% 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