21ff7f5c12
ci/woodpecker/push/woodpecker Pipeline was successful
- Compose stack at appdata/immich, exposed via Traefik at photos.xtrm-lab.org - Library on cache NVMe (raidz1), Postgres on cache - Nightly backup (DB dump + originals rsync) to parity-protected array disk1 - Google Takeout import ready via immich-go v0.32.0
555 lines
13 KiB
Markdown
555 lines
13 KiB
Markdown
# Other Services
|
|
|
|
**Last Updated:** 2026-07-08
|
|
|
|
Non-critical services that enhance functionality but don't affect core network operation.
|
|
|
|
---
|
|
|
|
## DevOps
|
|
|
|
### Gitea (Git Server)
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| gitea | 172.18.0.31 | https://git.xtrm-lab.org |
|
|
|
|
**Ports:** 2222→22 (SSH), 3005→3000 (HTTP)
|
|
**Auth:** Authentik OAuth2
|
|
**Database:** postgresql17 (gitea)
|
|
|
|
### Woodpecker CI
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| woodpecker-server | 172.18.0.32 | https://ci.xtrm-lab.org |
|
|
| woodpecker-agent | 172.18.0.33 | - |
|
|
|
|
**Auth:** Gitea OAuth2
|
|
**Purpose:** CI/CD pipelines for infrastructure repo
|
|
|
|
---
|
|
|
|
## Network Management
|
|
|
|
### NetDisco (Network Discovery)
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| netdisco-web | 172.18.0.41 | https://netdisco.xtrm-lab.org |
|
|
| netdisco-backend | 172.18.0.42 | - |
|
|
|
|
**Database:** postgresql17 (netdisco_db)
|
|
**Purpose:** SNMP-based device discovery, MAC/ARP tracking
|
|
|
|
### Unimus
|
|
|
|
| Network | URL |
|
|
|---------|-----|
|
|
| host | https://unimus.xtrm-lab.org |
|
|
|
|
**Purpose:** Network device configuration backup (MikroTik)
|
|
|
|
---
|
|
|
|
## Monitoring
|
|
|
|
### Uptime Kuma
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| UptimeKuma | 172.18.0.20 | https://uptime.xtrm-lab.org |
|
|
| Uptime-Kuma-API | 172.18.0.18 | - |
|
|
| AutoKuma | 172.18.0.19 | - |
|
|
|
|
**Monitors:** 24 services configured
|
|
|
|
### Speedtest Tracker
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| speedtest-tracker | 172.18.0.21 | https://speed.xtrm-lab.org |
|
|
|
|
### NetAlertX
|
|
|
|
| Network | URL |
|
|
|---------|-----|
|
|
| host | https://netalert.xtrm-lab.org |
|
|
|
|
**Purpose:** Network device discovery and alerting
|
|
|
|
---
|
|
|
|
## Gaming
|
|
|
|
### Minecraft Server
|
|
|
|
| Component | IP | Port | Address |
|
|
|-----------|-----|------|---------|
|
|
| minecraft | 172.18.0.80 | 25565 | minecraft.xtrm-lab.org |
|
|
|
|
**Image:** itzg/minecraft-server (Java Edition)
|
|
**Version:** Latest (1.21.11)
|
|
**Mode:** Survival, Normal difficulty, PVP enabled
|
|
**Max Players:** 10
|
|
**RAM:** 2 GB
|
|
**Online Mode:** Yes (requires paid account)
|
|
**Data:** `/mnt/user/appdata/minecraft/data`
|
|
**NAT:** WAN:25565 → 192.168.10.20:25565 + hairpin NAT
|
|
**Dockge Stack:** `minecraft`
|
|
|
|
---
|
|
|
|
## Media
|
|
|
|
### Immich (Photos)
|
|
|
|
| Component | IP (dockerproxy) | URL |
|
|
|-----------|------------------|-----|
|
|
| immich_server | 172.18.0.132 | https://photos.xtrm-lab.org |
|
|
| immich_machine_learning | (immich_default) | - |
|
|
| immich_postgres | (immich_default) | - (vectorchord) |
|
|
| immich_redis | (immich_default) | - |
|
|
|
|
**Purpose:** Self-hosted Google Photos replacement (Immich v3)
|
|
**Stack:** docker compose at `/mnt/user/appdata/immich/` (`IMMICH_VERSION=v3`)
|
|
**Access:** Traefik → `photos.xtrm-lab.org` (wildcard cert, no forward-auth so mobile app works) + direct LAN `192.168.10.20:2283`
|
|
**Storage:** library on cache NVMe pool `/mnt/user/photos` (raidz1, redundant, fast); Postgres on cache `appdata/immich/postgres`
|
|
**Backup:** nightly 03:30 (`scripts/immich-backup.sh`, cron `dynamix/immich-backup.cron`) — pg_dumpall (keep 14) + originals rsync → `/mnt/disk1/immich-backup` (array disk1, parity-protected, independent media)
|
|
**Import:** immich-go v0.32.0 at `scripts/` for Google Takeout import (`scripts/import-google-photos.sh`)
|
|
|
|
### Plex
|
|
|
|
| Network | Port | URL |
|
|
|---------|------|-----|
|
|
| host | 32400 | https://plex.xtrm-lab.org |
|
|
|
|
**Libraries:** Movies, TV Shows, Music
|
|
|
|
### Plex Debrid
|
|
|
|
| Network | Purpose |
|
|
|---------|---------|
|
|
| host | Debrid integration for Plex |
|
|
|
|
**Purpose:** Integrates Real-Debrid/AllDebrid with Plex for streaming
|
|
|
|
### Zurg + Rclone
|
|
|
|
| Component | Port | Purpose |
|
|
|-----------|------|---------|
|
|
| zurg | 9999 | Real-Debrid WebDAV mount |
|
|
| zurg-rclone | - | Rclone FUSE mount |
|
|
|
|
**Purpose:** Mounts Real-Debrid library as local filesystem for Plex
|
|
|
|
### Overseerr
|
|
|
|
| Component | Port | URL |
|
|
|-----------|------|-----|
|
|
| overseerr | 5055 | https://overseerr.xtrm-lab.org |
|
|
|
|
**Purpose:** Media request management for Plex
|
|
|
|
### Radarr
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| radarr | 172.18.0.43 | https://radarr.xtrm-lab.org |
|
|
|
|
**Purpose:** Movie collection manager (PVR)
|
|
|
|
### Sonarr
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| sonarr | 172.18.0.44 | https://sonarr.xtrm-lab.org |
|
|
|
|
**Purpose:** TV series collection manager (PVR)
|
|
|
|
### Prowlarr
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| prowlarr | 172.18.0.45 | https://prowlarr.xtrm-lab.org |
|
|
|
|
**Purpose:** Indexer manager for Radarr/Sonarr
|
|
|
|
### Libation
|
|
|
|
| Component | IP |
|
|
|-----------|-----|
|
|
| Libation | 172.18.0.23 |
|
|
|
|
**Purpose:** Audiobook management
|
|
|
|
### Transmission
|
|
|
|
| Component | IP | Ports |
|
|
|-----------|-----|-------|
|
|
| transmission | 172.18.0.26 | 9091, 51413 |
|
|
|
|
**Purpose:** Torrent client
|
|
|
|
### Roms (SMB Share)
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| Share Path | /mnt/user/roms |
|
|
| Protocol | SMB (guest access, read-only) |
|
|
| Size | 2.3 TB (49 systems) |
|
|
|
|
**Consumers:**
|
|
|
|
| Device | Mount Point | Method |
|
|
|--------|-------------|--------|
|
|
| Nobara | /mnt/roms | fstab (CIFS, guest, systemd.automount) |
|
|
| Recalbox | /recalbox/share/roms_network | custom.sh boot script (CIFS) |
|
|
|
|
**Recalbox:** Network roms are bind-mounted over local rom directories at boot via `/recalbox/share/system/custom.sh`. Local roms were deleted from SD card to save space.
|
|
|
|
---
|
|
|
|
## Productivity
|
|
|
|
### Nextcloud
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| Nextcloud | 172.18.0.24 | https://cloud.xtrm-lab.org |
|
|
|
|
**Purpose:** File sync, calendar, contacts
|
|
|
|
### Actual Budget
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| actual-budget | 172.18.0.16 | https://actual.xtrm-lab.org |
|
|
|
|
**Purpose:** Personal finance tracking
|
|
|
|
### n8n
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| n8n | 172.18.0.17 | https://n8n.xtrm-lab.org |
|
|
|
|
**Purpose:** Workflow automation
|
|
|
|
### Karakeep
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| karakeep | 172.18.0.25 | https://karakeep.xtrm-lab.org |
|
|
|
|
**Purpose:** Bookmark manager
|
|
|
|
### Homarr (Dashboard)
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| homarr | 172.18.0.4 | https://xtrm-lab.org |
|
|
|
|
**Purpose:** Home dashboard with Docker integration
|
|
|
|
---
|
|
|
|
## Storage & Backup
|
|
|
|
### TimeMachine
|
|
|
|
| Network | IP |
|
|
|---------|-----|
|
|
| br0 macvlan | 192.168.10.12 |
|
|
|
|
**Purpose:** macOS Time Machine backup target
|
|
|
|
### UrBackup
|
|
|
|
| Network | URL |
|
|
|---------|-----|
|
|
| host | https://urbackup.xtrm-lab.org |
|
|
|
|
**Purpose:** File and image backup for PCs
|
|
|
|
### RustFS
|
|
|
|
| Network |
|
|
|---------|
|
|
| bridge |
|
|
|
|
**Purpose:** Rust-based filesystem utilities
|
|
|
|
---
|
|
|
|
## Remote Access
|
|
|
|
### Kasm Workspaces (Browser Isolation)
|
|
|
|
| Component | IP | URL |
|
|
|-----------|-----|-----|
|
|
| kasm (DinD host) | 172.18.0.66 | https://kasm.xtrm-lab.org |
|
|
| kasm_proxy | 172.19.0.8 (internal) | - |
|
|
| kasm_api | 172.19.0.7 (internal) | - |
|
|
| kasm_manager | 172.19.0.6 (internal) | - |
|
|
| kasm_agent | 172.19.0.2 (internal) | - |
|
|
| kasm_db | 172.19.0.3 (internal) | - |
|
|
| kasm_guac | 172.19.0.9 (internal) | - |
|
|
|
|
**Version:** 1.18.1
|
|
**Architecture:** Docker-in-Docker (runs its own Docker daemon with internal containers)
|
|
**Network:** dockerproxy (outer), kasm_default_network 172.19.0.0/16 (inner)
|
|
**Ports:** 3000 (web UI), 6333 (proxy/sessions)
|
|
**Data:** `/mnt/user/appdata/kasm/`
|
|
|
|
**Traefik Integration:**
|
|
- Uses `kasm-headers` middleware (no `frameDeny` — Kasm requires iframes)
|
|
- Service backend: `https://172.18.0.66:6333` with `insecure-skip-verify`
|
|
- Zone config: `proxy_port=443`, `proxy_hostname=$request_host$` (routes sessions through Traefik)
|
|
|
|
### RustDesk
|
|
|
|
| Component | Ports |
|
|
|-----------|-------|
|
|
| rustdesk-hbbs | 21115-21116 (TCP), 21116 (UDP) |
|
|
| rustdesk-hbbr | 21117-21119 |
|
|
|
|
**Purpose:** Self-hosted remote desktop
|
|
|
|
### Tailscale
|
|
|
|
| Host | IP |
|
|
|------|-----|
|
|
| HAP1 | 172.17.0.3 |
|
|
|
|
**Purpose:** Mesh VPN for remote access
|
|
|
|
### Open WebUI
|
|
|
|
| Component | Port |
|
|
|-----------|------|
|
|
| open-webui | 3080 |
|
|
|
|
**Purpose:** Web UI for Ollama (ChatGPT-like interface)
|
|
|
|
---
|
|
|
|
## Smart Home
|
|
|
|
### Home Assistant
|
|
|
|
| Network | URL |
|
|
|---------|-----|
|
|
| host | https://ha.xtrm-lab.org |
|
|
|
|
**Purpose:** Home automation hub
|
|
**Trusted Proxies:** 172.18.0.0/16, 192.168.10.0/24
|
|
|
|
### Home Assistant Time Machine
|
|
|
|
| Component | Port |
|
|
|-----------|------|
|
|
| Home-Assistant-Time-Machine | 54000 |
|
|
|
|
**Purpose:** HA backup/snapshot management
|
|
|
|
### Tuya Gateway
|
|
|
|
| Network |
|
|
|---------|
|
|
| host |
|
|
|
|
**Purpose:** Local Tuya device integration
|
|
|
|
---
|
|
|
|
## Notifications
|
|
|
|
### ntfy
|
|
|
|
| Component | Port | Purpose |
|
|
|-----------|------|---------|
|
|
| ntfy | 8380 | Push notification server |
|
|
|
|
**Purpose:** Self-hosted push notifications (UnifiedPush compatible)
|
|
|
|
---
|
|
|
|
## Sync & Knowledge
|
|
|
|
### Obsidian LiveSync
|
|
|
|
| Component | Port |
|
|
|-----------|------|
|
|
| obsidian-livesync | 5984 |
|
|
|
|
**Purpose:** CouchDB-based real-time sync for Obsidian vaults
|
|
|
|
### Supabase (OpenBrain)
|
|
|
|
| Component | Purpose |
|
|
|-----------|---------|
|
|
| supabase-db | PostgreSQL database |
|
|
| supabase-auth | Authentication |
|
|
| supabase-rest | PostgREST API |
|
|
| supabase-storage | File storage |
|
|
| supabase-studio | Web dashboard |
|
|
| supabase-meta | Metadata service |
|
|
| supabase-analytics | Analytics/logging |
|
|
| supabase-imgproxy | Image processing |
|
|
| supabase-edge-functions | Edge functions runtime |
|
|
| supabase-pooler | Connection pooling |
|
|
| supabase-vector | Vector/embeddings |
|
|
| supabase-kong | API gateway (stopped) |
|
|
| realtime-dev.supabase-realtime | Realtime subscriptions |
|
|
|
|
**Purpose:** Self-hosted Supabase stack with PGVector for AI persistent memory (OpenBrain)
|
|
|
|
---
|
|
|
|
## Database Tools
|
|
|
|
### pgAdmin 4
|
|
|
|
| Component | Port |
|
|
|-----------|------|
|
|
| pgAdmin4 | 5050 |
|
|
|
|
**Purpose:** PostgreSQL web administration UI
|
|
|
|
---
|
|
|
|
## Development
|
|
|
|
### OpenVSCode Server (Web IDE)
|
|
|
|
| Network | Port | URL |
|
|
|---------|------|-----|
|
|
| host | 3100 | https://code.xtrm-lab.org |
|
|
|
|
**Purpose:** Web-based VS Code IDE with full host access
|
|
**Auth:** Authentik forward auth (SSO)
|
|
**Binary:** `/mnt/user/appdata/openvscode/current/` (host-native, not a container)
|
|
**Config:** `/mnt/user/appdata/openvscode/config/`
|
|
**Workspace:** `/mnt/user/projects/` (12 personal repos + 18 AMPECO projects)
|
|
**See:** `12-DEVELOPMENT-ENVIRONMENT.md`
|
|
|
|
### Claude Code
|
|
|
|
| Network | Version |
|
|
|---------|---------|
|
|
| host | 2.1.71 |
|
|
|
|
**Purpose:** AI coding assistant CLI
|
|
**Binary:** `/mnt/user/appdata/claude-code/.npm-global/bin/claude`
|
|
**Config:** `/mnt/user/appdata/claude-code/.claude/`
|
|
|
|
### Cooperator CLI
|
|
|
|
| Network | Version |
|
|
|---------|---------|
|
|
| host | 3.36.1 |
|
|
|
|
**Purpose:** AI-driven development workflow automation (AMPECO)
|
|
**Binary:** `/usr/local/lib/node_modules/@ampeco/cooperator/`
|
|
|
|
---
|
|
|
|
## Container Management
|
|
|
|
### Dockge
|
|
|
|
| Network | Port |
|
|
|---------|------|
|
|
| bridge | 5001 |
|
|
|
|
**Purpose:** Docker Compose stack management UI
|
|
**Access:** http://192.168.10.20:5001
|
|
**Data:** `/mnt/user/appdata/dockge/data`
|
|
**Stacks:** `/mnt/user/appdata/dockge/stacks`
|
|
|
|
### Dockhand
|
|
|
|
| Network |
|
|
|---------|
|
|
| dockerproxy |
|
|
|
|
**Purpose:** Docker container health monitoring
|
|
|
|
### Docker Socket Proxy
|
|
|
|
| Component | IP |
|
|
|-----------|-----|
|
|
| dockersocket | 172.18.0.2 |
|
|
|
|
**Purpose:** Secure Docker socket proxy for Traefik and other services
|
|
|
|
---
|
|
|
|
## Agents
|
|
|
|
### xtrm-agent
|
|
|
|
| Component | Port |
|
|
|-----------|------|
|
|
| xtrm-agent | 8088 |
|
|
|
|
**Purpose:** Claude Code agent for server management
|
|
|
|
### SeekAndWatch
|
|
|
|
| Component |
|
|
|-----------|
|
|
| SeekAndWatch |
|
|
|
|
**Purpose:** Media monitoring/automation
|
|
|
|
---
|
|
|
|
## AI / LLM
|
|
|
|
### Ollama (Local LLM Inference)
|
|
|
|
| Network | Port |
|
|
|---------|------|
|
|
| bridge | 11434 |
|
|
|
|
**Purpose:** Local LLM inference, GPU-accelerated on the integrated AMD Radeon 780M (gfx1103) via ROCm 7.2.
|
|
**Image:** `ollama/ollama:rocm` (Dockge stack — replaced old `dockerman` template `my-ollama.xml`)
|
|
**API:** http://192.168.10.20:11434
|
|
**Data:** `/mnt/user/appdata/ollama`
|
|
**Stack:** `/mnt/user/appdata/dockge/stacks/ollama/compose.yaml`
|
|
|
|
**iGPU enablement** (gfx1103 not on AMD's official ROCm allowlist):
|
|
|
|
| Setting | Value |
|
|
|---------|-------|
|
|
| `HSA_OVERRIDE_GFX_VERSION` | 11.0.0 (report 780M as gfx1100) |
|
|
| `OLLAMA_IGPU_ENABLE` | 1 (Ollama 0.30+ drops iGPUs otherwise) |
|
|
| devices | `/dev/kfd`, `/dev/dri` |
|
|
| group_add | `18` (video) |
|
|
|
|
**Verified:** Ornith 1.0 9B GGUF runs 100% on GPU (33/33 layers), ~11 tok/s. iGPU is RAM-bandwidth bound (shared GTT, ~23 GiB addressable). 9B fits; 35B RAM-tight (no swap); 397B not feasible.
|
|
|
|
**⚠️ Limitation:** large prompts (~10k+ tokens) crash the iGPU (`ROCm unspecified launch failure` — gfx1103 rocBLAS). Tried flash-attn off, gfx1100/gfx1102, `num_batch=128` — all crash, so `OLLAMA_FLASH_ATTENTION`/`OLLAMA_KV_CACHE_TYPE=q8_0` were removed. Good for direct/interactive chat only, **not** an agent backend with big system prompts (tried as Hermes' model with a ~15.5k-token prompt — crashed every call, reverted to cloud).
|
|
|
|
---
|
|
|
|
## Stopped/Disabled Services
|
|
|
|
| Service | Reason | Status |
|
|
|---------|--------|--------|
|
|
| charge-* (12 containers) | Dev/test stack, stopped 6 weeks ago | Exited |
|
|
| minecraft | Not started | Created |
|
|
| supabase-kong | API gateway, stopped 2 days ago | Exited |
|
|
| unmarr | Stopped 5 days ago | Exited |
|
|
| llama-baseline-test | LLM benchmark, completed | Exited |
|
|
| llama-spec-test | LLM benchmark, completed | Exited |
|
|
| NetBox + Diode (8 containers) | Removed from active use | Removed |
|
|
| Portainer | Replaced by Dockge | Removed |
|
|
| Pi-hole | Replaced by AdGuard Home | Removed |
|
|
| Slurp'it | Replaced by Diode | Removed |
|
|
| binhex-plexpass | Duplicate of Plex | Removed |
|
|
| HomeAssistant_inabox | Duplicate of Home-Assistant-Container | Removed |
|
|
| nextcloud-aio-mastercontainer | Replaced by Nextcloud container | Removed |
|