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

From HyperSecurity Wiki
Jump to: navigation, search
(→‎How to use)
(→‎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:34, 28 May 2025

How to use

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