77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# Homelab Butler
|
|
|
|
Unified API proxy for the Pfannkuchen homelab. One token, one URL, all services.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Set your butler token
|
|
echo "BUTLER_TOKEN=$(openssl rand -hex 24)" > .env
|
|
|
|
# Deploy
|
|
docker compose up -d --build
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
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.
|