20 lines
640 B
Bash
Executable File
20 lines
640 B
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
gitea_password=$(cat /run/secrets/gitea_db_password)
|
|
|
|
psql --set=ON_ERROR_STOP=1 \
|
|
--username "$POSTGRES_USER" \
|
|
--dbname "$POSTGRES_DB" \
|
|
--set=gitea_password="$gitea_password" <<'SQL'
|
|
SELECT format('CREATE ROLE gitea LOGIN PASSWORD %L', :'gitea_password')
|
|
WHERE NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'gitea') \gexec
|
|
ALTER ROLE gitea WITH LOGIN PASSWORD :'gitea_password';
|
|
|
|
SELECT 'CREATE DATABASE gitea OWNER gitea'
|
|
WHERE NOT EXISTS (SELECT 1 FROM pg_database WHERE datname = 'gitea') \gexec
|
|
|
|
REVOKE ALL ON DATABASE gitea FROM PUBLIC;
|
|
GRANT CONNECT, TEMPORARY ON DATABASE gitea TO gitea;
|
|
SQL
|