Hello! Welcome to my Apache Guacamole: Docker Compose repository! The purpose of this project is to add new and up to date install instructions for Apache Guacamole to the internet. The current offerings are either out of date, horribly formatted, overly clunky (like the Apache docs themselves), broken, or all the above. It is my hope this walkthrough will be easy to understand and well formatted. Without further ado, let's get started! Please note: This was tested in an Ubuntu LXC container hosted by Proxmox.
You can find the instructions to do so here: https://docs.docker.com/engine/install/
If you are using Ubuntu, you can use the setup script (dockersetup.sh) in this repo.
mkdir ./init
chmod -R +x ./init
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgresql > ./init/initdb.sql
Create a new Compose file:
nano docker-compose.yml
Paste in the following code and save:
networks:
guacnetwork_compose:
driver: bridge
services:
guacd:
container_name: guacd
image: guacamole/guacd
networks:
guacnetwork_compose:
restart: always
volumes:
- ./drive:/drive:rw
- ./record:/record:rw
postgres:
container_name: postgres
environment:
PGDATA: /var/lib/postgresql/data/guacamole
POSTGRES_DB: guacamole_db
POSTGRES_PASSWORD: 'ChangeMe'
POSTGRES_USER: guacamole_user
image: postgres:15.2-alpine
networks:
guacnetwork_compose:
restart: always
volumes:
- ./init:/docker-entrypoint-initdb.d:z
- ./data:/var/lib/postgresql/data:Z
guacamole:
container_name: guacamole
depends_on:
- guacd
- postgres
environment:
GUACD_HOSTNAME: guacd
POSTGRES_DATABASE: guacamole_db
POSTGRES_HOSTNAME: postgres
POSTGRES_PASSWORD: 'ChangeMe'
POSTGRES_USER: guacamole_user
TOTP_ENABLED: 'true'
WEBAPP_CONTEXT: ROOT #Changes URL from <IP>/guacamole/ to just <IP>
image: guacamole/guacamole
links:
- guacd
networks:
guacnetwork_compose:
ports:
- 80:8080/tcp
restart: always
docker compose up -d
Navigate to the IP Address of the install. (for example) 10.0.0.200