Guacamole docker compose: Difference between revisions

From wiki karavi
Jump to navigation Jump to search
(Created page with " Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file: # 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: contai...")
 
No edit summary
Line 1: Line 1:
Create a folder for the project
mkdir ${HOME}/docker-stack
cd ${HOME}/docker-stack
Initialize the database
mkdir -p ${HOME}/docker-stack/guacamole/init
chmod -R +x ${HOME}/docker-stack/guacamole/init
docker run --rm guacamole/guacamole:1.5.3 /opt/guacamole/bin/initdb.sh --postgresql > ${HOME}/docker-stack/guacamole/init/initdb.sql




Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file:
Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file:
nano ${HOME}/docker-stack/guacamole/docker-compose.yml


Paste the following content into it :
version: '3.9'
  # networks
  # networks
  # create a network 'guacnetwork_compose' in mode 'bridged'
  # create a network 'guacamole_net' in mode 'bridged'
  networks:
  networks:
   guacnetwork_compose:
   guacamole_net:
     driver: bridge
     driver: bridge
  haproxy_net:
    external: true
   
   
  # services
  # services
Line 13: Line 29:
   # guacd
   # guacd
   guacd:
   guacd:
     container_name: guacd_compose
     container_name: guacamole_backend
     image: guacamole/guacd
     image: guacamole/guacd:1.5.3
     networks:
     networks:
       - guacnetwork_compose
       guacamole_net:
     restart: always
     restart: always
     volumes:
     volumes:
     - ./drive:/drive:rw
     - ./drive:/drive:rw
     - ./record:/record:rw
     - ./record:/var/lib/guacamole/recordings:rw
   # postgres
   # postgres
   postgres:
   postgres:
     container_name: postgres_guacamole_compose
     container_name: guacamole_database
     environment:
     environment:
       PGDATA: /var/lib/postgresql/data/guacamole
       PGDATA: /var/lib/postgresql/data/guacamole
       POSTGRES_DB: guacamole_db
       POSTGRES_DB: guacamole_db
       POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
       POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
       POSTGRES_USER: guacamole_user
       POSTGRES_USER: '${POSTGRES_USER}'
     image: postgres:15.2-alpine
     image: postgres:15.0
     networks:
     networks:
       - guacnetwork_compose
       guacamole_net:
     restart: always
     restart: always
     volumes:
     volumes:
     - ./init:/docker-entrypoint-initdb.d:z
     - ./init:/docker-entrypoint-initdb.d:ro
     - ./data:/var/lib/postgresql/data:Z
     - ./data:/var/lib/postgresql/data:rw
   
   # guacamole
   # guacamole
   guacamole:
   guacamole:
     container_name: guacamole_compose
     container_name: guacamole_frontend
    group_add:
      - "1000"
     depends_on:
     depends_on:
     - guacd
     - guacd
Line 47: Line 62:
     environment:
     environment:
       GUACD_HOSTNAME: guacd
       GUACD_HOSTNAME: guacd
       POSTGRES_DATABASE: guacamole_db
       POSTGRESQL_DATABASE: guacamole_db
       POSTGRES_HOSTNAME: postgres
       POSTGRESQL_HOSTNAME: postgres
       POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
       POSTGRESQL_PASSWORD: '${POSTGRES_PASSWORD}'
       POSTGRES_USER: guacamole_user
       POSTGRESQL_USER: '${POSTGRES_USER}'
       RECORDING_SEARCH_PATH: /record
       POSTGRESQL_AUTO_CREATE_ACCOUNTS: true
     image: guacamole/guacamole
     image: guacamole/guacamole:1.5.3
    links:
    - guacd
     networks:
     networks:
       - guacnetwork_compose
       - guacamole_net
      - haproxy_net
    restart: always
     volumes:
     volumes:
      - ./record:/record:rw
    - ./drive:/drive:rw
     ports:
     - ./record:/var/lib/guacamole/recordings
## enable next line if not using nginx
#    - 8086:8080/tcp # Guacamole is on :8080/guacamole, not /.
## enable next line when using nginx
    - 8080/tcp
    restart: always

Revision as of 15:58, 30 March 2025

Create a folder for the project

mkdir ${HOME}/docker-stack
cd ${HOME}/docker-stack

Initialize the database

mkdir -p ${HOME}/docker-stack/guacamole/init
chmod -R +x ${HOME}/docker-stack/guacamole/init
docker run --rm guacamole/guacamole:1.5.3 /opt/guacamole/bin/initdb.sh --postgresql > ${HOME}/docker-stack/guacamole/init/initdb.sql


Create the ${HOME}/docker-stack/guacamole/docker-compose.yml file:

nano ${HOME}/docker-stack/guacamole/docker-compose.yml

Paste the following content into it :

version: '3.9'

# networks
# create a network 'guacamole_net' in mode 'bridged'
networks:
  guacamole_net:
    driver: bridge
  haproxy_net:
    external: true

# services
services:
  # guacd
  guacd:
    container_name: guacamole_backend
    image: guacamole/guacd:1.5.3
    networks:
      guacamole_net:
    restart: always
    volumes:
    - ./drive:/drive:rw
    - ./record:/var/lib/guacamole/recordings:rw

  # postgres
  postgres:
    container_name: guacamole_database
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
      POSTGRES_USER: '${POSTGRES_USER}'
    image: postgres:15.0
    networks:
      guacamole_net:
    restart: always
    volumes:
    - ./init:/docker-entrypoint-initdb.d:ro
    - ./data:/var/lib/postgresql/data:rw
    
  # guacamole
  guacamole:
    container_name: guacamole_frontend
    depends_on:
    - guacd
    - postgres
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRESQL_DATABASE: guacamole_db
      POSTGRESQL_HOSTNAME: postgres
      POSTGRESQL_PASSWORD: '${POSTGRES_PASSWORD}'
      POSTGRESQL_USER: '${POSTGRES_USER}'
      POSTGRESQL_AUTO_CREATE_ACCOUNTS: true
    image: guacamole/guacamole:1.5.3
    links:
    - guacd
    networks:
      - guacamole_net
      - haproxy_net
    restart: always
    volumes:
    - ./drive:/drive:rw
    - ./record:/var/lib/guacamole/recordings