Application Docs Per-application reference for every running service

Reference documentation for every application running across the homelab. Each entry covers what the app does, where it lives, how to access it, configuration notes, and any quirks worth remembering.


Portainer

What it is: Web UI for managing Docker containers, images, volumes, and networks. The control plane for everything running in CT 100.

URL https://192.168.8.100:9443
Host CT 100 (192.168.8.100)
Image portainer/portainer-ce:lts
Data /var/lib/docker/volumes/portainer_data

Notes:

  • Use Portainer to inspect container logs, restart services, and update images (pull โ†’ recreate)
  • All other Docker services are deployed via docker-compose files in /opt/docker/ on CT 100
  • Portainer itself is started via a standalone docker run command, not compose
Uptime Kuma

What it is: Self-hosted uptime monitoring dashboard. Pings services on a schedule and alerts via Gotify when something goes down.

URL http://192.168.8.100:3001
Host CT 100 (192.168.8.100)
Image louislam/uptime-kuma:1
Data /opt/docker/uptime-kuma/data

Monitored services:

  • Proxmox Web UI (192.168.8.221:8006)
  • Portainer (192.168.8.100:9443)
  • Gotify (192.168.8.100:8070)
  • N8N (192.168.8.100:5678)
  • Pangolin VPS (pangolin.troglodyteconsulting.com)
  • Mac Studio ping (192.168.8.180)

Notes:

  • Notifications route to Gotify (push to phone)
  • Add new monitors from the dashboard โ€” no config file needed
Gotify

What it is: Self-hosted push notification server. Uptime Kuma and other services send alerts here; the Gotify app on your phone receives them.

URL http://192.168.8.100:8070
Host CT 100 (192.168.8.100)
Image gotify/server:latest
Data /opt/docker/gotify/data

Notes:

  • Install the Gotify app on iPhone and point it at http://192.168.8.100:8070
  • Each sending service (Uptime Kuma, N8N, etc.) needs its own application token โ€” create in the Gotify web UI under Apps
  • Messages are stored and browsable in the web UI
N8N

What it is: Visual workflow automation engine โ€” think self-hosted Zapier/Make. Connects services together via trigger โ†’ action workflows.

URL http://192.168.8.100:5678
Host CT 100 (192.168.8.100)
Image n8nio/n8n:latest
Data /opt/docker/n8n/data

Notes:

  • Workflows are stored in the data volume โ€” back this up before updating the image
  • Can trigger on webhooks, schedules, or incoming messages
  • Integrates with Gotify for sending alerts from custom workflows
  • Accessible externally via Pangolin if a public webhook endpoint is needed
Lidarr

What it is: Automated music collection manager. Monitors wanted artists/albums, finds them on Usenet via NZBHydra2, and sends download requests to NZBGet on the seedbox.

URL http://192.168.8.100:8686
Host CT 100 (192.168.8.100)
Image lscr.io/linuxserver/lidarr:nightly
Data /opt/lidarr/data
Music /mnt/music (bind mount โ†’ /nvmepool/music)

Pipeline:

  1. Daily 4am cron triggers MissingAlbumSearch โ€” Lidarr actively searches all monitored missing albums
  2. Lidarr queries Headphones VIP indexer (primary โ€” proper t=music support) and NZBHydra2 (broken for music โ€” altHUB doesn’t support t=music)
  3. Matched releases sent to NZBGet on seedbox (tunnel at 192.168.8.221:16789)
  4. NZBGet downloads to completed/Music/ on seedbox at ~70 MB/s
  5. seedbox-sync.sh (every 15 min) pulls to /nvmepool/ingest/Music/ on Proxmox
  6. Lidarr import picks up files and moves to /mnt/music (requires โ‰ฅ80% MusicBrainz match)
  7. Navidrome rescans and adds to library

Notes:

  • Image: lscr.io/linuxserver/lidarr:nightly (nightly required for plugin support)
  • Quality profile: Lossless (FLAC) preferred
  • Release profile blocks: Greatest Hits, Best Of, Collection, Anthology, etc. (prevents import loop)
  • 114 monitored artists, ~3,819 missing albums (March 2026)
  • Plugins planned: Tidal (TrevTV), Tubifarry (TypNull)
  • See Music Pipeline page for full detail
Audiobookshelf

What it is: Self-hosted audiobook and podcast server with a polished web UI and mobile apps.

URL http://192.168.8.100:13378
Host CT 100 (192.168.8.100)
Image ghcr.io/advplyr/audiobookshelf:latest
Books /mnt/audiobookshelf (bind mount โ†’ /nvmepool/audiobookshelf)
Data /opt/docker/audiobookshelf/data

Notes:

  • iOS app available โ€” connects to the local URL or via Pangolin tunnel for remote access
  • Supports progress sync across devices
  • Podcast feeds can be added directly โ€” no separate podcast app needed
  • Metadata fetched from Audible and Google Books automatically
Bookshelf (Hardcover)

What it is: Book tracking and discovery app โ€” think self-hosted Goodreads backed by the Hardcover catalog.

URL http://192.168.8.100:8787
Host CT 100 (192.168.8.100)
Image ghcr.io/pennydreadful/bookshelf:hardcover
Data /mnt/bookshelf (bind mount โ†’ /nvmepool/bookshelf)

Notes:

  • Uses the Hardcover API for book metadata and cover art
  • Track read/reading/want-to-read status
  • Separate from Audiobookshelf โ€” this is for physical/ebook tracking, not audio playback
Shelfmark

What it is: Book and audiobook search tool that aggregates sources. Proxied outbound through the seedbox SOCKS5 tunnel for exit via Netherlands IP.

URL http://192.168.8.100:8084
Host CT 100 (192.168.8.100)
Image ghcr.io/calibrain/shelfmark:latest
Proxy SOCKS5 via 192.168.8.100:1080 โ†’ seedbox (ismene.usbx.me, NL exit)

Notes:

  • The SOCKS5 proxy is provided by seedbox-socks.service (autossh systemd service on CT 100)
  • Shelfmark is also exposed as a Pangolin private resource โ€” accessible remotely without opening a local port
  • If searches fail, check that seedbox-socks.service is running: systemctl status seedbox-socks.service on CT 100
FreshRSS

What it is: Self-hosted RSS feed aggregator with a clean web UI and API support for mobile clients.

URL http://192.168.8.100:8180
Host CT 100 (192.168.8.100)
Image freshrss/freshrss:latest
Data /opt/docker/freshrss/data

Notes:

  • Compatible with Fever and Google Reader APIs โ€” most RSS apps on iOS connect via one of these
  • OPML import/export supported for migrating feeds
  • Feeds refresh on a configurable schedule (default every hour)
Nextcloud

What it is: Self-hosted file sync, sharing, and collaboration platform. Runs with a MariaDB backend.

URL http://192.168.8.100:8280
Host CT 100 (192.168.8.100)
Images nextcloud:latest + mariadb:11 (nextcloud-db)
Data /opt/docker/nextcloud/data

Notes:

  • Database container (nextcloud-db) must be running for Nextcloud to function โ€” they share a Docker network
  • Desktop sync client points to http://192.168.8.100:8280
  • For remote access, expose via Pangolin โ€” do not open port 8280 to the public internet directly
  • Run occ commands via: docker exec -u www-data nextcloud php occ <command>
Pangolin + Gerbil + Traefik (VPS)

What it is: The remote access stack running on the SSDNodes VPS. Pangolin manages tunnels and access control, Gerbil handles WireGuard, and Traefik is the reverse proxy.

Dashboard https://pangolin.troglodyteconsulting.com
Host VPS โ€” 172.93.50.184
Images fosrl/pangolin:1.16.2, fosrl/gerbil:1.3.0, traefik:v3.6

Architecture:

  • VPS runs Pangolin + Gerbil (WireGuard) + Traefik
  • Proxmox host (192.168.8.221) runs Newt as a systemd service โ€” creates outbound WireGuard tunnel to VPS
  • All LAN devices reachable through the tunnel as Pangolin resources
  • Farm Proxmox (192.168.0.191) runs its own Newt for the 192.168.0.x subnet

Private resources (accessible without exposing local ports):

  • Proxmox Web UI
  • Mac Studio
  • Router
  • Shelfmark

Notes:

  • Newt on Proxmox is a systemd service: systemctl status newt on 192.168.8.221
  • To add a new resource: Pangolin Dashboard โ†’ Sites โ†’ Proxmox โ†’ Add Resource
  • Pangolin version: Community Edition 1.16.2 โ€” check GitHub releases for updates
Mac Studio Services (192.168.8.180)

Services running directly on macOS โ€” not containerized.

Service Port URL Notes
Hugo Hub 1313 http://192.168.8.180:1313 This site โ€” run with hugo server in bee-hub directory
Paperless-NGX 8100 http://192.168.8.180:8100 Document management โ€” Docker on Mac
Life Archive API 8900 http://192.168.8.180:8900 RAG search API for personal knowledge base
Life Archive MCP 8901 http://192.168.8.180:8901/mcp MCP server โ€” exposes Life Archive to Claude
Embed Server 1235 localhost:1235 gte-Qwen2-7B on Apple MPS โ€” local only
SyncThing 8384 http://192.168.8.180:8384 File sync between devices

Notes:

  • Hugo Hub serves the bee-hub documentation site during development; rebuild with hugo to update /public
  • Life Archive API and MCP server start via launch agents or manual scripts โ€” check ~/scripts/ for startup commands
  • Embed server (LM Studio or custom) must be running for Life Archive RAG embeddings to work
Seedbox Services (ismene.usbx.me)

Remote Usenet server accessed via SSH tunnels on Proxmox.

Service Seedbox Port Local Tunnel Notes
NZBGet 13036 http://192.168.8.221:16789 Usenet downloader
NZBHydra2 13033 http://192.168.8.221:15076 Indexer aggregator
SOCKS5 โ€” 192.168.8.100:1080 Outbound proxy for Shelfmark via CT 100
SSH 22 โ€” ssh delgross@46.232.210.50

Tunnel management: Both NZBGet and NZBHydra2 tunnels run as systemd services on Proxmox (nzbget-tunnel.service, nzbhydra2-tunnel.service). Check with systemctl status nzbget-tunnel on 192.168.8.221.

Cockpit

What it is: Lightweight web-based server management UI โ€” CPU, memory, disk, storage, logs, services, terminal, and updates all in one browser tab. Runs on both Proxmox and the VPS.

Instance URL Notes
Proxmox https://192.168.8.221:9090 System management for Proxmox host
VPS https://172.93.50.184:9090 System management for SSDNodes VPS

Notes:

  • Cockpit is socket-activated โ€” cockpit.service shows inactive until you open the URL, which is normal. cockpit.socket is always listening on port 9090.
  • Login with the system root credentials
  • Useful for checking logs (journalctl), restarting services, monitoring disk/CPU, and running a quick terminal session without SSH
  • Self-signed cert โ€” browser will warn on first visit, just accept
Home Assistant

What it is: Open-source smart home automation platform. Runs at the Farm (Brownsville, 192.168.0.x subnet).

Local URL http://192.168.0.50:8123
Remote URL https://ha.troglodyteconsulting.com
Host Farm Docker CT 100 (192.168.0.100)
Network Farm subnet 192.168.0.x โ€” separate from home 192.168.8.x

Remote access:

  • Exposed via Pangolin tunnel from Farm Proxmox (192.168.0.191)
  • Farm Proxmox runs its own Newt as a systemd service (not Docker)
  • Accessible at ha.troglodyteconsulting.com when the Farm tunnel is up

Notes:

  • Farm Proxmox (192.168.0.191) is on a separate network and not always reachable from home โ€” use Pangolin remote URL when off-site or if LAN route is unavailable
  • Farm also runs its own Portainer (192.168.0.100:9443), Uptime Kuma (192.168.0.100:3001), and Gotify (192.168.0.100:8070)
  • HA configuration lives in the Docker data volume on Farm CT 100 โ€” back up before updates
Paperless-NGX

What it is: Self-hosted document management system with OCR, auto-tagging, and full-text search. Runs on the Mac Studio via Docker.

URL http://192.168.8.180:8100
Host Mac Studio (192.168.8.180)
Compose file ~/paperless-ngx/docker/docker-compose.yml
Images paperless-ngx, postgres:16, redis:7, paperless-ai (stopped)

Start/stop:

cd ~/paperless-ngx/docker
docker compose up -d
docker compose down

Consume folder: Drop files into ~/paperless-ngx/consume/ to ingest. Paperless OCRs, tags, and indexes automatically.

Key volumes:

Host path Purpose
~/paperless-ngx/data/ SQLite DB and search index
~/paperless-ngx/media/ Stored documents
~/paperless-ngx/consume/ Drop files here to ingest
~/paperless-ngx/export/ Bulk export output

Notes:

  • paperless-ai container is stopped โ€” was used for AI auto-tagging, disabled after memory issues
  • Integrated with Life Archive โ€” Paperless documents are a source for the RAG pipeline
  • Admin login: delgross / see secure notes