41 lines
No EOL
1.4 KiB
Bash
41 lines
No EOL
1.4 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Pull the list from the Environment Variable (set in Komodo)
|
|
# Example: APP_REGISTRY="forgejo guacamole grafana"
|
|
echo "Starting Database and User Provisioning for: ${APP_REGISTRY}"
|
|
|
|
M_ROOT_PASS="${MARIADB_ROOT_PASSWORD}"
|
|
|
|
for APP in ${APP_REGISTRY}; do
|
|
echo "Processing slot: ${APP}"
|
|
|
|
# Dynamically find the password variable (e.g., FORGEJO_DB_PASS)
|
|
# This converts "forgejo" to "FORGEJO_DB_PASS"
|
|
UPPER_APP=$(echo "${APP}" | tr '[:lower:]' '[:upper:]')
|
|
PASS_VAR_NAME="${UPPER_APP}_DB_PASS"
|
|
APP_PASS="${!PASS_VAR_NAME}"
|
|
|
|
if [ -z "$APP_PASS" ]; then
|
|
echo "ERROR: Variable ${PASS_VAR_NAME} is empty. Skipping ${APP}."
|
|
continue
|
|
fi
|
|
|
|
echo "Creating DB and User for ${APP}..."
|
|
mariadb -u root -p"${M_ROOT_PASS}" <<-EOSQL
|
|
CREATE DATABASE IF NOT EXISTS \`${APP}\`;
|
|
CREATE USER IF NOT EXISTS '${APP}'@'%' IDENTIFIED BY '${APP_PASS}';
|
|
GRANT ALL PRIVILEGES ON \`${APP}\`.* TO '${APP}'@'%';
|
|
EOSQL
|
|
done
|
|
|
|
echo "All slots provisioned. Flushing privileges..."
|
|
mariadb -u root -p"${M_ROOT_PASS}" -e "FLUSH PRIVILEGES;"
|
|
|
|
echo "Creating Replication User..."
|
|
mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" <<-EOSQL
|
|
-- Create the replicator user allowing access from anywhere (or specify IPs)
|
|
CREATE USER IF NOT EXISTS '${REPL_USER}'@'%' IDENTIFIED BY '${REPL_PASSWORD}';
|
|
GRANT REPLICATION SLAVE ON *.* TO '${REPL_USER}'@'%';
|
|
FLUSH PRIVILEGES;
|
|
EOSQL |