I set up Guacamole using Install Guacamole on Docker – VNC, SSH, SFTP, and RDP like a Boss!.
My docker-compose.yml
---
services:
# MariaDB - MySQL Database
mariadb:
container_name: guac_db
image: linuxserver/mariadb:latest
restart: always
networks:
# - proxy
- guac
security_opt:
- no-new-privileges:true
# ports:
# - "3306:3306"
volumes:
- ./data/db:/config
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=$PUID
- PGID=$PGID
- MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
# Guacamole Daemon - Needed for Guacamole
guacd:
image: guacamole/guacd
container_name: guacd
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
# - proxy
- guac
# Guacamole - Remote desktop, SSH, on Telnet on any HTML5 Browser
# Create all databases and tables first
guacamole:
image: guacamole/guacamole:latest
container_name: guacamole
restart: unless-stopped
networks:
- proxy
- guac
security_opt:
- no-new-privileges:true
# ports:
# - "8089:8080"
environment:
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: mariadb
MYSQL_PORT: $DB_PORT
MYSQL_DATABASE: guacamole
MYSQL_USER: $GUAC_MYSQL_USER
MYSQL_PASSWORD: $GUAC_MYSQL_PASSWORD
depends_on:
- mariadb
- guacd
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
## HTTP Routers
- "traefik.http.routers.guacamole.entrypoints=https"
- "traefik.http.routers.guacamole.rule=Host(`guac.local.kptree.net`)"
- "traefik.http.routers.guacamole.tls=true"
## Middlewares
#- "traefik.http.routers.guacamole-rtr.middlewares=chain-authelia@file,add-guacamole"
- "traefik.http.middlewares.add-guacamole.addPrefix.prefix=/guacamole"
- "traefik.http.routers.guacamole.middlewares=add-guacamole"
## HTTP Services
- "traefik.http.routers.guacamole.service=guacamole"
- "traefik.http.services.guacamole.loadbalancer.server.port=8080"
networks:
proxy:
external: true
guac: