diff --git a/bin/add-site/install_directus.sh b/bin/add-site/install_directus.sh index 20147ab..2a611c5 100644 --- a/bin/add-site/install_directus.sh +++ b/bin/add-site/install_directus.sh @@ -33,6 +33,11 @@ set_secrets() { sed -i "s/^SECRET=.*/SECRET=${secret}/" "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env" } +docker_up_create_db() { + docker compose -f "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d + docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "CREATE DATABASE directus; GRANT ALL PRIVILEGES ON directus.* TO 'root'@'%';" +} + wait_for_DB() { echo "Waiting for Directus database to be ready..." until docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT 1 FROM directus.directus_roles LIMIT 1" &> /dev/null @@ -50,9 +55,8 @@ if [[ "$answer" == "y" ]]; then # do we really need the .env file ? set_port set_secrets - docker-compose -f "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d - docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "CREATE DATABASE directus; GRANT ALL PRIVILEGES ON directus.* TO 'root'@'%';" - wait_for_DBthe directus user + docker_up_create_db + wait_for_DB echo -e "${PURPLE}${BOLD}Import the .tar.gz archive from your local storage${RESET}" echo -e "${PURPLE}The archive should contain the sql dump and the upload directory${RESET}" @@ -75,7 +79,7 @@ else set_admin_credentials set_port set_secrets - docker compose -f "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d + docker_up_create_db docker exec -i "${DOMAIN_NAME}_Directus" sh -c "npx directus bootstrap" wait_for_DB