Difference between revisions of "How to install Guacamole in Docker"

From HyperSecurity Wiki
Jump to: navigation, search
(How to use)
Line 5: Line 5:
 
  chmod +x guacamole_install.sh
 
  chmod +x guacamole_install.sh
 
  ./guacamole_install.sh
 
  ./guacamole_install.sh
 
#!/bin/bash
 
 
set -e
 
 
# === Configuration ===
 
GUAC_VERSION="1.5.5"
 
MYSQL_ROOT_PASSWORD="some_password"
 
GUAC_DB="guacamole_db"
 
GUAC_USER="guacamole_user"
 
GUAC_PASSWORD="some_password"
 
INSTALL_DIR="/opt/guacamole"
 
 
echo "[+] Updating system..."
 
apt-get update -y
 
 
echo "[+] Installing Docker and Docker Compose..."
 
apt-get install -y docker.io docker-compose
 
 
echo "[+] Creating directory structure..."
 
mkdir -p "$INSTALL_DIR/initdb"
 
cd "$INSTALL_DIR"
 
 
echo "[+] Writing docker-compose.yml..."
 
cat > docker-compose.yml <<EOF
 
version: '2'
 
services:
 
  guacd:
 
    image: guacamole/guacd:${GUAC_VERSION}
 
    container_name: guacd
 
    restart: always
 
 
  guacdb:
 
    image: mariadb:10.5
 
    container_name: guacdb
 
    restart: always
 
    environment:
 
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
 
      MYSQL_DATABASE: ${GUAC_DB}
 
      MYSQL_USER: ${GUAC_USER}
 
      MYSQL_PASSWORD: ${GUAC_PASSWORD}
 
    volumes:
 
      - ./initdb:/docker-entrypoint-initdb.d
 
 
  guacamole:
 
    image: guacamole/guacamole:${GUAC_VERSION}
 
    container_name: guacamole
 
    restart: always
 
    ports:
 
      - "8080:8080"
 
    environment:
 
      GUACD_HOSTNAME: guacd
 
      MYSQL_HOSTNAME: guacdb
 
      MYSQL_DATABASE: ${GUAC_DB}
 
      MYSQL_USER: ${GUAC_USER}
 
      MYSQL_PASSWORD: ${GUAC_PASSWORD}
 
    depends_on:
 
      - guacd
 
      - guacdb
 
EOF
 
 
echo "[+] Downloading Guacamole MySQL init script..."
 
docker run --rm guacamole/guacamole:${GUAC_VERSION} /opt/guacamole/bin/initdb.sh --mysql > initdb/initdb.sql
 
 
echo "[+] Starting all containers..."
 
docker-compose up -d
 
 
echo "[+] Done. Guacamole is being deployed. Waiting for containers to initialize..."
 
 
# Wait for Guacamole to be healthy (basic check)
 
sleep 20
 
 
# Show status
 
docker ps
 
 
echo
 
echo "======================================"
 
echo " Guacamole setup complete!"
 
echo " Access it at: http://<your-server-ip>:8080/guacamole"
 
echo
 
echo " Default login: guacadmin / guacadmin"
 
echo " CHANGE THE DEFAULT PASSWORD after login."
 
echo "======================================"
 

Revision as of 20:30, 28 May 2025

How to use

mkdir /root/docker
cd /root/docker
vi guacamole_install.sh
chmod +x guacamole_install.sh
./guacamole_install.sh