Apache Guacamole en tant que passerelle d'accès à distance HTML5 impressionnante. Malheureusement, cela peut être très frustrant à mettre en place. Ils ont des images docker qui sont censées faciliter le processus, mais j'ai quand même rencontré beaucoup de problèmes en essayant de tout configurer et lier.
Heureusement, un fichier de composition docker existe pour rendre Guacamole beaucoup plus facile à configurer. Suivez simplement les instructions comme indiqué dans le readme de github :
- Installer docker et docker-composer
- Clonez leur référentiel, exécutez le script de préparation initial (pour les clés SSL et l'initialisation de la base de données) et affichez-le avec docker-compose :
git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git" cd guacamole-docker-composer sudo ./prepare.sh sudo docker-composer jusqu'à -d
Fait! Si vous n'avez rien changé dans le fichier docker-compose.yml, vous aurez une nouvelle instance de Guacamole s'exécutant sur le port HTTPS 8443 de votre hôte docker. Si vous devez apporter des modifications (ou si vous avez oublié d'exécuter le fichier prepare.sh avec sudo), vous pouvez exécuter le script reset.sh qui détruira tout. Vous pouvez ensuite modifier docker-compose.yml selon vos besoins :
- Que ce soit pour utiliser nginx pour HTTPS ou simplement exposer guacamole sur le port 8080 non-https (au cas où vous auriez déjà configuré un proxy inverse)
- mot de passe postgres
Les fichiers de configuration de chaque conteneur sont situés dans différents dossiers de votre dossier guacamole-docker-compose. Tout cela peut être modifié en éditant le fichier docker-compose.yml.
Notez que cette configuration ne fonctionne pas avec WOL, mais comme je n'utilise pas cette fonctionnalité, cela ne me dérange pas.
Dépannage
docker ps
affichera les conteneurs en cours d'exécution ( docker ps -a
affiche tous les conteneurs) Si l'un n'est pas en cours d'exécution, cela devrait être le cas, docker logs <container name>
donne un aperçu précieux de la raison. Dans mon cas, guacd comportait une erreur car je n'avais pas correctement initialisé la base de données. Exécuter le reset.sh
script et recommencer, cette fois en tant que sudo, a fait l'affaire.