Apache Guacamole es una puerta de enlace de escritorio remoto sin cliente, que admite los siguientes protocolos estándar seguro para las conexiones a nuestros equipos de la red, como VNC, RDP y SSH. Dado que no es necesario tener un cliente instalado para facilitar las conexiones, los usuarios, simplemente usando un navegador web para acceder de forma remota a las máquinas virtuales, gracias a que se apoya en HTML5 para ello.
¿Qué necesitamos?
Para poder tener Guacamole instalado en un contenedor, necesitas los siguientes ingredientes:
- Docker instalado
- Archivo Docker Compose
- Navegador web
¿Cómo lo hacemos?
En tu servidor Docker, ejecuta los siguientes comandos:
git clone "https://github.com/boschkundendienst/guacamole-docker-compose.git" guacamole
cd guacamole
./prepare.sh
docker-compose up -d
Esto nos va a clonar el repositorio de https://github.com/boschkundendienst, que se ha molestado en prepararnos esta automatización para hacernos la vida más fácil. Al final nos prepara el siguiente compose, el cual recomiendo que edites para ajustarlo a tus necesidades y no usar configuraciones por defecto:
version: '2.0'
# networks
# create a network 'guacnetwork_compose' in mode 'bridged'
networks:
guacnetwork_compose:
driver: bridge
# services
services:
# guacd
guacd:
container_name: guacd_compose
image: guacamole/guacd
networks:
guacnetwork_compose:
restart: always
volumes:
- ./drive:/drive:rw
- ./record:/record:rw
# postgres
postgres:
container_name: postgres_guacamole_compose
environment:
PGDATA: /var/lib/postgresql/data/guacamole
POSTGRES_DB: guacamole_db
POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
POSTGRES_USER: guacamole_user
image: postgres:15.2-alpine
networks:
guacnetwork_compose:
restart: always
volumes:
- ./init:/docker-entrypoint-initdb.d:z
- ./data:/var/lib/postgresql/data:Z
# guacamole
guacamole:
container_name: guacamole_compose
depends_on:
- guacd
- postgres
environment:
GUACD_HOSTNAME: guacd
POSTGRES_DATABASE: guacamole_db
POSTGRES_HOSTNAME: postgres
POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
POSTGRES_USER: guacamole_user
image: guacamole/guacamole
links:
- guacd
networks:
guacnetwork_compose:
ports:
## enable next line if not using nginx
## - 8080:8080/tcp # Guacamole is on :8080/guacamole, not /.
## enable next line when using nginx
- 8080/tcp
restart: always
########### optional ##############
# nginx
nginx:
container_name: nginx_guacamole_compose
restart: always
image: nginx
volumes:
- ./nginx/templates:/etc/nginx/templates:ro
- ./nginx/ssl/self.cert:/etc/nginx/ssl/self.cert:ro
- ./nginx/ssl/self-ssl.key:/etc/nginx/ssl/self-ssl.key:ro
ports:
- 8443:443
links:
- guacamole
networks:
guacnetwork_compose:
Si tienes alguna duda de cómo implementarlo, no dejes de ver el vídeo que he preparado explicando paso a paso todo lo necesario para poder tener Guacamole funcionando en tu entorno, y en menos de 2 minutos!