Added n8n
This commit is contained in:
parent
3b341e8a97
commit
feb1e7a1f2
|
@ -2,23 +2,23 @@ services:
|
||||||
hasura:
|
hasura:
|
||||||
container_name: $APP_NAME-hasura
|
container_name: $APP_NAME-hasura
|
||||||
image: hasura/graphql-engine:v2.13.0 #.cli-migrations-v3
|
image: hasura/graphql-engine:v2.13.0 #.cli-migrations-v3
|
||||||
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- 8080:8080
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: always
|
|
||||||
# volumes:
|
# volumes:
|
||||||
# - ../../hasura/migrations:/hasura-migrations
|
# - ../../hasura/migrations:/hasura-migrations
|
||||||
# - ../../hasura/metadata:/hasura-metadata
|
# - ../../hasura/metadata:/hasura-metadata
|
||||||
environment:
|
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
|
## 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
|
## enable debugging mode. It is recommended to disable this in production
|
||||||
HASURA_GRAPHQL_DEV_MODE: "true"
|
- HASURA_GRAPHQL_DEV_MODE=true
|
||||||
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
|
- 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_ADMIN_SECRET=${HASURA_GRAPHQL_ADMIN_SECRET:-$ADMIN_PASSWORD}
|
||||||
HASURA_GRAPHQL_EXPERIMENTAL_FEATURES: "apollo_federation"
|
- 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;
|
set -e;
|
||||||
|
|
||||||
# Add postgis
|
# Add postgis
|
||||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
|
||||||
CREATE EXTENSION postgis;
|
CREATE EXTENSION IF NOT EXISTS postgis;
|
||||||
|
CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
||||||
EOSQL
|
EOSQL
|
||||||
|
|
||||||
|
# Create non root user and add privileges
|
||||||
if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
|
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
|
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}';
|
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 ALL PRIVILEGES ON DATABASE $POSTGRES_DB TO $POSTGRES_NON_ROOT_USER;
|
||||||
EOSQL
|
EOSQL
|
||||||
else
|
else
|
||||||
echo "SETUP INFO: No Environment variables given!"
|
echo "SETUP INFO: No Environment variables given!"
|
||||||
fi
|
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
|
dockerfile: Dockerfile
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_DB=${POSTGRES_DB:-$APP_NAME}
|
- POSTGRES_DB=${POSTGRES_DB:-postgres}
|
||||||
- POSTGRES_USER=${POSTGRES_USER:-$ROOT_USER}
|
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-$ROOT_PASSWORD}
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
- POSTGRES_NON_ROOT_USER=${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}
|
- 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:
|
volumes:
|
||||||
- postgres_storage:/var/lib/postgresql/data
|
- postgres_storage:/var/lib/postgresql/data
|
||||||
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
|
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
|
||||||
|
@ -18,7 +18,7 @@ services:
|
||||||
test:
|
test:
|
||||||
[
|
[
|
||||||
'CMD-SHELL',
|
'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
|
interval: 5s
|
||||||
timeout: 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
|
file: composes/hasura/hasura.yml
|
||||||
service: hasura
|
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:
|
volumes:
|
||||||
postgres_storage:
|
postgres_storage:
|
||||||
|
redis_storage:
|
||||||
|
n8n_storage:
|
||||||
|
|
Loading…
Reference in New Issue