homelab-butler/README.md
2026-04-18 10:03:05 +02:00

2.2 KiB

Homelab Butler

Unified API proxy for the Pfannkuchen homelab. One token, one URL, all services.

Quick Start

# Set your butler token
echo "BUTLER_TOKEN=$(openssl rand -hex 24)" > .env

# Deploy
docker compose up -d --build

Usage

TOKEN="your-butler-token"
BUTLER="http://10.4.1.116:8888"

# List available services
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/

# Dockhand (session auth handled automatically)
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/dockhand/api/environments

# Sonarr
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/sonarr/api/v3/series

# Radarr
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/radarr/api/v3/movie

# Seerr
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/seerr/api/v1/request

# Proxmox
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/proxmox/api2/json/nodes

# Home Assistant
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/homeassistant/api/states

# Outline Wiki
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{}' $BUTLER/outline/api/collections.list

# n8n
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/n8n/api/v1/workflows

# Grafana
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/grafana/api/dashboards/home

# Uptime Kuma
curl -s -H "Authorization: Bearer $TOKEN" $BUTLER/uptime/api/status-page/pfannkuchen

Services

Service Backend Auth handled
dockhand 10.4.1.116:3000 Session cookie (auto-login)
sonarr 10.2.1.100:8989 X-Api-Key
sonarr1080p 10.2.1.100:8990 X-Api-Key
radarr 10.2.1.100:7878 X-Api-Key
radarr1080p 10.2.1.100:7879 X-Api-Key
seerr 10.2.1.100:5055 X-Api-Key
outline 10.1.1.100:3000 Bearer token
n8n 10.4.1.113:5678 Bearer token
proxmox 10.5.85.11:8006 PVEAPIToken
homeassistant 10.10.1.20:8123 Bearer token
grafana 10.1.1.111:3000 Bearer token
uptime 159.69.245.190:3001 Bearer token

Credentials

API keys are read from /app-config/kiro/api/ (mounted read-only). The butler token is set via BUTLER_TOKEN env var.

For Dockhand: create /app-config/kiro/api/dockhand with the admin password.