Skip to main content

Docker Compose Apache Guacamole


Apache Guacamole est une passerelle de bureau à distance sans client. Il prend en charge les protocoles standards tels que VNC, RDP et SSH.


Pratique pour déployer rapidement Apache Guacamole dans Portainer en créant une pile (stack) à partir d’un fichier compose YAML.

Je pars du principe que vous maîtrisez un minimum Docker avec Portainer 😉

Apache Guacamole, c’est quoi ?

Apache Guacamole est une passerelle de bureau à distance sans client.

Il prend en charge les protocoles standards tels que VNC, RDP et SSH.

Nous l’appelons sans client, car aucun plugin ou logiciel client n’est requis.

Grâce au HTML5, une fois Guacamole installé sur un serveur, tout ce dont vous avez besoin pour accéder à vos bureaux est un navigateur Web.

Liens utiles

Installation

Manuelle, ou via Portainer.

sudo” OU PAS “sudo” ? À vous de savoir. Personnellement, je suis sur un LXC Debian Proxmox, je travaille donc en “root”, pas besoin de “sudo” !

Manuelle

  • Créer un dossier qui va contenir les différents fichiers et dossier pour notre environnement Guacamole…

mkdir guacamole

  • Dans le dossier “guacamole”, créer le fichier “docker-compose.yml”…

touch docker-compose-yml

  • Ouvrez maintenant “docker-compose.yml” pour l’éditer…

nano docker-compose.yml

  • Voici le contenu du fichier “docker-compose.yml”, adaptez-le à votre environnement…

version: '3.8'

services:
    guacamole_db:
        container_name: guacamole_db
        hostname: guacamole_db
        image: mariadb:10.11
        restart: always
        volumes:
            - ./guacamole_db:/var/lib/mysql
        environment:
            - MYSQL_ROOT_PASSWORD=blablalinux
            - MYSQL_DATABASE=guacamole_db
            - MYSQL_USER=anyblabla
            - MYSQL_PASSWORD=blabla
        expose:
            - 3306

    guacd:
        container_name: guacd
        hostname: guacd
        image: guacamole/guacd:latest
        restart: always
        volumes:
            - ./guacd_drive:/drive:rw
            - ./guacd_record:/record:rw
        expose:
            - 4822

    guacamole:
        container_name: guacamole
        hostname: guacamole
        restart: always
        image: guacamole/guacamole:latest
        depends_on:
            - guacamole_db
            - guacd
        ports:
            - 8080:8080
        links:
            - guacd
        environment:
            - GUACD_HOSTNAME=guacd
            - MYSQL_HOSTNAME=guacamole_db
            - MYSQL_DATABASE=guacamole_db
            - MYSQL_USER=anyblabla
            - MYSQL_PASSWORD=blabla
            - REMOTE_IP_VALVE_ENABLED=true

Fichier compose également disponible sur ByteStash Blabla Linux.

Compose personnalisation

Dans “environment” du service “guacamole_db”…

  • N’oubliez pas de personnaliser le mot de passe “root” pour MySQL…

- MYSQL_ROOT_PASSWORD=blablalinux

  • N’oubliez pas de personnaliser le nom utilisateur pour MySQL…

- MYSQL_USER=anyblabla

  • N’oubliez pas de personnaliser le mot de passe pour MySQL…

- MYSQL_PASSWORD=blabla

Les informations “environement” du service “guacamole_db” doivent être identiques que les informations “environment” du service “guacamole” !

  • La variable “- REMOTE_IP_VALVE_ENABLED=” est à activer si vous utilisez un Proxy inverse

- REMOTE_IP_VALVE_ENABLED=true

Bonus Compose personnalisation

  • Pour activer la double authentification, il suffit d’ajouter cette variable en dessous de la variable “- REMOTE_IP_VALVE_ENABLED=true”…

- TOTP_ENABLED=true

Portainer

  • Il suffit de créer une pile stack avec le nom de votre choix, ici, “guacamole”, et de coller le contenu du fichier Compose ci-dessus…


Vous pouvez lancer le container !

  • Avec une installation manuelle, simplement être dans le répertoire “guacamole” et…

docker-compose up -d

  • Avec une pile stack Portainer, un clic sur “Deploy the stack”…

L’identifiant et le mot de passe par défaut est : guacadmin


Manuelle/Portainer - Instructions communes

Il faut maintenant initialiser la base de données MySQL.

  • Si vous n’êtes pas en “root”, passez-y…

sudo su

  • Récupérer le script d’initialisation de la base de données MySQL…

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

  • Injecter le fichier de la base de données MySQL…

docker exec -i guacamole_db mysql --user anyblabla --password=blabla guacamole_db < initdb.sql

  • La commande doit être adaptée à votre environnement…

--user anyblabla --password=blabla

Guacamole en fonctionnement

Je vous propose cette vidéo pour vous rendre compte du résultat…

Source : https://wiki.blablalinux.be/fr/docker-compose-apache-guacamole