Files
docs/Containers/Docker/Docker Compose/Apache Guacamole.md

1.8 KiB

Purpose: HTML5-based Remote Access Broker for SSH, RDP, and VNC. Useful for remote access into an environment.

Docker Configuration

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
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;
  }
}
```