diff --git a/assets/directus.docker-compose.yml b/assets/directus.docker-compose.yml index 00c6100..0793500 100644 --- a/assets/directus.docker-compose.yml +++ b/assets/directus.docker-compose.yml @@ -5,6 +5,7 @@ services: image: mariadb:10 volumes: - ./data:/var/lib/mysql + - ./setup_mariadb.sql:/docker-entrypoint-initdb.d/setup_mariadb.sql environment: - MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 - MARIADB_USER=directus diff --git a/assets/setup_mariadb.sql b/assets/setup_mariadb.sql new file mode 100644 index 0000000..564217b --- /dev/null +++ b/assets/setup_mariadb.sql @@ -0,0 +1,3 @@ +CREATE DATABASE IF NOT EXISTS directus; + +GRANT ALL PRIVILEGES ON directus.* TO 'root'@'%'; \ No newline at end of file diff --git a/bin/add-site/install_directus.sh b/bin/add-site/install_directus.sh index 0c93c8f..f605d8e 100644 --- a/bin/add-site/install_directus.sh +++ b/bin/add-site/install_directus.sh @@ -8,6 +8,7 @@ fi mkdir "/home/${username}/cms.${DOMAIN_NAME}" cp assets/directus.docker-compose.yml "/home/${username}/cms.${DOMAIN_NAME}/docker-compose.yml" +cp assets/setup_mariadb.sql "/home/${username}/cms.${DOMAIN_NAME}/setup_mariadb.sql" cp assets/.env.example "/home/${username}/cms.${DOMAIN_NAME}/.env" sed -i "s/^PROJECT_NAME=.*/PROJECT_NAME=${DOMAIN_NAME}/" "/home/${username}/cms.${DOMAIN_NAME}/.env" @@ -33,24 +34,6 @@ sed -i "s/^PORT=.*/PORT=${port}/" "/home/${username}/cms.${DOMAIN_NAME}/.env" # Start the services using Docker Compose docker compose -f "/home/${username}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d -# Wait for MariaDB to be ready (up to 60 seconds, check every 5 seconds) -echo "Waiting for MariaDB to be ready..." -for i in {1..12}; do - if docker exec -i "${DOMAIN_NAME}_Directus_DB" mysqladmin ping -uroot --silent; then - echo "MariaDB is ready!" - break - fi - echo "Waiting for MariaDB... (${i}/12)" - sleep 5 -done - -# Execute the SQL command after MariaDB is ready -docker exec -i "${DOMAIN_NAME}_Directus_DB" mysql -uroot -e " - CREATE DATABASE directus; - GRANT ALL PRIVILEGES ON directus.* TO 'root'@'%'; - FLUSH PRIVILEGES; -" - docker exec -i "${DOMAIN_NAME}_Directus" sh -c "npx directus roles create --role Website && npx directus roles create --role User" website_role_uuid=$(echo $(docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}')