51 lines
1.2 KiB
YAML
51 lines
1.2 KiB
YAML
|
|
# Heady Remote Access - Lean Docker Compose
|
||
|
|
# Separates concerns: official guacd + minimal FastAPI
|
||
|
|
|
||
|
|
services:
|
||
|
|
heady-remote-access:
|
||
|
|
build: .
|
||
|
|
container_name: heady-remote-access
|
||
|
|
restart: unless-stopped
|
||
|
|
environment:
|
||
|
|
- GUACD_HOST=heady-guacd
|
||
|
|
- GUACD_PORT=4822
|
||
|
|
- HEADPLANE_API_URL=http://headplane:3000
|
||
|
|
- JWT_SECRET=${JWT_SECRET:-your-secret-key}
|
||
|
|
- JWT_ALGORITHM=HS256
|
||
|
|
expose:
|
||
|
|
- "8000"
|
||
|
|
depends_on:
|
||
|
|
- heady-guacd
|
||
|
|
networks:
|
||
|
|
- heady-network
|
||
|
|
labels:
|
||
|
|
# Caddy integration for reverse proxy
|
||
|
|
caddy: remote.${HEADY_DOMAIN:-localhost}
|
||
|
|
caddy.reverse_proxy: "{{upstreams http 8000}}"
|
||
|
|
caddy.@ws.header: Connection *Upgrade*
|
||
|
|
caddy.@ws.header_1: Upgrade websocket
|
||
|
|
caddy.reverse_proxy.@ws: "{{upstreams http 8000}}"
|
||
|
|
|
||
|
|
heady-guacd:
|
||
|
|
image: guacamole/guacd:latest
|
||
|
|
container_name: heady-guacd
|
||
|
|
restart: unless-stopped
|
||
|
|
environment:
|
||
|
|
- GUACD_LOG_LEVEL=${GUACD_LOG_LEVEL:-info}
|
||
|
|
expose:
|
||
|
|
- "4822"
|
||
|
|
volumes:
|
||
|
|
# Recording storage
|
||
|
|
- ./recordings:/recordings:rw
|
||
|
|
# Drive access (optional)
|
||
|
|
- ./drive:/drive:rw
|
||
|
|
networks:
|
||
|
|
- heady-network
|
||
|
|
|
||
|
|
networks:
|
||
|
|
heady-network:
|
||
|
|
driver: bridge
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
recordings:
|
||
|
|
drive:
|