~/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 Β· 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: 53.5 GiB / 467.9 GiB
os
nixos 26.05
load
0.20
uptime
81d 6h
last seen
41s 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.06
uptime
135d 8h
last seen
14s 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.03
uptime
134d 10h
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%
latency81ms
piholesecurity@nova
network-wide dns blocklists for the whole house
statusup
uptime100.00%
latency77ms
uptime-kumainfra@nova
monitors every other service. this page reads from its api.
statusup
uptime100.00%
latency59ms
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
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.3TiB used
total 2.7 TiBfree 0.4 TiB84% 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