19 min read #homelab
On this page

Software Stack Inventory

Purpose: Disaster recovery reference + new machine rebuild checklist. Infrastructure layer includes verification methods; detailed architecture is covered in respective topic documents.

Infrastructure

System Core

ServicePortVerificationConfiguration
sshd22systemctl status sshd/etc/ssh/sshd_config
dockerdocker info/etc/docker/daemon.json
containerd
postgresql-185432pg_isready/etc/postgresql-18/
k3s6443kubectl get nodes/etc/rancher/k3s/
tailscaledtailscale status/var/lib/tailscale/
smb139,445smbclient -L localhost/etc/samba/smb.conf
sunshine47984–48010systemctl --user status sunshine~/.config/sunshine/

Network

ServicePortDescriptionConfiguration
NetworkManagerNetwork management/etc/NetworkManager/
systemd-resolved5355DNS stub/etc/systemd/resolved.conf
caddy9443(127.0.0.1)mTLS gateway (metrics-fleet)/etc/caddy/Caddyfile
avahi-daemon5353mDNS

Proxy

See network-architecture.md for details.

LocationComponentPortConfiguration
Localhostmihomo (TUN self-proxy)mixed:7890, API:9999, DNS:5350/opt/mihomo/mihomo_config/config.yaml (true source)
N100(.7)Nikki+mihomo (Whole-house transparent proxy)mixed:7890, API:9090, DNS:1053/etc/nikki/profiles/home.yaml (derived from sync-mihomo-to-router.timer)

DNS Chain

Localhost: App → mihomo DNS (:5350, fake-ip) → AdGuard (:53) → Domestic 223.5.5.5 / International DoH 1.1.1.1 + 8.8.8.8
Whole-house: Client → N100 AdGuard (:53) → mihomo (:1053, fake-ip) → Same as above

> The order of AdGuard/mihomo is reversed between localhost and whole-house: localhost goes through mihomo TUN first, then AdGuard; whole-house goes through AdGuard first for ad filtering, then into mihomo for traffic splitting—they are independent paths, each managing its own traffic.

/etc/resolv.confnameserver 127.0.0.1; systemd-resolved DNSStubListener=no (to avoid port 53 conflicts).

Monitoring Stack

ServicePortVerificationConfiguration
prometheus9090curl :9090/-/healthy/etc/prometheus/prometheus.yml
grafana3000curl :3000/api/health/etc/grafana/
loki3100curl :3100/ready/etc/loki/config.yaml
tempo3200 (grpc:4317)curl :3200/ready/etc/tempo/config.yaml
node_exporter9100curl :9100/metrics
otelcol-home4318 (127.0.0.1)metrics+trace pipeline/etc/otelcol-home/config.yaml
otelcol-logsjournald→Loki/etc/otelcol-logs/config.yaml
miwifi-exporter9184Xiaomi router metrics/etc/miwifi-exporter.env

Scheduled Collection (textfile collector → node_exporter)

ServiceFrequencyCollected Content
amdgpu-metrics10sGPU temperature/power/frequency
net-metrics15sWiFi signal/link quality + proxy latency
rathole-probe30sAll rathole services TCP/TLS/HTTP liveness → rathole_service_up
owntracks-collector30sFamily member GPS location/battery/accuracy
sgcc-collectorDaily 08:00State Grid electricity bills
miwifi-exporterPersistentXiaomi router metrics

Messaging & IoT

ServicePortDescription
mosquitto1883MQTT Broker (Home Assistant + Owntracks backend)

Intranet Tunneling

See rathole-tunnel.md. rathole-client (Docker, host network), relay via Tencent Cloud VPS, keepalive+nodelay. Daemon: rathole-watchdog (5min liveness check).

Exposed services:

ServiceDomainTunnel
Grafanagrafana.liz6.com13000→3000
Open WebUIchat.liz6.com13001→3001
Documentation Sitedoc.liz6.com13002→8090
mdservepaste.liz6.com13003→8088
CalDAVcaldav.liz6.com13004→5232
OTLP (mTLS)otlp.liz6.com:94439443→Caddy mTLS (revocation+path restriction)→4318

Docker Containers

Infrastructure Level (failure affects entire household)

ContainerPortDescription
adguardhome53,8083DNS ad filtering
rathole-clientIntranet tunneling
bark-server8085iOS push notifications
radicale5232CalDAV/CardDAV
docker-proxy2375 (127.0.0.1)Secure Docker socket proxy
owntracks-recorder8083 (internal)GPS location recording

Application Level

ContainerPortDescription
open-webui3001LLM chat interface
homeassistant8123Smart home
searxng8888Privacy search
sillytavern3002AI role-playing
navidrome4533Music server
wakapi8831Coding time tracking
homepage8830Homepage dashboard
it-tools8099Developer toolbox
whodb8889Database web management
Documentation Site8090Custom renderer (doc.liz6.com)
mdserve8088Markdown rendering (paste.liz6.com)

Auxiliary Services

ServicePortDescription
bypass-forwardiptables FORWARD ACCEPT (LAN↔mihomo TUN), oneshot
codex-relay4446Local API proxy (custom responses→chat completions)
li-home-docSystemDocumentation site renderer (background hot reload)

Desktop & Development

The following are personal desktop environment components, not infrastructure services.

Desktop Environment (Hyprland)

Core Components: hyprland (~/.config/hypr/), hypridle, hyprlock, hyprpaper, waybar, fuzzel, wlogout, mako, cliphist, swappy, grim+slurp, fcitx5, waypaper

Display & Session: hypridle, hypridle-dpms, udiskie, gamemoded (game mode + LLM VRAM sharing)

Audio: pipewire, pipewire-pulse, wireplumber

Desktop Integration: xdg-desktop-portal (+hyprland/gtk), flatpak-portal, dconf, gvfs, at-spi-dbus

Terminal: ghostty (~/.config/ghostty/), wezterm (~/.wezterm.lua)

File Management: thunar (GUI), superfile (TUI)

Desktop Applications

ApplicationSourceDescription
Google ChromeBinary /opt/google/chrome/Browser
WeChatFlatpakWeChat
SpotifyFlatpakMusic
SteamFlatpakGaming platform
wiliwiliFlatpakBilibili
BottlesFlatpakWine management
FlatsealFlatpakFlatpak permission management
Bambu StudioBinary /opt/bambustudio-bin/3D printing slicing
Baidu NetdiskBinary /opt/baidunetdisk/Cloud storage
OpenRGBFlatpakRGB lighting effects

AI/LLM

ServicePortDescription
llama-server18080llama.cpp API (Vulkan, router mode, MTP)
openclaw-gateway18789AI Agent platform

GPU power scheduling: llama-gpu-sync.timer (15s, poll gpu_busy_percent → switch between levels 0↔5). See local-llm.md for details.

Development

LanguageVersionTools
rust1.92.0cargo
python3.13.11pip
go1.25.5go
node24.14.0npm
dotnet10.0.101dotnet
ruby3.xgem
openjdk17java

nvim (~/.config/nvim/), lazygit, chezmoi, kubectl+k9s+kubectx, helm, flutter, pulumi, ccache

Shell & CLI

zsh (starship, fzf-tab+zoxide+autosuggestions), fastfetch, eza, dust, procs, zellij, fzf, jq, lnav, tealdeer, strace, lsof, systemctl-tui

Entertainment

Steam (Flatpak), gamescope, MangoHud, Cheat Engine Server (/opt/ceserverbin76/), ffmpeg, mpv, wine-staging 11.4, Bottles