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; #Redirect to Pioneer Peak SAGE Server VM
server_name ppos-sage.deeptree.tech;
client_max_body_size 0;
ssl on;
location / {
    proxy_pass http://172.16.16.48: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;
}
}
```