**Purpose**: HTML5-based Remote Access Broker for SSH, RDP, and VNC. Useful for remote access into an environment. ## Docker Configuration ```jsx title="docker-compose.yml" version: '3' services: app: image: jasonbean/guacamole ports: - 8080:8080 volumes: - /srv/containers/guacamole:/config environment: - OPT_MYSQL=Y - OPT_MYSQL_EXTENSION=N - OPT_SQLSERVER=N - OPT_LDAP=N - OPT_DUO=N - OPT_CAS=N - OPT_TOTP=Y - OPT_QUICKCONNECT=N - OPT_HEADER=N - OPT_SAML=N - PUID=99 - PGID=100 - TZ=America/Denver restart: unless-stopped networks: docker_network: ipv4_address: 192.168.5.43 networks: default: external: name: docker_network docker_network: external: true ``` ```jsx title=".env" N/A ``` ## Reverse Proxy Configuration === "Traefik" ``` yaml http: routers: apache-guacamole: entryPoints: - websecure tls: certResolver: letsencrypt service: apache-guacamole rule: Host(`remote.bunny-lab.io`) services: apache-guacamole: loadBalancer: servers: - url: http://192.168.5.43:8080 passHostHeader: true ``` === "NGINX" ``` yaml server { listen 443 ssl; server_name remote.bunny-lab.io; client_max_body_size 0; ssl on; location / { proxy_pass http://192.168.5.43:8080; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; access_log off; } } ```