--- title: Setting Up Apache Guacamole description: As of Sept 22th 2025 published: true date: 2025-09-22T14:14:34.581Z tags: virtual machine, vm, containers, remote-desktop, proxmox, tutorials, guacamole, remote-access editor: markdown dateCreated: 2025-09-22T14:14:34.581Z --- # Apace Guacamole Setup Guide ##### (Assumes setup of docker complete.) 1. Pull Docker Images: ``` docker pull guacamole/guacamole:latest docker pull guacamole/guacd:latest docker pull mariadb:latest ``` 2. Run the following: `docker run --rm guacamole/guacamole:1.4.0 /opt/guacamole/bin/initdb.sh --mysql > initdb.sql` 3. Create initial DB docker-compose.yml: ``` version: '3' services: guacdb: container_name: guacamoledb image: mariadb:latest restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'MariaDBRootPass' MYSQL_DATABASE: 'guacamole_db' MYSQL_USER: 'guacamole_user' MYSQL_PASSWORD: 'MariaDBUserPass' volumes: - './db-data:/var/lib/mysql' volumes: db-data: ``` 4. Run `docker compose up -d` 5. Run `docker cp initdb.sql guacamoledb:/initdb.sql` 6. Run the following: ``` docker exec -it guacamoledb bash cat /initdb.sql | mysql -u root -p guacamole_db exit ``` 7. Run `docker compose down` 8. update docker-compose.yml: ``` version: '3' services: guacdb: container_name: guacamoledb image: mariadb:latest restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'MariaDBRootPass' MYSQL_DATABASE: 'guacamole_db' MYSQL_USER: 'guacamole_user' MYSQL_PASSWORD: 'MariaDBUserPass' volumes: - './db-data:/var/lib/mysql' guacd: container_name: guacd image: guacamole/guacd:latest restart: unless-stopped guacamole: container_name: guacamole image: guacamole/guacamole:latest restart: unless-stopped ports: - 8080:8080 environment: GUACD_HOSTNAME: "guacd" MYSQL_HOSTNAME: "guacdb" MYSQL_DATABASE: "guacamole_db" MYSQL_USER: "guacamole_user" MYSQL_PASSWORD: "MariaDBUserPass" TOTP_ENABLED: "true" depends_on: - guacdb - guacd volumes: db-data: ``` 9. Run `docker compose up -d` Proceed to `http://ip-address:8080/guacamole` User: `guacadmin` Pass: `guacadmin`