security rework and memory optimilizations.
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# PostgreSQL Initialization Script
|
||||
# Creates databases and users for homelab applications
|
||||
# Runs once during initial container startup
|
||||
|
||||
echo "🔧 Initializing PostgreSQL databases and users..."
|
||||
|
||||
# Source environment variables if available
|
||||
if [ -f /run/secrets/postgres_passwords ]; then
|
||||
source /run/secrets/postgres_passwords
|
||||
fi
|
||||
|
||||
# Default passwords (override via environment variables)
|
||||
: ${AUTHENTIK_DB_PASSWORD:=CHANGEME_AUTHENTIK_PASSWORD}
|
||||
: ${GITEA_DB_PASSWORD:=CHANGEME_GITEA_PASSWORD}
|
||||
|
||||
# Create Authentik database and user
|
||||
echo "📦 Creating Authentik database..."
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
|
||||
CREATE DATABASE authentik;
|
||||
CREATE USER authentik_user WITH PASSWORD '$AUTHENTIK_DB_PASSWORD';
|
||||
GRANT ALL PRIVILEGES ON DATABASE authentik TO authentik_user;
|
||||
|
||||
-- Grant schema privileges (required for PostgreSQL 15+)
|
||||
\c authentik
|
||||
GRANT ALL ON SCHEMA public TO authentik_user;
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO authentik_user;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO authentik_user;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO authentik_user;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO authentik_user;
|
||||
EOSQL
|
||||
|
||||
# Create Gitea database and user (for future migration)
|
||||
echo "📦 Creating Gitea database..."
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
|
||||
CREATE DATABASE gitea;
|
||||
CREATE USER gitea_user WITH PASSWORD '$GITEA_DB_PASSWORD';
|
||||
GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea_user;
|
||||
|
||||
\c gitea
|
||||
GRANT ALL ON SCHEMA public TO gitea_user;
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO gitea_user;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO gitea_user;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO gitea_user;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO gitea_user;
|
||||
EOSQL
|
||||
|
||||
# Add future databases here as needed
|
||||
# echo "📦 Creating future_app database..."
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
|
||||
# CREATE DATABASE future_app;
|
||||
# CREATE USER future_user WITH PASSWORD '$FUTURE_APP_PASSWORD';
|
||||
# GRANT ALL PRIVILEGES ON DATABASE future_app TO future_user;
|
||||
# EOSQL
|
||||
|
||||
echo "✅ PostgreSQL initialization complete!"
|
||||
echo ""
|
||||
echo "📊 Database Summary:"
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" -c '\l'
|
||||
echo ""
|
||||
echo "👥 User Summary:"
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" -c '\du'
|
||||
Reference in New Issue
Block a user