| 
					
				 | 
			
			
				@@ -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"' 
			 |