docs: comprehensive update — Portainer migration, all hosts, API token
This commit is contained in:
@@ -1,13 +1,113 @@
|
||||
# Homelab Configs
|
||||
|
||||
Docker Compose files and configuration for homelab infrastructure.
|
||||
All stacks are managed via **Portainer** at http://192.168.88.27:9000 (or https://portainer.jgitta.com).
|
||||
|
||||
## Structure
|
||||
- `siklos/` — Docker services on VM112 (192.168.88.27)
|
||||
## Portainer Access
|
||||
|
||||
| Item | Value |
|
||||
|---|---|
|
||||
| URL | http://192.168.88.27:9000 |
|
||||
| External URL | https://portainer.jgitta.com |
|
||||
| API Token | `ptr_1cThi+cjOKeICslJbSzCtUhORF06xUOykbAWPUoTyMU=` |
|
||||
|
||||
> **Note:** The API token above is for automation/scripting. Keep it private.
|
||||
> To call the Portainer API: `curl -H "X-API-Key: <token>" http://192.168.88.27:9000/api/stacks`
|
||||
|
||||
## Hosts
|
||||
| Host | IP | Role |
|
||||
|---|---|---|
|
||||
| siklos | 192.168.88.27 | Main Docker server |
|
||||
| jellyfin | 192.168.88.10 | Media server |
|
||||
| thinkstation | 192.168.88.41 | Workstation / Ollama |
|
||||
|
||||
| Host | IP | Role | Portainer Endpoint ID | Docker Version |
|
||||
|---|---|---|---|---|
|
||||
| siklos | 192.168.88.27 | Main Docker server (VM 112 on Proxmox) | 3 (local) | 26.1.5 |
|
||||
| jellyfin | 192.168.88.10 | Media server | 4 (agent) | 26.1.5 |
|
||||
| thinkstation-p710 | 192.168.88.41 | Workstation / Ollama / AI | 5 (agent) | 29.4.2 |
|
||||
|
||||
## Stack Inventory
|
||||
|
||||
### siklos (192.168.88.27) — 21 stacks
|
||||
|
||||
| Stack | Port(s) | Data Path | Notes |
|
||||
|---|---|---|---|
|
||||
| actual-budget | 5006 | /srv/docker/actual-budget | Budget tracking |
|
||||
| dashboard | 3010 | /srv/docker/dashboard | Custom homepage (built locally) |
|
||||
| dashy | 4080 | /srv/docker/dashy | Dashboard |
|
||||
| gitea | 3002, 2222 | /srv/docker/gitea/data | Git server — this repo |
|
||||
| glances | 61208 | — | System monitoring |
|
||||
| goldengames | 3011 | /srv/docker/goldengames | (built locally) |
|
||||
| grav | 8080 | /srv/docker/grav | CMS |
|
||||
| guacamole | 8085 | /srv/docker/guacamole | Remote desktop gateway |
|
||||
| homarr | 7575 | /srv/docker/homarr | Dashboard |
|
||||
| karakeep | 3000 | /srv/docker/karakeep | Bookmarks / read-later |
|
||||
| kopia | 51515 | /srv/docker/kopia | Backup tool (backs up to TrueNAS) |
|
||||
| linkwarden | 3010 | /srv/docker/linkwarden | Link manager |
|
||||
| litellm | 4000 | /srv/docker/litellm | LLM API gateway |
|
||||
| meshcentral | 4430, 4080 | /srv/docker/meshcentral | Remote management |
|
||||
| monitoring | 9090, 3020, 8090, 9108-9109 | /srv/docker/monitoring | Prometheus + Grafana + cAdvisor |
|
||||
| onlyoffice | 8086 | /srv/docker/onlyoffice | Office document server |
|
||||
| pihole | 53, 80, 443 | /srv/docker/pihole | DNS ad blocker |
|
||||
| portainer | 9000, 9443 | /srv/docker/portainer | Container management UI |
|
||||
| uptime-kuma | 3001 | /srv/docker/uptime-kuma | Uptime monitoring |
|
||||
| watchtower | — | — | Auto-updates containers |
|
||||
| wordpress | 8081 | /srv/docker/wordpress | WordPress site |
|
||||
|
||||
### jellyfin (192.168.88.10) — 3 stacks
|
||||
|
||||
| Stack | Port(s) | Data Path | Notes |
|
||||
|---|---|---|---|
|
||||
| arr-stack | various | /srv/docker | Radarr, Sonarr, Prowlarr, Flaresolverr, Watchtower |
|
||||
| node-exporter | 9100 (host) | — | Prometheus metrics exporter (host network) |
|
||||
| portainer-agent | 9001 | — | Portainer agent (fully managed) |
|
||||
|
||||
### thinkstation-p710 (192.168.88.41) — 4 stacks
|
||||
|
||||
| Stack | Port(s) | Data Path | Notes |
|
||||
|---|---|---|---|
|
||||
| frigate | 5000, 8554, 8555 | /srv/docker/frigate | NVR / camera AI |
|
||||
| open-webui | 3000 | /srv/docker/open-webui | Ollama web UI |
|
||||
| portainer-agent | 9001 | — | Portainer agent (shows "limited" — expected, see notes) |
|
||||
| stirling-pdf | 8090 | /srv/docker/stirling-pdf | PDF tools |
|
||||
|
||||
## Data Directory Convention
|
||||
|
||||
All stack data and config is stored under `/srv/docker/<stack-name>/` on each host.
|
||||
Old compose files were renamed to `.bak` after migration to Portainer.
|
||||
|
||||
### siklos
|
||||
- Config/data: `/srv/docker/<stack>/`
|
||||
- Old compose files renamed to `.bak` in same directory
|
||||
|
||||
### thinkstation-p710
|
||||
- Config/data: `/srv/docker/<stack>/`
|
||||
- Portainer agent data volume: `portainer_agent_data` (Docker named volume — persists TLS certs)
|
||||
|
||||
### jellyfin
|
||||
- Media data: `/srv/docker/` (bind-mounted into arr containers)
|
||||
|
||||
## Portainer Agent Notes
|
||||
|
||||
Portainer agents run on jellyfin and thinkstation, allowing the central Portainer instance on
|
||||
siklos to manage all three Docker hosts from one UI.
|
||||
|
||||
- **jellyfin agent**: Fully managed by Portainer (Stack ID 36)
|
||||
- **thinkstation agent**: Shows as "limited" in Portainer UI — this is expected and harmless.
|
||||
The portainer-agent cannot redeploy itself through its own proxy (catch-22). The agent
|
||||
is stable and the endpoint is fully functional. Agent data is persisted in the
|
||||
`portainer_agent_data` Docker named volume so TLS certs survive restarts.
|
||||
Compose file: `/srv/docker/portainer-agent/docker-compose.yml`
|
||||
|
||||
## Kopia Backup Notes (2026-05-06)
|
||||
|
||||
Kopia backs up Nextcloud data (VM 103) and other sources to TrueNAS NFS.
|
||||
- Cache limit set to 4 GB content + 512 MB metadata (`kopia cache set`)
|
||||
- `/tmp` and `/app/logs` are now bind-mounted out of the container (prevents overlay2 growth)
|
||||
- If disk fills up again, check `/srv/docker/kopia/tmp/` for leftover verify/restore artifacts
|
||||
- Ignore policy added for `/data/.claude` in the Nextcloud data source
|
||||
|
||||
## Proxmox / Infrastructure Notes
|
||||
|
||||
| Item | Details |
|
||||
|---|---|
|
||||
| Proxmox host | 192.168.88.1 |
|
||||
| TrueNAS | 192.168.88.5 |
|
||||
| Nextcloud VM | VM 103 (192.168.88.x) |
|
||||
| Docker server VM | VM 112 = siklos |
|
||||
|
||||
Reference in New Issue
Block a user