Added n8n
This commit is contained in:
parent
3b341e8a97
commit
feb1e7a1f2
|
@ -2,23 +2,23 @@ services:
|
|||
hasura:
|
||||
container_name: $APP_NAME-hasura
|
||||
image: hasura/graphql-engine:v2.13.0 #.cli-migrations-v3
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 8080:8080
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
restart: always
|
||||
# volumes:
|
||||
# - ../../hasura/migrations:/hasura-migrations
|
||||
# - ../../hasura/metadata:/hasura-metadata
|
||||
environment:
|
||||
HASURA_GRAPHQL_DATABASE_URL: postgres://${ADMIN_USER}:${ADMIN_PASSWORD}@postgres:5432/${POSTGRES_DB:-$APP_NAME}
|
||||
- HASURA_GRAPHQL_DATABASE_URL=postgres://${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}:${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}@postgres:5432/${HASURA_DB:-postgres}
|
||||
## enable the console served by server
|
||||
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
|
||||
- HASURA_GRAPHQL_ENABLE_CONSOLE=true # set to "false" to disable console
|
||||
## enable debugging mode. It is recommended to disable this in production
|
||||
HASURA_GRAPHQL_DEV_MODE: "true"
|
||||
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
|
||||
HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-$ADMIN_PASSWORD}
|
||||
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES: "apollo_federation"
|
||||
- HASURA_GRAPHQL_DEV_MODE=true
|
||||
- HASURA_GRAPHQL_ENABLED_LOG_TYPES=startup, http-log, webhook-log, websocket-log, query-log
|
||||
- HASURA_GRAPHQL_ADMIN_SECRET=${HASURA_GRAPHQL_ADMIN_SECRET:-$ADMIN_PASSWORD}
|
||||
- HASURA_GRAPHQL_EXPERIMENTAL_FEATURES=apollo_federation
|
||||
|
||||
# N8N_DATABASE_URL: postgres://${POSTGRES_NON_ROOT_USER}:${POSTGRES_NON_ROOT_PASSWORD}@postgres:5432/n8n
|
||||
- N8N_DATABASE_URL=postgres://${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}:${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}@postgres:5432/${N8N_DB:-n8n}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -e;
|
||||
|
||||
if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
|
||||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" -p 5433 <<-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
|
|
@ -0,0 +1,49 @@
|
|||
x-shared: &shared
|
||||
image: n8nio/n8n
|
||||
restart: always
|
||||
environment:
|
||||
- DB_TYPE=postgresdb
|
||||
- DB_POSTGRESDB_HOST=postgres
|
||||
- DB_POSTGRESDB_PORT=5432
|
||||
- DB_POSTGRESDB_DATABASE=${N8N_DB:-n8n}
|
||||
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}
|
||||
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}
|
||||
- EXECUTIONS_MODE=queue
|
||||
- QUEUE_BULL_REDIS_HOST=redis
|
||||
- QUEUE_HEALTH_CHECK_ACTIVE=true
|
||||
- N8N_BASIC_AUTH_ACTIVE=true
|
||||
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER:-$ADMIN_USER}
|
||||
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD:-$ADMIN_PASSWORD}
|
||||
- WEBHOOK_URL=${N8N_WEBHOOK_URL:-}
|
||||
- N8N_EMAIL_MODE=smtp
|
||||
- N8N_SMTP_HOST=${SMTP_HOST}
|
||||
- N8N_SMTP_USER=${SMTP_USER}
|
||||
- N8N_SMTP_PASS=${SMTP_PASS}
|
||||
- N8N_SMTP_SENDER=${SMTP_SENDER}
|
||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
|
||||
links:
|
||||
- postgres
|
||||
- redis
|
||||
volumes:
|
||||
- n8n_storage:/home/node/
|
||||
- n8n_storage:/files
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
services:
|
||||
n8n:
|
||||
<<: *shared
|
||||
container_name: $APP_NAME-n8n
|
||||
command: /bin/sh -c "n8n start --tunnel"
|
||||
ports:
|
||||
- 5678:5678
|
||||
|
||||
n8n-worker:
|
||||
<<: *shared
|
||||
container_name: $APP_NAME-n8n-worker
|
||||
command: /bin/sh -c "sleep 5; n8n worker"
|
||||
depends_on:
|
||||
- n8n
|
|
@ -2,15 +2,28 @@
|
|||
set -e;
|
||||
|
||||
# Add postgis
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE EXTENSION postgis;
|
||||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE EXTENSION IF NOT EXISTS postgis;
|
||||
CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
||||
EOSQL
|
||||
|
||||
# Create non root user and add privileges
|
||||
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};
|
||||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$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
|
||||
|
||||
# Create n8n table
|
||||
if [ -n "${N8N_DB:-n8n}" ] && [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
|
||||
# echo $N8N_SCHEMA $POSTGRES_USER $POSTGRES_NON_ROOT_USER;
|
||||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE DATABASE ${N8N_DB:-n8n};
|
||||
GRANT ALL PRIVILEGES ON DATABASE ${N8N_DB:-n8n} TO $POSTGRES_NON_ROOT_USER;
|
||||
EOSQL
|
||||
else
|
||||
echo "SETUP INFO: No N8N_DB given!"
|
||||
fi
|
|
@ -6,11 +6,11 @@ services:
|
|||
dockerfile: Dockerfile
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-$APP_NAME}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-$ROOT_USER}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-$ROOT_PASSWORD}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-postgres}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_NON_ROOT_USER=${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}
|
||||
- POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD:-$ADMIN_PASSWORD}
|
||||
- POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- postgres_storage:/var/lib/postgresql/data
|
||||
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
|
||||
|
@ -18,7 +18,7 @@ services:
|
|||
test:
|
||||
[
|
||||
'CMD-SHELL',
|
||||
'pg_isready -h localhost -U ${POSTGRES_USER:-$ROOT_USER} -d ${POSTGRES_DB:-$APP_NAME}',
|
||||
'pg_isready -h localhost -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-postgres}',
|
||||
]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
services:
|
||||
redis:
|
||||
image: redis:6-alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- redis_storage:/data
|
||||
healthcheck:
|
||||
test: ['CMD', 'redis-cli', 'ping']
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 10
|
|
@ -18,5 +18,21 @@ services:
|
|||
file: composes/hasura/hasura.yml
|
||||
service: hasura
|
||||
|
||||
redis:
|
||||
extends:
|
||||
file: composes/redis/redis.yml
|
||||
service: redis
|
||||
|
||||
n8n:
|
||||
extends:
|
||||
file: composes/n8n/n8n.yml
|
||||
service: n8n
|
||||
n8n-worker:
|
||||
extends:
|
||||
file: composes/n8n/n8n.yml
|
||||
service: n8n-worker
|
||||
|
||||
volumes:
|
||||
postgres_storage:
|
||||
redis_storage:
|
||||
n8n_storage:
|
||||
|
|
Loading…
Reference in New Issue