From 0c2e1d2c2c2526b7f306aac5936ce3194b8db6da Mon Sep 17 00:00:00 2001 From: ManUtopiK Date: Thu, 20 Oct 2022 15:30:07 +0200 Subject: [PATCH] Use postgresql and pgadmin --- .env.example | 19 +++++++++++++++++++ composes/db/compose.yml | 22 ++++++++++++++++++++++ composes/db/init-data.sh | 12 ++++++++++++ composes/pgadmin/compose.yml | 13 +++++++++++++ docker-compose.yml | 14 ++++++++++++++ 5 files changed, 80 insertions(+) create mode 100644 .env.example create mode 100644 composes/db/compose.yml create mode 100644 composes/db/init-data.sh create mode 100644 composes/pgadmin/compose.yml create mode 100644 docker-compose.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7df262d --- /dev/null +++ b/.env.example @@ -0,0 +1,19 @@ +GENERIC_TIMEZONE=Europe/Paris + +POSTGRES_USER=changeUser +POSTGRES_PASSWORD=changePassword +POSTGRES_DB=n8n + +POSTGRES_NON_ROOT_USER=changeUser +POSTGRES_NON_ROOT_PASSWORD=changePassword + +SMTP_HOST=smtp.gmail.com +SMTP_USER=emmanuel.salomon@gmail.com +SMTP_PASS=nckctwxxqlidotss +SMTP_SENDER=contact@manutopik.fr + +N8N_BASIC_AUTH_USER=changeUser +N8N_BASIC_AUTH_PASSWORD=changePassword +N8N_WEBHOOK_URL=https://n8n.manutopik.fr + +HASURA_GRAPHQL_ADMIN_SECRET=changePassword \ No newline at end of file diff --git a/composes/db/compose.yml b/composes/db/compose.yml new file mode 100644 index 0000000..9b95105 --- /dev/null +++ b/composes/db/compose.yml @@ -0,0 +1,22 @@ +services: + db: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER + - POSTGRES_PASSWORD + - POSTGRES_DB + - POSTGRES_NON_ROOT_USER + - POSTGRES_NON_ROOT_PASSWORD + volumes: + - db_storage:/var/lib/postgresql/data + - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh + healthcheck: + test: + [ + 'CMD-SHELL', + 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}', + ] + interval: 5s + timeout: 5s + retries: 10 diff --git a/composes/db/init-data.sh b/composes/db/init-data.sh new file mode 100644 index 0000000..a8b1917 --- /dev/null +++ b/composes/db/init-data.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e; + + +if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}'; + GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER}; + EOSQL +else + echo "SETUP INFO: No Environment variables given!" +fi \ No newline at end of file diff --git a/composes/pgadmin/compose.yml b/composes/pgadmin/compose.yml new file mode 100644 index 0000000..e875c73 --- /dev/null +++ b/composes/pgadmin/compose.yml @@ -0,0 +1,13 @@ +services: + pgadmin: + container_name: pgadmin + image: dpage/pgadmin4:latest + environment: + - PGADMIN_DEFAULT_EMAIL=${ADMIN_MAIL} + - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD} + ports: + - "5050:80" + restart: always + depends_on: + db: + condition: service_healthy \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..36807fb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + + db: + extends: + file: composes/db/compose.yml + service: db + + pgadmin: + extends: + file: composes/pgadmin/compose.yml + service: pgadmin + +volumes: + db_storage: