docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgresql > initdb.sql
docker compose up -d postgres
docker logs -f guacamole-postgres
# Wait for the database to be ready
# You should see the following message: "database system is ready to accept connections" or something similar
docker exec -i guacamole-postgres psql -U guacamole_user -d guacamole_db < initdb.sql
docker compose up -d
http://127.0.0.1:4880/guacamole
Note
In this example the guacamole client is exposed on port 4880 just for 127.0.0.1 (localhost) because the guacamole-client is exposed to the public internet with nginx.
Tip
For an example of how setup nginx to expose the guacamole client see the file nginx.guacamole.conf
in this repository.
Tip
The easy way to setup SSL/TLS is to use certbot with nginx.