desktop-dockerized/compose.yml

83 lines
2.0 KiB
YAML

---
x-restart-policy: &restart_policy
restart: unless-stopped
x-pull-policy: &pull_policy
pull_policy: always
x-compose-defaults: &compose_defaults
<<: [*restart_policy, *pull_policy]
networks:
desktop:
services:
caddy:
<<: *compose_defaults
image: caddy:2-alpine
container_name: caddy
ports:
- ${CADDY_HTTP:-80}:80
- ${CADDY_HTTPS:-443}:443
- ${CADDY_HTTPS:-443}:443/udp # HTTP/3
volumes:
- ./caddy/data:/data
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
guacd:
<<: *compose_defaults
image: guacamole/guacd:latest
container_name: guacd
volumes:
- ./guacamole/drive:/drive
- ./guacamole/record:/record
guacamole:
<<: *compose_defaults
image: guacamole/guacamole:latest
container_name: guacamole
depends_on:
- guacd
- postgres
environment:
GUACD_HOSTNAME: guacd
EXTENSIONS: auth-totp
POSTGRES_DATABASE: guacamole_db
POSTGRES_HOSTNAME: postgres
POSTGRES_PASSWORD: 'SuperSecretPassword1234'
POSTGRES_USER: guacamole_user
volumes:
- ./guacamole/data:/config
expose:
- 8080/tcp
postgres:
<<: *compose_defaults
image: postgres:14-alpine
container_name: postgres-guacamole
environment:
POSTGRES_INITDB_ARGS: --auth-host=md5 # Guacamole cannot handle scram-sha-256
PGDATA: /var/lib/postgresql/data/guacamole
POSTGRES_DB: guacamole_db
POSTGRES_PASSWORD: 'SuperSecretPassword1234'
POSTGRES_USER: guacamole_user
volumes:
- ./guacamole/init:/docker-entrypoint-initdb.d:ro
- postgres:/var/lib/postgresql/data
expose:
- 5432/tcp
volumes:
postgres:
driver: local
networks:
desktop:
name: "desktop"
driver: bridge
driver_opts:
com.docker.network.bridge.name: br-desktop
enable_ipv6: true
ipam:
driver: default
config:
- subnet: ${IPV4_NETWORK:-172.20.1}.0/24
- subnet: ${IPV6_NETWORK:-fd17:20:200:10::/64}