From 805abcb364ef5f7c22b8eb5dbd0ad7e4f452cb07 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 19 Aug 2024 23:10:49 +0200 Subject: [PATCH] #73 add init for db --- .gitignore | 1 + create-db.sh | 21 +++++++++++++++++++++ docker-compose.yml | 22 ++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 .gitignore create mode 100755 create-db.sh create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81a38be --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env* diff --git a/create-db.sh b/create-db.sh new file mode 100755 index 0000000..bfca56f --- /dev/null +++ b/create-db.sh @@ -0,0 +1,21 @@ + +PW_POSTGRES=$(openssl rand -base64 32) +PW_UMAMI=$(openssl rand -base64 32) +PW_KEYCLOAK=$(openssl rand -base64 32) +PW_APP=$(openssl rand -base64 32) + +printf "DATABASE_URL=postgresql://umami:$PW_UMAMI@postgres:5432/umami\nDATABASE_TYPE=postgresql\nAPP_SECRET=$(openssel rand -base64 128)" > .env.umami +printf "KC_DB_URL=postgresql://keycloak:$PW_KEYCLOAK@postgres:5432/keycloak" > .env.keycloak + +psql -U postgres -c "CREATE ROLE umami WITH LOGIN PASSWORD '$PW_UMAMI';" +psql -U postgres -c "CREATE ROLE keycloak WITH LOGIN PASSWORD '$PW_KEYCLOAK';" +psql -U postgres -c "CREATE ROLE app WITH LOGIN PASSWORD '$PW_APP';" + +psql -U postgres -c "CREATE DATABASE umami WITH OWNER umami ENCODING 'UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8';" +psql -U postgres -c "CREATE DATABASE keycloak WITH OWNER keycloak ENCODING 'UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8';" +psql -U postgres -c "CREATE DATABASE app WITH OWNER app ENCODING 'UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8';" + +psql -U postgres -c "ALTER ROLE postgres WITH PASSWORD '$PW_POSTGRES';" + + +echo "Postgres password: $PW_POSTGRES" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bcebab4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + postgres: + image: 'postgres:latest' + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + # POSTGRES_DB: ${POSTGRES_DB} + # volumes: + # - ${PWD}/db-data/:/var/lib/postgresql/data/ + # - ${PWD}/init.sql:/docker-entrypoint-initdb.d/init.sql + + pgadmin: + image: dpage/pgadmin4 + ports: + - 8080:80 + environment: + PGADMIN_DEFAULT_EMAIL: admin@admin.de + PGADMIN_DEFAULT_PASSWORD: admin + # volumes: + # - ${PWD}/pgadmin-data/:/var/lib/pgadmin/