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

42 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;"
# Add this inside your 01_deploy_mgdb_dbs.sh script
# (either in the loop or as a standalone block at the bottom)
mariadb -u root -p"${M_ROOT_PASS}" <<-EOSQL
CREATE USER IF NOT EXISTS 'sstuser'@'localhost' IDENTIFIED BY '${SST_PASSWORD}';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
FLUSH PRIVILEGES;
EOSQL