|
|
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 "======================================"
| |