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
| Service | Port | Verification | Configuration |
|---|---|---|---|
| sshd | 22 | systemctl status sshd | /etc/ssh/sshd_config |
| docker | — | docker info | /etc/docker/daemon.json |
| containerd | — | — | — |
| postgresql-18 | 5432 | pg_isready | /etc/postgresql-18/ |
| k3s | 6443 | kubectl get nodes | /etc/rancher/k3s/ |
| tailscaled | — | tailscale status | /var/lib/tailscale/ |
| smb | 139,445 | smbclient -L localhost | /etc/samba/smb.conf |
| sunshine | 47984–48010 | systemctl --user status sunshine | ~/.config/sunshine/ |
Network
| Service | Port | Description | Configuration |
|---|---|---|---|
| NetworkManager | — | Network management | /etc/NetworkManager/ |
| systemd-resolved | 5355 | DNS stub | /etc/systemd/resolved.conf |
| caddy | 9443(127.0.0.1) | mTLS gateway (metrics-fleet) | /etc/caddy/Caddyfile |
| avahi-daemon | 5353 | mDNS | — |
Proxy
See network-architecture.md for details.
| Location | Component | Port | Configuration |
|---|---|---|---|
| Localhost | mihomo (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.conf → nameserver 127.0.0.1; systemd-resolved DNSStubListener=no (to avoid port 53 conflicts).
Monitoring Stack
| Service | Port | Verification | Configuration |
|---|---|---|---|
| prometheus | 9090 | curl :9090/-/healthy | /etc/prometheus/prometheus.yml |
| grafana | 3000 | curl :3000/api/health | /etc/grafana/ |
| loki | 3100 | curl :3100/ready | /etc/loki/config.yaml |
| tempo | 3200 (grpc:4317) | curl :3200/ready | /etc/tempo/config.yaml |
| node_exporter | 9100 | curl :9100/metrics | — |
| otelcol-home | 4318 (127.0.0.1) | metrics+trace pipeline | /etc/otelcol-home/config.yaml |
| otelcol-logs | — | journald→Loki | /etc/otelcol-logs/config.yaml |
| miwifi-exporter | 9184 | Xiaomi router metrics | /etc/miwifi-exporter.env |
Scheduled Collection (textfile collector → node_exporter)
| Service | Frequency | Collected Content |
|---|---|---|
| amdgpu-metrics | 10s | GPU temperature/power/frequency |
| net-metrics | 15s | WiFi signal/link quality + proxy latency |
| rathole-probe | 30s | All rathole services TCP/TLS/HTTP liveness → rathole_service_up |
| owntracks-collector | 30s | Family member GPS location/battery/accuracy |
| sgcc-collector | Daily 08:00 | State Grid electricity bills |
| miwifi-exporter | Persistent | Xiaomi router metrics |
Messaging & IoT
| Service | Port | Description |
|---|---|---|
| mosquitto | 1883 | MQTT 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:
| Service | Domain | Tunnel |
|---|---|---|
| Grafana | grafana.liz6.com | 13000→3000 |
| Open WebUI | chat.liz6.com | 13001→3001 |
| Documentation Site | doc.liz6.com | 13002→8090 |
| mdserve | paste.liz6.com | 13003→8088 |
| CalDAV | caldav.liz6.com | 13004→5232 |
| OTLP (mTLS) | otlp.liz6.com:9443 | 9443→Caddy mTLS (revocation+path restriction)→4318 |
Docker Containers
Infrastructure Level (failure affects entire household)
| Container | Port | Description |
|---|---|---|
| adguardhome | 53,8083 | DNS ad filtering |
| rathole-client | — | Intranet tunneling |
| bark-server | 8085 | iOS push notifications |
| radicale | 5232 | CalDAV/CardDAV |
| docker-proxy | 2375 (127.0.0.1) | Secure Docker socket proxy |
| owntracks-recorder | 8083 (internal) | GPS location recording |
Application Level
| Container | Port | Description |
|---|---|---|
| open-webui | 3001 | LLM chat interface |
| homeassistant | 8123 | Smart home |
| searxng | 8888 | Privacy search |
| sillytavern | 3002 | AI role-playing |
| navidrome | 4533 | Music server |
| wakapi | 8831 | Coding time tracking |
| homepage | 8830 | Homepage dashboard |
| it-tools | 8099 | Developer toolbox |
| whodb | 8889 | Database web management |
| Documentation Site | 8090 | Custom renderer (doc.liz6.com) |
| mdserve | 8088 | Markdown rendering (paste.liz6.com) |
Auxiliary Services
| Service | Port | Description |
|---|---|---|
| bypass-forward | — | iptables FORWARD ACCEPT (LAN↔mihomo TUN), oneshot |
| codex-relay | 4446 | Local API proxy (custom responses→chat completions) |
| li-home-doc | System | Documentation 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
| Application | Source | Description |
|---|---|---|
| Google Chrome | Binary /opt/google/chrome/ | Browser |
| Flatpak | ||
| Spotify | Flatpak | Music |
| Steam | Flatpak | Gaming platform |
| wiliwili | Flatpak | Bilibili |
| Bottles | Flatpak | Wine management |
| Flatseal | Flatpak | Flatpak permission management |
| Bambu Studio | Binary /opt/bambustudio-bin/ | 3D printing slicing |
| Baidu Netdisk | Binary /opt/baidunetdisk/ | Cloud storage |
| OpenRGB | Flatpak | RGB lighting effects |
AI/LLM
| Service | Port | Description |
|---|---|---|
| llama-server | 18080 | llama.cpp API (Vulkan, router mode, MTP) |
| openclaw-gateway | 18789 | AI 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
| Language | Version | Tools |
|---|---|---|
| rust | 1.92.0 | cargo |
| python | 3.13.11 | pip |
| go | 1.25.5 | go |
| node | 24.14.0 | npm |
| dotnet | 10.0.101 | dotnet |
| ruby | 3.x | gem |
| openjdk | 17 | java |
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
Related Documents
- network-architecture.md — Network topology, proxy configuration, configuration derivation pipeline
- rathole-tunnel.md — Intranet tunneling architecture
- monitoring.md — Full-stack monitoring and alerting
- local-llm.md — LLM deployment and GPU scheduling
- timers-and-crons.md — Complete scheduled tasks list