niklas‑stephan.de

Docker Projects on Iris

Last updated 05/11/2026 · docker, iris, home-assistant

Compose projects in /data/docker on iris (192.168.68.63 / iris.local, tailnet 100.64.0.3), state verified 2026-10-25 by listing every container: 9 project dirs, all 9 running, nothing dormant. Like metis, iris has no reverse proxy: services are plain containers on the LAN (docker ps --format ...), reached by LAN IP or tailnet IP; only Traefik-fronted access is via handtrixxx.com’s forwarders. Low-power box (2 cores, 16 GB) - keep workloads light.

Project Container(s) Image Ports Notes
HomeAssistant homeassistant ghcr.io/home-assistant/home-assistant:stable 8123 On iris since 2026-10-21 (moved from metis); config ./config, ConBee II Zigbee stick plugged in here, /run/dbus for ZHA, touchscreen kiosk. REST http://127.0.0.1:8123, HASS_TOKEN in /data/ai-persistence/.env; automations via skill home-assistant
voice whisper, piper, openwakeword rhasspy/wyoming-whisper, -piper, -openwakeword 10300, 10200, 10400 - only on 127.0.0.1 Moved from metis 2026-10-23; deliberately loopback-only because HA is on the same box; whisper threads 2, mem_limit 5g (~1.7 GiB used); the three HA Wyoming entries point at localhost
frigate frigate ghcr.io/blakeblackshear/frigate:stable 5000 (UI), 8554/8555 (camera streams, also UDP 8555), 8971 Config ./config, recordings ./storage; publishes detections to MQTT
mqtt mosquitto eclipse-mosquitto:2 1883 Frigate → Home Assistant bridge
MusicAssistant music-assistant-server ghcr.io/music-assistant/server 8095 Exposed publicly as music.handtrixxx.com (handtrixxx.com socat forwarder → 100.64.0.3:8095)
adguard adguard adguard/adguardhome 81 (UI, mapped from container 80), 53 DNS, 443/853 DoH/DoT, 3000/5443 Homelab DNS resolver; no public router route - reachable LAN or 100.64.0.3:81 (old docs said 100.64.0.6, that node does not exist)
metube metube alexta69/metube 8081 (host-net) Video downloader moved here from handtrixxx.com 2026-10-04; egress through the iris tailscale node’s SOCKS5 :1055
backrest backrest-backrest-1 garethgeorge/backrest 9898 (UI) Backup client for the iris restic repo → rest-server on Pi hestia; compose.yaml.bak-pre-pi is the pre-Pi config. See backup-scenario-restic
arcane-agent arcane-agent ghcr.io/getarcaneapp/agent:latest 3553 Arcane remote agent (added 2026-10-26) so docker.handtrixxx.com manages iris’ containers/projects; see memory arcane-remote-environments
tailscale tailscale-iris + forward-calibre, forward-jellyfin, forward-sabnzbd, forward-nzbhydra tailscale/tailscale + 4× alpine/socat host-net, socat listens 8083/8096/8089/5076 This is iris’s only tailnet client (no host tailscaled); it offers an exit node and forwards handtrixxx.com services locally: 8083→100.64.0.2:8083 (calibre), 8096→100.64.0.2:8096 (jellyfin), 8089→100.64.0.2:8080 (sabnzbd), 5076→100.64.0.2:5076 (nzbhydra)

What is NOT on iris (common assumption)

  • No LLM server - llama runs on metis (:8000); iris reaches it over the tailnet. The voice stack here is whisper/piper/openwakeword only.
  • No MCP/memory server - mcp.handtrixxx.com (Alexandria) is offline; KB access is the git repo /data/ai-persistence and the /kb mount.
  • No OpenCode / Hermes / urbackup - all retired (urbackup server deleted 2026-10-21).
  • No Traefik - don’t add Traefik labels on iris; use LAN/tailnet ports or a handtrixxx.com forwarder.

Source: Wiki.js