diff --git a/n8n/docker-compose.yml b/n8n/docker-compose.yml index 38f2fab..09a58b6 100644 --- a/n8n/docker-compose.yml +++ b/n8n/docker-compose.yml @@ -7,11 +7,11 @@ services: - n8n restart: always environment: - - POSTGRES_USER - - POSTGRES_PASSWORD - - POSTGRES_DB - - POSTGRES_NON_ROOT_USER - - POSTGRES_NON_ROOT_PASSWORD + - POSTGRES_USER=${N8N_POSTGRES_USER} + - POSTGRES_PASSWORD=${N8N_POSTGRES_PASSWORD} + - POSTGRES_DB=${N8N_POSTGRES_DB} + - POSTGRES_NON_ROOT_USER=${N8N_POSTGRES_NON_ROOT_USER} + - POSTGRES_NON_ROOT_PASSWORD=${N8N_POSTGRES_NON_ROOT_PASSWORD} volumes: - ./data/db:/var/lib/postgresql/data - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh @@ -46,7 +46,7 @@ services: links: - postgres volumes: - - ./data/n8n:/home/node/.n8n + - data:/home/node/.n8n labels: - "traefik.enable=true" - "traefik.docker.network=traefik" @@ -68,4 +68,7 @@ networks: traefik: external: true n8n: - driver: bridge \ No newline at end of file + driver: bridge + +volumes: + data: \ No newline at end of file diff --git a/n8n/init-data.sh b/n8n/init-data.sh new file mode 100644 index 0000000..7f2e382 --- /dev/null +++ b/n8n/init-data.sh @@ -0,0 +1,13 @@ +#!/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}; + GRANT CREATE ON SCHEMA public TO ${POSTGRES_NON_ROOT_USER}; + EOSQL +else + echo "SETUP INFO: No Environment variables given!" +fi \ No newline at end of file