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)
- 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 NetBird mesh if a webhook endpoint is needed from off-LAN; for true public webhooks, route via the VPS Caddy at
edge01
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 sync-seedbox.sh(every 2 min) pulls to/BIGGIE/Seedbox/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 on LAN or via NetBird mesh for remote access (use audiobookshelf.edmd.me)
- 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) - Remote access via NetBird mesh using shelfmark.edmd.me โ no port forwarding required
- 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)
Retired April 2026. Nextcloud on CT100 was decommissioned along with the MariaDB backend container. File-sync is now handled by Syncthing (peer-to-peer, no central server); file-sharing by the SMB share at files.edmd.me (Samba on the VPS, NetBird-only).
The Docker volumes are gone. If you find a reference somewhere to http://192.168.8.100:8280, it’s stale โ flag and remove.
Retired April 19, 2026. The Pangolin/Gerbil/Traefik stack on the SSDNodes VPS was decommissioned and replaced by NetBird mesh (/homelab/netbird/). All Newt services on hpve and fpve are gone, the VPS dashboard at pangolin.troglodyteconsulting.com is offline, and the VPS itself has been repurposed for the SMB share at files.edmd.me.
See Pangolin tombstone and the NetBird docs for the current remote-access pattern.
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.10:8123 |
| Remote URL | https://ha.troglodyteconsulting.com |
| Host | Farm Docker CT 100 (192.168.0.6) |
| 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.6:9443), Uptime Kuma (192.168.0.6:3001), and Gotify (192.168.0.6: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