Homepage docker.yaml Configuration
Reference for Docker integration.
Structure
yaml
--- server-name: socket: /var/run/docker.sock
Local Socket
yaml
my-docker: socket: /var/run/docker.sock
docker-compose mount:
yaml
homepage:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Note: Homepage must run as root for socket access.
Remote TCP
yaml
my-remote-docker: host: 192.168.0.101 port: 2375
TLS Configuration
yaml
my-remote-docker:
host: 192.168.0.101
port: 2375
tls:
keyFile: tls/key.pem
caFile: tls/ca.pem
certFile: tls/cert.pem
HTTPS via Reverse Proxy
yaml
my-docker: host: dockerproxy port: 443 protocol: https
Docker Socket Proxy
Using docker-socket-proxy:
yaml
my-docker: host: dockerproxy port: 2375
docker-compose:
yaml
dockerproxy:
image: ghcr.io/tecnativa/docker-socket-proxy:latest
environment:
- CONTAINERS=1
- SERVICES=1
- POST=0
ports:
- 127.0.0.1:2375:2375
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
HTTP Headers
For reverse proxy with auth:
yaml
my-docker:
host: dockerproxy
port: 443
protocol: https
headers:
Authorization: Basic <base64-credentials>
Docker Swarm
yaml
my-docker: socket: /var/run/docker.sock swarm: true
Deploy on manager node:
yaml
deploy:
placement:
constraints:
- node.role == manager
Service Integration
In services.yaml:
yaml
- Emby:
server: my-docker # Matches docker.yaml key
container: emby # Container name
showStats: true
Auto-Discovery Labels
Add to container labels:
yaml
services:
emby:
labels:
- homepage.group=Media
- homepage.name=Emby
- homepage.icon=emby.png
- homepage.href=http://emby.home/
- homepage.description=Media server
- homepage.widget.type=emby
- homepage.widget.url=http://emby.home
- homepage.widget.key=your-api-key
Multiple Widgets via Labels
yaml
labels: - homepage.widgets[0].type=emby - homepage.widgets[0].url=http://emby.home - homepage.widgets[0].key=api-key - homepage.widgets[1].type=uptimekuma - homepage.widgets[1].url=http://uptimekuma.home - homepage.widgets[1].slug=emby-status
Multiple Instances
For multiple Homepage deployments:
yaml
labels: - homepage.group=Media - homepage.name=Emby - homepage.instance.internal.href=http://emby.lan/ - homepage.instance.public.href=https://emby.domain.com/
In settings.yaml:
yaml
instanceName: internal # or public
Complete Example
yaml
---
# Local Docker
local:
socket: /var/run/docker.sock
# Remote Unraid server
Unraid:
host: unraid.bun-delta.ts.net
port: 2375
# Remote with TLS
production:
host: prod.example.com
port: 2376
tls:
keyFile: tls/key.pem
caFile: tls/ca.pem
certFile: tls/cert.pem