created, modified, type, tags, aliases
created
modified
type
tags
aliases
2026-07-30
2026-07-30
note
Home Network Map
Overview
Network
Router/Gateway
Subnet
192.168.20.0/24
Gateway
192.168.20.1
DNS
Pi-hole on .13 (primary) + .35 (secondary)
Machines
.27 — sam-4screen-desktop (Main Desktop)
Property
Value
IP
192.168.20.27
Hostname
sam-4screen-desktop
OS
NixOS
SSH
✅ sam@192.168.20.27
Tailscale
✅ Installed, service enabled
Role
Daily driver. 4 monitors, 62GB RAM, Nvidia GPU. Zellij, Neovim, pi coding agent.
Key services
pi, pi-dashboard, Neovim, Zellij (with falcode + attention plugins), Home Manager managed
.13 — nixos-desktop (Server)
Property
Value
IP
192.168.20.13
Hostname
nixos-desktop
OS
NixOS
SSH
✅ sam@192.168.20.13
Tailscale
✅ services.tailscale.enable = true;
Role
Docker host, OmniRoute LLM proxy, always-on server. 15.5GB RAM.
Docker containers
OmniRoute
LLM proxy with combo routing (port 20128/20129). All pi LLM traffic routes through it. Combo default-opencode-go-ds-flash prioritises OpenCode-Go before falling through OpenRouter → DeepSeek direct → Google Gemini. See Pi Agent Extensions & Skills#OmniRoute — LLM Provider Router
worldmonitor
Geopolitical news dashboard (port 3002)
mosquitto
MQTT broker
pihole
DNS ad-blocking (primary)
nebula-sync
Pi-hole Gravity sync
headroom
Context compression proxy (port 8787)
engram
Journaling service (port 7437)
n8n
Workflow automation
voice_bridge + voice_whisper
MQTT audio bridge
piper_tts
Text-to-speech
Plus: pocketbase, doorbell_media, litellm, langfuse, airflow, trigger_dev, garage, t3_stack_react, sams-home-network
See Docker Containers for full container list.
.51 — sam-thinkpad (Laptop)
Property
Value
IP
192.168.20.51
Hostname
sam-thinkpad
OS
NixOS
SSH
✅ sam@192.168.20.51
Tailscale
✅ Installed, service enabled
Role
Portable laptop. Used on-the-go and at home. pi, Neovim, Home Manager managed.
.35 — caddy-server (Reverse Proxy)
Property
Value
IP
192.168.20.35
Hostname
caddy-server
OS
Ubuntu Server
SSH
✅ sam@192.168.20.35
Tailscale
Not installed
Role
Caddy reverse proxy. Runs ~50 Docker containers (apps, dashboards, media, monitoring).
Proxied domains:
Domain
Proxied to
omniroute.lab.audasmedia.com.au
.13:20129
omniroute.home.lab
.13:20129
worldmonitor.lab.audasmedia.com.au
.13:3002
worldmonitor.home.lab
.13:3002
See Docker Containers for full container list on .35.
.150 — Phone (Android)
Property
Value
IP
192.168.20.150 (static)
Device
Android phone
SSH
✅ Termux → ssh from/to other machines (port 8022, user: uO_a499)
Tailscale
Optional (install app for remote access)
Role
Mobile access. Termux for SSH, Tailscale for remote, NTFY for notifications.
SSH Access Matrix
From ↓ / To →
.27 desktop
.13 server
.51 laptop
.35 caddy
.150 phone
.27 desktop
—
sam@192.168.20.13
sam@192.168.20.51
sam@192.168.20.35
uO_a499@192.168.20.150:8022
.13 server
sam@192.168.20.27
—
sam@192.168.20.51
sam@192.168.20.35
uO_a499@192.168.20.150:8022
.51 laptop
sam@192.168.20.27
sam@192.168.20.13
—
sam@192.168.20.35
uO_a499@192.168.20.150:8022
.150 phone
sam@192.168.20.27
sam@192.168.20.13
sam@192.168.20.51
sam@192.168.20.35
— (Termux local)
SSH config shortcut (~/.ssh/config):
(Added to .27 and .51. .13 needs home.nix update — ~/.ssh/config is a Nix store symlink.)
Key Apps & Ports
Port
Service
Machine
22
SSH
All
53
DNS (Pi-hole)
.13, .35
80/443
Caddy reverse proxy
.35
1883
MQTT (Mosquitto)
.13
3002
worldmonitor
.13
8022
SSH (Termux)
.150 phone
8022
SSH (Termux)
.150 phone
20129
OmniRoute API
.13
20128
OmniRoute dashboard
.13
7437
engram
.13
8787
Headroom proxy
.13
Tailscale (Tailnet)
Machine
Status
Tailscale IP
.27
✅ Auth needed (tailscale up --accept-routes)
100.x.x.x
.13
✅ Auth needed (tailscale up --accept-routes)
100.x.x.x
.51
✅ Auth needed (tailscale up --accept-routes)
100.x.x.x
.150 phone
❌ Not installed
—
.35 caddy
❌ Not installed
—
Run tailscale up --accept-routes on each machine to authenticate. Install Tailscale app on phone and sign in to same account.
DNS
Server
IP
Role
Pi-hole (primary)
192.168.20.13
DNS ad-blocking, local DNS for .home.lab domains
Pi-hole (secondary)
192.168.20.35
DNS ad-blocking, failover
Local domains needing DNS records
Domain
Target
Status
omniroute.home.lab
.13:20128
✅ Created
omniroute.lab.audasmedia.com.au
.35→.13:20129
✅ Caddy proxied
worldmonitor.home.lab
.13:3002
❌ Needs Pi-hole record
worldmonitor.lab.audasmedia.com.au
.35→.13:3002
❌ Needs DNS + Caddy done