This repository contains the mock example for setting up a docker-based guacamole server with an nginx reverse proxy and let's encrypt certificates. The purpose of this project is to provide a guacamole server on OCI bastion hosts for Trivadis Training environments. It is based on the following official docker images:
- guacamole/guacamole-server Apache Guacamole is a clientless remote desktop gateway supporting protocols like VNC and RDP..
- guacamole/guacd The native server-side proxy used by Apache Guacamole.
- mysql/mysql-server Optimized MySQL Server Docker images. Created, maintained and supported by the MySQL team at Oracle.
- nginx Official build of Nginx.
- certbot/certbot Official build of EFF's Certbot tool for obtaining TLS/SSL certificates from Let's Encrypt.
-
Install
docker
anddocker-compose
. See Install Docker Compose -
Clone this repository:
git clone https://github.com/oehrlis/guacamole.git
. -
Modify configuration
- Update the
.env
or define the corresponding environment variables. - Review and update
docker-compose.yml
- Define the following environment variables:
- EMAIL - Adding a valid address for certificate renewal (default none)
- HOSTNAME - Define a hostname for the nginx server and certificate name (default:
$(hostname)
) - DOMAINNAME - Define a domain name for nginx server and certificate name (default: trivadislabs.com)
- STAGING_ENABLE - Set STAGING to 1 if you're testing your setup to avoid hitting request limits is certification
- Update the
-
Run the script
prepare_initdb.sh
to prepare the database initialisation scriptscd guacamole ./bin/prepare_initdb.sh
-
Startup the guacamole services. Currently required to make nginx happy.
docker-compose up -d guacamole mysql guacd
-
Run the script
prepare_certs.sh
to initiate an initial certification request.export EMAIL="[email protected]" export STAGING_ENABLE=1 ./bin/prepare_certs.sh
-
Finally start all container
docker-compose up -d
Alternatively you can run the script setup_guacamole.sh
to execute most of the steps above.
git clone https://github.com/oehrlis/guacamole.git
cd guacamole
export EMAIL="[email protected]"
export STAGING_ENABLE=1
./bin/setup_guacamole.sh
Please file your bug reports, enhancement requests, questions and other support requests within Github's issue tracker.
- Describe your idea by submitting an issue
- Fork this respository
- Create a branch, commit and publish your changes and enhancements
- Create a pull request
Copyright (c) 2019, 2020 Trivadis AG and/or its associates. All rights reserved.
The Trivadis Terraform modules are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.