WikiJS/home/homelab/apache-guacamole-setup-guide.md

96 lines
2.2 KiB
Markdown

---
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`