mapletree/lxc1/p0-infrastructure/mgdb/01_deploy_mgdb_dbs.sh
2026-02-03 08:24:56 -07:00

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