diff --git a/bin/setup_directus.sh b/bin/setup_directus.sh index 306fcfd..2a3192e 100644 --- a/bin/setup_directus.sh +++ b/bin/setup_directus.sh @@ -41,8 +41,8 @@ admin_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ -e "SELECT id FROM directus.directus_roles WHERE name='Administrator'") | awk '{print $2}') website_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ -e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}') -# user_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ -# -e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}') +user_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ +-e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}') website_password=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n') @@ -52,8 +52,21 @@ npx directus users create --email \"${directus_admin_email}\" \ npx directus users create --email \"website@${DOMAIN_NAME}\" --password \"${website_password}\" --role \"${website_role_uuid}\"" www-data WEBSITE_TOKEN=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n') -mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_roles SET icon='robot' WHERE name='Website'"; -mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_roles SET app_access='0' WHERE name='Website'"; -mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_users SET token=\"${WEBSITE_TOKEN}\" WHERE email=\"website@${DOMAIN_NAME}\""; +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \ +"UPDATE directus.directus_roles SET icon='robot' WHERE name='Website'" +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \ +"UPDATE directus.directus_roles SET app_access='0' WHERE name='Website'" +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \ +"UPDATE directus.directus_users SET token=\"${WEBSITE_TOKEN}\" WHERE email=\"website@${DOMAIN_NAME}\"" -mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e "INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) VALUES (\"${website_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')"; \ No newline at end of file +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \ +"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \ +VALUES (\"${website_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')" + +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \ +"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \ +VALUES (\"${user_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')" + +mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \ +"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \ +VALUES (\"${user_role_uuid}\", 'directus_folders', 'read', '{}', '{}', '*')" \ No newline at end of file diff --git a/bin/setup_webhook.sh b/bin/setup_webhook.sh index 076f232..5a88765 100644 --- a/bin/setup_webhook.sh +++ b/bin/setup_webhook.sh @@ -8,6 +8,8 @@ echo -e "${BLUE}${BOLD}Authorization Header ${RESET}${ORANGE}Generate a safe str echo -e "${PURPLE}${BOLD}Enter the Authorization Header${RESET}" read -s auth_header +# check if the build flow already exists and get the auth header from there if so + install_pkg php install_pkg php-fpm install_pkg jq @@ -37,4 +39,32 @@ echo "file_server" >> $CADDYFILE echo "}" >> $CADDYFILE echo "}" >> $CADDYFILE caddy fmt $CADDYFILE -w -caddy reload -c $CADDYFILE \ No newline at end of file +caddy reload -c $CADDYFILE + +if [[ -z "$DB_DIRECTUS_PASSWORD" ]]; then + echo -e "${PURPLE}${BOLD}Enter the MariaDB Directus password : ${RESET}" + read -s DB_DIRECTUS_PASSWORD + echo +fi + +FLOW_EXISTS=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e "SELECT COUNT(*) FROM directus_flows WHERE name='build';") | awk '{print $2}') + +website_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ +-e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}') + +if [ $FLOW_EXISTS -eq 0 ]; then + flow_id="fdd75914-80dd-44ac-9d62-c7a08bc9cae6" + operation_id="371b1b41-312d-4df6-ab68-336b416e1f16" + + mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \ + "INSERT INTO directus_flows (id, name, icon, color, description, status, \`trigger\`, accountability, options, operation, user_created) \ + VALUES (${flow_id}, 'Build', 'bolt', '#FFA439', 'Trigger static site build on content modification', 'active', 'event', 'all', \ + '{\"type\":\"action\",\"scope\":[\"items.create\",\"items.update\",\"items.sort\",\"items.delete\",\"items.promote\"],\"collections\":[\"directus_files\"]}', \ + ${operation_id}, ${website_role_uuid})" + + mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \ + "INSERT INTO directus_operations (id, name, \`key\`, type, position_x, position_y, options, flow, user_created) \ + VALUES (${operation_id}, 'Webhook / Request URL', 'request_56aby', 'request', 23, 2, \ + '{\"headers\":[{\"header\":\"Authorization\",\"value\":\"${auth_header}\"},{\"header\":\"Content-Type\",\"value\":\"application/json\"}],\"method\":\"POST\",\"url\":\"https://${DOMAIN_NAME}/webhook.php\",\"body\":null}', \ + ${flow_id}, ${website_role_uuid})" +fi \ No newline at end of file