Phase 2 documentation implementation: - Created HARDWARE.md: Complete hardware inventory (servers, GPUs, storage, network cards) - Created SERVICES.md: Service inventory with URLs, credentials, health checks (25+ services) - Created MONITORING.md: Health monitoring recommendations, alert setup, implementation plan - Created MAINTENANCE.md: Regular procedures, update schedules, testing checklists - Updated README.md: Added all Phase 2 documentation links - Updated CLAUDE.md: Cleaned up to quick reference only (1340→377 lines) All detailed content now in specialized documentation files with cross-references. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
14 KiB
Services Inventory
Complete inventory of all services running across the homelab infrastructure.
Overview
| Category | Services | Location | Access |
|---|---|---|---|
| Infrastructure | Proxmox, TrueNAS, Pi-hole, Traefik | VMs/CTs | Web UI + SSH |
| Media | Plex, *arr apps, downloaders | Saltbox VM | Web UI |
| Development | Gitea, Docker services | VMs | Web UI |
| Home Automation | Home Assistant, Happy Coder | VMs | Web UI + API |
| Monitoring | UPS (NUT), Syncthing, Pulse | Various | API |
Total Services: 25+ running services
Service URLs Quick Reference
| Service | URL | Authentication | Purpose |
|---|---|---|---|
| Proxmox | https://pve.htsn.io:8006 | Username + 2FA | VM management |
| TrueNAS | https://truenas.htsn.io | Username/password | NAS management |
| Plex | https://plex.htsn.io | Plex account | Media streaming |
| Home Assistant | https://homeassistant.htsn.io | Username/password | Home automation |
| Gitea | https://git.htsn.io | Username/password | Git repositories |
| Excalidraw | https://excalidraw.htsn.io | None (public) | Whiteboard |
| Happy Coder | https://happy.htsn.io | QR code auth | Remote Claude sessions |
| Pi-hole | http://10.10.10.10/admin | Password | DNS/ad blocking |
| Traefik | http://10.10.10.250:8080 | None (internal) | Reverse proxy dashboard |
| Pulse | https://pulse.htsn.io | Unknown | Monitoring dashboard |
| Copyparty | https://copyparty.htsn.io | Unknown | File sharing |
| FindShyt | https://findshyt.htsn.io | Unknown | Custom app |
Infrastructure Services
Proxmox VE (PVE & PVE2)
Purpose: Virtualization platform, VM/CT host
Location: Physical servers (10.10.10.120, 10.10.10.102)
Access: https://pve.htsn.io:8006, SSH
Version: Unknown (check: pveversion)
Key Features:
- Web-based management
- VM and LXC container support
- ZFS storage pools
- Clustering (2-node)
- API access
Common Operations:
# List VMs
ssh pve 'qm list'
# Create VM
ssh pve 'qm create VMID --name myvm ...'
# Backup VM
ssh pve 'vzdump VMID --dumpdir /var/lib/vz/dump'
See: VMS.md
TrueNAS SCALE (VM 100)
Purpose: Central file storage, NFS/SMB shares Location: VM on PVE (10.10.10.200) Access: https://truenas.htsn.io, SSH Version: TrueNAS SCALE (check version in UI)
Key Features:
- ZFS storage management
- NFS exports
- SMB shares
- Syncthing hub
- Snapshot management
Storage Pools:
vault: Main data pool on EMC enclosure
Shares (needs documentation):
- NFS exports for Saltbox media
- SMB shares for Windows access
- Syncthing sync folders
See: STORAGE.md
Pi-hole (CT 200)
Purpose: Network-wide DNS server and ad blocker Location: LXC on PVE (10.10.10.10) Access: http://10.10.10.10/admin Version: Unknown
Configuration:
- Upstream DNS: Cloudflare (1.1.1.1)
- Blocklists: Unknown count
- Queries: All network DNS traffic
- DHCP: Disabled (router handles DHCP)
Stats (example):
ssh pihole 'pihole -c -e' # Stats
ssh pihole 'pihole status' # Status
Common Tasks:
- Update blocklists:
ssh pihole 'pihole -g' - Whitelist domain:
ssh pihole 'pihole -w example.com' - View logs:
ssh pihole 'pihole -t'
Traefik (CT 202)
Purpose: Reverse proxy for all public-facing services
Location: LXC on PVE (10.10.10.250)
Access: http://10.10.10.250:8080/dashboard/
Version: Unknown (check: traefik version)
Managed Services:
- All *.htsn.io domains (except Saltbox services)
- SSL/TLS certificates via Let's Encrypt
- HTTP → HTTPS redirects
See: TRAEFIK.md for complete configuration
Media Services (Saltbox VM)
All media services run in Docker on the Saltbox VM (10.10.10.100).
Plex Media Server
Purpose: Media streaming platform URL: https://plex.htsn.io Access: Plex account
Features:
- Hardware transcoding (TITAN RTX)
- Libraries: Movies, TV, Music
- Remote access enabled
- Managed by Saltbox
Media Storage:
- Source: TrueNAS NFS mounts
- Location:
/mnt/unionfs/
Common Tasks:
# View Plex status
ssh saltbox 'docker logs -f plex'
# Restart Plex
ssh saltbox 'docker restart plex'
# Scan library
# (via Plex UI: Settings → Library → Scan)
*arr Apps (Media Automation)
Running on Saltbox VM, managed via Traefik-Saltbox.
| Service | Purpose | URL | Notes |
|---|---|---|---|
| Sonarr | TV show automation | sonarr.htsn.io | Monitors, downloads, organizes TV |
| Radarr | Movie automation | radarr.htsn.io | Monitors, downloads, organizes movies |
| Lidarr | Music automation | lidarr.htsn.io | Monitors, downloads, organizes music |
| Overseerr | Request management | overseerr.htsn.io | User requests for media |
| Bazarr | Subtitle management | bazarr.htsn.io | Downloads subtitles |
Downloaders:
| Service | Purpose | URL |
|---|---|---|
| SABnzbd | Usenet downloader | sabnzbd.htsn.io |
| NZBGet | Usenet downloader | nzbget.htsn.io |
| qBittorrent | Torrent client | qbittorrent.htsn.io |
Indexers:
| Service | Purpose | URL |
|---|---|---|
| Jackett | Torrent indexer proxy | jackett.htsn.io |
| NZBHydra2 | Usenet indexer proxy | nzbhydra2.htsn.io |
Supporting Media Services
| Service | Purpose | URL |
|---|---|---|
| Tautulli | Plex statistics | tautulli.htsn.io |
| Organizr | Service dashboard | organizr.htsn.io |
| Authelia | SSO authentication | auth.htsn.io |
Development Services
Gitea (VM 300)
Purpose: Self-hosted Git server Location: VM on PVE2 (10.10.10.220) URL: https://git.htsn.io Access: Username/password
Repositories:
- homelab-docs (this documentation)
- Personal projects
- Private repos
Common Tasks:
# SSH to Gitea VM
ssh gitea-vm
# View logs
ssh gitea-vm 'journalctl -u gitea -f'
# Backup
ssh gitea-vm 'gitea dump -c /etc/gitea/app.ini'
See: Gitea documentation for API usage
Docker Services (docker-host VM)
Running on VM 206 (10.10.10.206).
| Service | URL | Purpose | Port |
|---|---|---|---|
| Excalidraw | https://excalidraw.htsn.io | Whiteboard/diagramming | 8080 |
| Happy Server | https://happy.htsn.io | Happy Coder relay | 3002 |
| Pulse | https://pulse.htsn.io | Monitoring dashboard | 7655 |
Docker Compose files: /opt/{excalidraw,happy-server,pulse}/docker-compose.yml
Managing services:
ssh docker-host 'docker ps'
ssh docker-host 'cd /opt/excalidraw && sudo docker-compose logs -f'
ssh docker-host 'cd /opt/excalidraw && sudo docker-compose restart'
Home Automation
Home Assistant (VM 110)
Purpose: Smart home automation platform Location: VM on PVE (10.10.10.110) URL: https://homeassistant.htsn.io Access: Username/password
Integrations:
- UPS monitoring (NUT sensors)
- Unknown other integrations (needs documentation)
Sensors:
sensor.cyberpower_battery_chargesensor.cyberpower_loadsensor.cyberpower_battery_runtimesensor.cyberpower_status
See: HOMEASSISTANT.md
Happy Coder Relay (docker-host)
Purpose: Self-hosted relay server for Happy Coder mobile app Location: docker-host (10.10.10.206) URL: https://happy.htsn.io Access: QR code authentication
Stack:
- Happy Server (Node.js)
- PostgreSQL (user/session data)
- Redis (real-time events)
- MinIO (file/image storage)
Clients:
- Mac Mini (Happy daemon)
- Mobile app (iOS/Android)
Credentials:
- Master Secret:
3ccbfd03a028d3c278da7d2cf36d99b94cd4b1fecabc49ab006e8e89bc7707ac - PostgreSQL:
happy/happypass - MinIO:
happyadmin/happyadmin123
File Sync & Storage
Syncthing
Purpose: File synchronization across all devices Devices:
- Mac Mini (10.10.10.125) - Hub
- MacBook - Mobile sync
- TrueNAS (10.10.10.200) - Central storage
- Windows PC (10.10.10.150) - Windows sync
- Phone (10.10.10.54) - Mobile sync
API Keys:
- Mac Mini:
oSQSrPnMnrEXuHqjWrRdrvq3TSXesAT5 - MacBook:
qYkNdVLwy9qZZZ6MqnJr7tHX7KKdxGMJ - Phone:
Xxz3jDT4akUJe6psfwZsbZwG2LhfZuDM
Synced Folders:
- documents (~11 GB)
- downloads (~38 GB)
- pictures
- notes
- desktop (~7.2 GB)
- config
- movies
See: SYNCTHING.md
Copyparty (VM 201)
Purpose: Simple HTTP file sharing Location: VM on PVE (10.10.10.201) URL: https://copyparty.htsn.io Access: Unknown
Features:
- Web-based file upload/download
- Lightweight
Trading & AI Services
AI Trading Platform (trading-vm)
Purpose: Algorithmic trading with AI models Location: VM 301 on PVE2 (10.10.10.221) URL: https://aitrade.htsn.io (if accessible) GPU: RTX A6000 (48GB VRAM)
Components:
- Trading algorithms
- AI models for market prediction
- Real-time data feeds
- Backtesting infrastructure
Access: SSH only (no web UI documented)
LM Dev (lmdev1)
Purpose: AI/LLM development environment Location: VM 111 on PVE (10.10.10.111) URL: https://lmdev.htsn.io (if accessible) GPU: TITAN RTX (shared with Saltbox)
Installed:
- CUDA toolkit
- Python 3.11+
- PyTorch, TensorFlow
- Hugging Face transformers
Monitoring & Utilities
UPS Monitoring (NUT)
Purpose: Monitor UPS status and trigger shutdowns
Location: PVE (master), PVE2 (slave)
Access: Command-line (upsc)
Key Commands:
ssh pve 'upsc cyberpower@localhost'
ssh pve 'upsc cyberpower@localhost ups.load'
ssh pve 'upsc cyberpower@localhost battery.runtime'
Home Assistant Integration: UPS sensors exposed
See: UPS.md
Pulse Monitoring
Purpose: Unknown monitoring dashboard Location: docker-host (10.10.10.206:7655) URL: https://pulse.htsn.io Access: Unknown
Needs documentation:
- What does it monitor?
- How to configure?
- Authentication?
Tailscale VPN
Purpose: Secure remote access to homelab Subnet Routers:
- PVE (100.113.177.80) - Primary
- UCG-Fiber (100.94.246.32) - Failover
Devices on Tailscale:
- Mac Mini: 100.108.89.58
- PVE: 100.113.177.80
- TrueNAS: 100.100.94.71
- Pi-hole: 100.112.59.128
See: NETWORK.md
Custom Applications
FindShyt (CT 205)
Purpose: Unknown custom application Location: LXC on PVE (10.10.10.8) URL: https://findshyt.htsn.io Access: Unknown
Needs documentation:
- What is this app?
- How to use it?
- Tech stack?
Service Dependencies
Critical Dependencies
TrueNAS
├── Plex (media files via NFS)
├── *arr apps (downloads via NFS)
├── Syncthing (central storage hub)
└── Backups (if configured)
Traefik (CT 202)
├── All *.htsn.io services
└── SSL certificate management
Pi-hole
└── DNS for entire network
Router
└── Gateway for all services
Startup Order
See VMS.md for VM boot order configuration:
- TrueNAS (storage first)
- Saltbox (depends on TrueNAS NFS)
- Other VMs
- Containers
Service Port Reference
Well-Known Ports
| Port | Service | Protocol | Purpose |
|---|---|---|---|
| 22 | SSH | TCP | Remote access |
| 53 | Pi-hole | UDP | DNS queries |
| 80 | Traefik | TCP | HTTP (redirects to 443) |
| 443 | Traefik | TCP | HTTPS |
| 3000 | Gitea | TCP | Git HTTP/S |
| 8006 | Proxmox | TCP | Web UI |
| 8096 | Plex | TCP | Plex Media Server |
| 8384 | Syncthing | TCP | Web UI |
| 22000 | Syncthing | TCP | Sync protocol |
Internal Ports
| Port | Service | Purpose |
|---|---|---|
| 3002 | Happy Server | Relay backend |
| 5432 | PostgreSQL | Happy Server DB |
| 6379 | Redis | Happy Server cache |
| 7655 | Pulse | Monitoring |
| 8080 | Excalidraw | Whiteboard |
| 8080 | Traefik | Dashboard |
| 9000 | MinIO | Object storage |
Service Health Checks
Quick Health Check Script
#!/bin/bash
# Check all critical services
echo "=== Infrastructure ==="
curl -Is https://pve.htsn.io:8006 | head -1
curl -Is https://truenas.htsn.io | head -1
curl -I http://10.10.10.10/admin 2>/dev/null | head -1
echo ""
echo "=== Media Services ==="
curl -Is https://plex.htsn.io | head -1
curl -Is https://sonarr.htsn.io | head -1
curl -Is https://radarr.htsn.io | head -1
echo ""
echo "=== Development ==="
curl -Is https://git.htsn.io | head -1
curl -Is https://excalidraw.htsn.io | head -1
echo ""
echo "=== Home Automation ==="
curl -Is https://homeassistant.htsn.io | head -1
curl -Is https://happy.htsn.io/health | head -1
Service-Specific Checks
# Proxmox VMs
ssh pve 'qm list | grep running'
# Docker services
ssh docker-host 'docker ps --format "{{.Names}}: {{.Status}}"'
# Syncthing
curl -H "X-API-Key: oSQSrPnMnrEXuHqjWrRdrvq3TSXesAT5" \
"http://127.0.0.1:8384/rest/system/status"
# UPS
ssh pve 'upsc cyberpower@localhost ups.status'
Service Credentials
Location: See individual service documentation
| Service | Credentials Location | Notes |
|---|---|---|
| Proxmox | Proxmox UI | Username + 2FA |
| TrueNAS | TrueNAS UI | Root password |
| Plex | Plex account | Managed externally |
| Gitea | Gitea DB | Self-managed |
| Pi-hole | /etc/pihole/setupVars.conf |
Admin password |
| Happy Server | CLAUDE.md | Master secret, DB passwords |
⚠️ Security Note: Never commit credentials to Git. Use proper secrets management.
Related Documentation
- VMS.md - VM/service locations
- TRAEFIK.md - Reverse proxy config
- IP-ASSIGNMENTS.md - Service IP addresses
- NETWORK.md - Network configuration
- MONITORING.md - Monitoring setup (coming soon)
Last Updated: 2025-12-22 Status: ⚠️ Incomplete - many services need documentation (passwords, features, usage)