---
title: Software Stack Inventory
url: https://doc.liz6.com/en/homelab/software
locale: en
area: homelab
tags:
- homelab
date: 2026-07-01
modified: 2026-07-16
description: 'Purpose: Disaster recovery reference + new machine rebuild checklist. Infrastructure layer includes verification methods; detailed architecture is covered in respective topic documents.'
---

# 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](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-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 |
| WeChat | Flatpak | WeChat |
| 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](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-architecture.md) — Network topology, proxy configuration, configuration derivation pipeline
- [rathole-tunnel.md](rathole-tunnel.md) — Intranet tunneling architecture
- [monitoring.md](monitoring.md) — Full-stack monitoring and alerting
- [local-llm.md](local-llm.md) — LLM deployment and GPU scheduling
- [timers-and-crons.md](timers-and-crons.md) — Complete scheduled tasks list
