Skip to content

Apache Guacamole

Deploy Apache Guacamole on Kubernetes using the official guacamole/guacamole and guacamole/guacd Docker images. A clientless remote desktop gateway supporting RDP, VNC, SSH, and telnet with OIDC/SAML SSO.

Key Features

  • guacd Sidecar — protocol daemon runs alongside the web app
  • PostgreSQL Subchart — bundled via HelmForge dependency (default)
  • MySQL Subchart — bundled via HelmForge dependency
  • External Database — connect to existing PostgreSQL or MySQL
  • Database Init Job — automatic schema initialization on install
  • OpenID Connect — SSO with Keycloak, Okta, Azure AD, and others
  • SAML — SSO with any SAML 2.0 identity provider
  • TOTP — two-factor authentication
  • Scheduled Backups — pg_dump or mysqldump with S3 upload
  • Ingress Support — TLS with cert-manager

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install guacamole helmforge/guacamole -f values.yaml

OCI registry:

helm install guacamole oci://ghcr.io/helmforgedev/helm/guacamole -f values.yaml

Basic Example (PostgreSQL)

# values.yaml
postgresql:
  auth:
    password: 'change-me'

Default credentials: guacadmin / guacadmin — change immediately after first login.

OIDC with Keycloak

oidc:
  enabled: true
  authorizationEndpoint: https://keycloak.example.com/realms/master/protocol/openid-connect/auth
  jwksEndpoint: https://keycloak.example.com/realms/master/protocol/openid-connect/certs
  issuer: https://keycloak.example.com/realms/master
  clientId: guacamole

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: guacamole.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: guacamole-tls
      hosts:
        - guacamole.example.com

The redirectUri is auto-detected from the ingress configuration.

External Database

postgresql:
  enabled: false

database:
  type: postgresql
  external:
    host: db.example.com
    name: guacamole_db
    username: guacamole_user
    existingSecret: guacamole-db-credentials

Key Values

KeyDefaultDescription
guacamole.contextPathROOTWeb context path (ROOT = /)
guacd.port4822guacd daemon port
guacd.logLevelinfoguacd log level
database.typepostgresqlDatabase type (postgresql, mysql)
postgresql.enabledtrueDeploy PostgreSQL subchart
mysql.enabledfalseDeploy MySQL subchart
initDb.enabledtrueAuto-initialize database schema
oidc.enabledfalseEnable OpenID Connect SSO
oidc.clientId""OIDC client ID
saml.enabledfalseEnable SAML SSO
totp.enabledfalseEnable TOTP 2FA
ingress.enabledfalseEnable ingress
backup.enabledfalseEnable S3 backups

More Information

See the source code and full values reference on GitHub.