infra/postgres/init/10-create-gitea.sh

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