|
@@ -1,33 +1,24 @@
|
|
|
-#!/bin/bash
|
|
|
+#!/bin/bash -e
|
|
|
+
|
|
|
+# Create terminalserver network in case it doesn't exist
|
|
|
+docker network inspect terminalserver_default 1>/dev/null \
|
|
|
+ || docker network create terminalserver_default
|
|
|
|
|
|
# Get query for DB creation
|
|
|
-docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
|
|
|
+mkdir -p ./data/docker-entrypoint-initdb.d
|
|
|
+docker compose run --rm --no-deps guacamole /opt/guacamole/bin/initdb.sh --postgres > ./data/docker-entrypoint-initdb.d/10-initdb.sql
|
|
|
|
|
|
-# Create query to update the guacadmin password
|
|
|
-cat >user.sql <<'EOL'
|
|
|
-SET @salt = UNHEX(SHA2(UUID(), 256));
|
|
|
+# Update default password for guacadmin
|
|
|
+source .env
|
|
|
+cat << EOF >> ./data/docker-entrypoint-initdb.d/10-initdb.sql
|
|
|
UPDATE guacamole_user
|
|
|
- SET password_salt = @salt, password_hash = UNHEX(SHA2(CONCAT('_PASSWORD_', HEX(@salt)), 256))
|
|
|
+ SET password_salt = NULL, password_hash = SHA256('$GUACADMIN_PASSWORD')
|
|
|
WHERE user_id = 1;
|
|
|
-EOL
|
|
|
-
|
|
|
-source .env
|
|
|
-sed -i user.sql -e "s/_PASSWORD_/$PASSWORD/g"
|
|
|
+EOF
|
|
|
|
|
|
-# Start mysql and create database as it is up
|
|
|
-docker-compose up -d mysql \
|
|
|
- && docker cp initdb.sql mysql:/ \
|
|
|
- && docker exec mysql \
|
|
|
- sh -c "while [ ! -S /var/run/mysqld/mysqld.sock ] ; do sleep 2 && echo 'Wait for mysql to come up...'; done; sleep 5; echo 'go'" \
|
|
|
- && docker exec mysql \
|
|
|
- sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole < /initdb.sql" \
|
|
|
- && docker exec mysql \
|
|
|
- sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole -e 'show tables;'"
|
|
|
|
|
|
-# Update guacadmin password
|
|
|
-docker cp user.sql mysql:/ \
|
|
|
- && docker exec mysql \
|
|
|
- sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole < /user.sql" \
|
|
|
+# Start database
|
|
|
+docker compose up -d guacamole-db
|
|
|
|
|
|
-# Start guacamole
|
|
|
-docker-compose up -d
|
|
|
+# Print tables
|
|
|
+docker exec guacamole-db sh -c 'until pg_isready; do sleep 3; done; psql --username=guacamole --dbname=guacamole --command="\dt"'
|