ci / Compose (pull_request) Successful in 15s
ci / Workflows (pull_request) Successful in 9s
ci / Shell (pull_request) Successful in 19s
ci / Formatting (pull_request) Successful in 24s
ci / Python and tests (pull_request) Successful in 11s
ci / YAML (pull_request) Successful in 10s
ci / Dockerfiles (pull_request) Successful in 6s
ci / Kubernetes (pull_request) Successful in 7s
ci / image-plan (pull_request) Skipped
ci / Image (${{ matrix.name }}) (pull_request) Skipped
ci / build (pull_request) Skipped
33 lines
1.4 KiB
Bash
Executable File
33 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${AUTHENTIK_DB_PASSWORD:?AUTHENTIK_DB_PASSWORD is required}"
|
|
: "${GITEA_DB_PASSWORD:?GITEA_DB_PASSWORD is required}"
|
|
: "${NETBOX_DB_PASSWORD:?NETBOX_DB_PASSWORD is required}"
|
|
: "${NETRONOME_DB_PASSWORD:?NETRONOME_DB_PASSWORD is required}"
|
|
: "${PENPOT_DB_PASSWORD:?PENPOT_DB_PASSWORD is required}"
|
|
: "${PAPERLESS_DB_PASSWORD:?PAPERLESS_DB_PASSWORD is required}"
|
|
: "${STATUSPAGE_DB_PASSWORD:?STATUSPAGE_DB_PASSWORD is required}"
|
|
|
|
create_role_and_database() {
|
|
local role="$1"
|
|
local database="$2"
|
|
local password="$3"
|
|
psql --username "$POSTGRES_USER" --dbname postgres \
|
|
-v role="$role" -v database="$database" -v password="$password" \
|
|
<<'SQL'
|
|
SELECT format('CREATE ROLE %I LOGIN PASSWORD %L', :'role', :'password')
|
|
WHERE NOT EXISTS (SELECT FROM pg_roles WHERE rolname = :'role')\gexec
|
|
SELECT format('CREATE DATABASE %I OWNER %I', :'database', :'role')
|
|
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = :'database')\gexec
|
|
SQL
|
|
}
|
|
|
|
create_role_and_database authentik authentik "$AUTHENTIK_DB_PASSWORD"
|
|
create_role_and_database gitea gitea "$GITEA_DB_PASSWORD"
|
|
create_role_and_database netbox netbox "$NETBOX_DB_PASSWORD"
|
|
create_role_and_database netronome netronome "$NETRONOME_DB_PASSWORD"
|
|
create_role_and_database penpot penpot "$PENPOT_DB_PASSWORD"
|
|
create_role_and_database paperless paperless "$PAPERLESS_DB_PASSWORD"
|
|
create_role_and_database statuspage statuspage "$STATUSPAGE_DB_PASSWORD"
|