Apache Guacamole 1.4 Docker: Difference between revisions
m Стадий: 6 [Фаза:Утвърждаване, Статус:Утвърден]; Категория:Linux Server |
m Стадий: 3 [Фаза:Разработване, Статус:Разутвърден]; Категория:Linux Server |
||
Line 113: | Line 113: | ||
{{devStage | {{devStage | ||
| Прндл = Linux Server | | Прндл = Linux Server | ||
| Стадий = | | Стадий = 3 | ||
| Фаза = | | Фаза = Разработване | ||
| Статус = | | Статус = Разутвърден | ||
| ИдтПт = Spas | | ИдтПт = Spas | ||
| РзбПт = | | РзбПт = {{REVISIONUSER}} | ||
| АвтПт = Spas | | АвтПт = Spas | ||
| УтвПт = | | УтвПт = Spas | ||
| ИдтДт = 2.08.2022 | | ИдтДт = 2.08.2022 | ||
| РзбДт = | | РзбДт = {{Today}} | ||
| АвтДт = 2.08.2022 | | АвтДт = 2.08.2022 | ||
| УтвДт = | | УтвДт = 2.08.2022 | ||
| ИдтРв = [[Special:Permalink/29778|29778]] | | ИдтРв = [[Special:Permalink/29778|29778]] | ||
| РзбРв = | | РзбРв = {{REVISIONID}} | ||
| | | АвтРв = | ||
| | | РзАРв = [[Special:Permalink/29792|29792]] | ||
| УтвРв = | |||
| РзУРв = [[Special:Permalink/29794|29794]] | |||
}} | }} | ||
</div> | </div> | ||
</noinclude> | </noinclude> |
Revision as of 15:24, 8 August 2022
Pull the Docker images
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mariadb/server
Setup the Database
Generate Database Initialization Script.
docker run -it guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > guac_1.4_db.sql
Creating Initial docker-compose.yaml
.
docker-compose.yaml
version: '3'
services:
guacdb:
container_name: guacdb
image: mariadb/server:latest
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'MariaDBRootPSW'
MYSQL_DATABASE: 'guacamole_db'
MYSQL_USER: 'guacamole_user'
MYSQL_PASSWORD: 'MariaDBUserPSW'
volumes:
- ./guacdb-data:/var/lib/mysql
volumes:
guacdb-data:
Bring the database's container up.
docker-compose up -d
Copy the database initialization script into the container.
docker cp guac_1.4_db.sql guacdb:/guac_1.4_db.sql
Open a shell in the container an initialize the database.
docker exec -it guacdb bash
mysql guacamole_db < /guac_1.4_db.sql
exit
Bring the database's container down.
docker-compose down
Setup Apache Guacamole
Here we will modify docker-compose.yaml
in the following way. Note in my case the host's port is 8082
.
docker-compose.yaml
version: "3"
services:
guacdb:
container_name: guacdb
image: mariadb/server:latest
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "MariaDBRootPSW"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USER: "guacamole_user"
MYSQL_PASSWORD: "MariaDBUserPSW"
volumes:
- ./guacdb-data:/var/lib/mysql
guacd:
container_name: guacd
image: guacamole/guacd
restart: unless-stopped
volumes:
- ./guacd-data/drive:/drive:rw
- ./guacd-data/record:/record:rw
guacamole:
container_name: guacamole
image: "guacamole/guacamole:latest"
restart: unless-stopped
ports:
- "8082:8080"
environment:
GUACD_HOSTNAME: "guacd"
MYSQL_HOSTNAME: "guacdb"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USER: "guacamole_user"
MYSQL_PASSWORD: "MariaDBUserPSW"
TOTP_ENABLED: "true"
depends_on:
- "guacdb"
- "guacd"
volumes:
guacdb-data:
guacd-data:
Bring everything up.
docker-compose up -d
At this point you should be able to access http://host.ip.address:8082/guacamole
and login with guacadmin
/guacadmin
.
Apache2 Reverse Proxy
Further within my dev environment I'm using the script a2proxy
to create Apache2 Reverse Proxy yo the instance:
sudo a2proxy guac 8082
The next step that should be done is to create a new Administrator user and remove the default one! Also enable TOTP: the module is already integrated in the Docker container, so we just need to enable it by the docker's configuration – see line 36
of the above listing.
References
- Systems.dance: Apache Guacamole and docker-compose
- Mauro Frigerio blog: Install Guacamole on Docker with Traefik and 2FA
- Kifarunix: Configure TOTP Two-Factor on Apache Guacamole Native Installation
- Apache Guacamole 1.4 Docs: Installing Guacamole with Docker
- DockerHub: Guacamole