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.
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-composefiles in/opt/docker/on CT 100 - Portainer itself is started via a standalone
docker runcommand, not compose
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
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
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
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:
- Daily 4am cron triggers
MissingAlbumSearchโ Lidarr actively searches all monitored missing albums - Lidarr queries Headphones VIP indexer (primary โ proper
t=musicsupport) and NZBHydra2 (broken for music โ altHUB doesn’t supportt=music) - Matched releases sent to NZBGet on seedbox (tunnel at 192.168.8.221:16789)
- NZBGet downloads to
completed/Music/on seedbox at ~70 MB/s seedbox-sync.sh(every 15 min) pulls to/nvmepool/ingest/Music/on Proxmox- Lidarr import picks up files and moves to
/mnt/music(requires โฅ80% MusicBrainz match) - 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
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
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
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.serviceis running:systemctl status seedbox-socks.serviceon CT 100
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)
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
occcommands via:docker exec -u www-data nextcloud php occ <command>
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 newton 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
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
hugoto 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
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.
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.serviceshows inactive until you open the URL, which is normal.cockpit.socketis 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
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.comwhen 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
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-aicontainer 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