-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
94 lines (88 loc) · 3.74 KB
/
docker-compose.yml
File metadata and controls
94 lines (88 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
services:
n8n-db:
image: postgres:${POSTGRES_IMAGE_TAG:-16-alpine}
container_name: n8n-db
hostname: n8n-db
restart: unless-stopped
ports:
- "${DB_POSTGRESDB_PORT:-5432}:${DB_POSTGRESDB_PORT:-5432}"
environment:
- POSTGRES_USER=${DB_POSTGRESDB_USER}
- POSTGRES_PASSWORD=${DB_POSTGRESDB_PASSWORD}
- POSTGRES_DB=${DB_POSTGRESDB_DATABASE}
- POSTGRES_NON_ROOT_USER=${POSTGRES_NON_ROOT_USER}
- POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/n8n/database:/var/lib/postgresql/data
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/n8n/init-database.sh:/docker-entrypoint-initdb.d/init-data.sh:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${DB_POSTGRESDB_USER} -d ${DB_POSTGRESDB_DATABASE}']
interval: ${HEALTHCHECK_INTERVAL:-5s}
timeout: ${HEALTHCHECK_TIMEOUT:-5s}
retries: ${HEALTHCHECK_RETRIES:-10}
n8n:
image: n8nio/n8n:${N8N_IMAGE_TAG:-latest}
container_name: n8n
hostname: n8n
restart: unless-stopped
ports:
- "${N8N_PORT:-5678}:${N8N_PORT:-5678}"
links:
- n8n-db
depends_on:
n8n-db:
condition: service_healthy
environment:
# N8N Settings
- N8N_HOST=${N8N_HOST}
- N8N_PROTOCOL=${N8N_PROTOCOL}
- N8N_URL=${N8N_URL}
- N8N_PORT=${N8N_PORT}
- N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL}
- N8N_WEBHOOK_URL=${N8N_WEBHOOK_URL}
- WEBHOOK_URL=${N8N_WEBHOOK_URL}
- N8N_TRUSTED_PROXIES=${N8N_TRUSTED_PROXIES}
- N8N_PROXY_HOPS=${N8N_PROXY_HOPS}
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=${N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS}
- N8N_SECURE_COOKIE=${N8N_SECURE_COOKIE}
# Application settings
- NODE_ENV=${N8N_NODE_ENV}
- GENERIC_TIMEZONE=${N8N_TZ}
# Database settings
- DB_TYPE=${DB_TYPE}
- DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
- DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
# npm extra options
- EXTRA_NODE_MODULES=${N8N_EXTRA_NODE_MODULES}
- NODE_FUNCTION_ALLOW_EXTERNAL=${N8N_NODE_FUNCTION_ALLOW_EXTERNAL}
# Runner configuration
- N8N_RUNNERS_ENABLED=${N8N_RUNNERS_ENABLED:-true}
- N8N_RUNNERS_MODE=${N8N_RUNNERS_MODE:-external}
- N8N_RUNNERS_BROKER_LISTEN_ADDRESS=${N8N_RUNNERS_BROKER_LISTEN_ADDRESS:-0.0.0.0}
- N8N_RUNNERS_AUTH_TOKEN=${N8N_RUNNERS_AUTH_TOKEN}
- N8N_NATIVE_PYTHON_RUNNER=${N8N_NATIVE_PYTHON_RUNNER:-true}
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/n8n/storage:/home/node/.n8n
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/n8n/files:/files
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.n8n.rule=Host(`${N8N_HOST}`)
# - traefik.http.services.n8n.loadbalancer.server.port=${N8N_PORT}
# # Part for optional traefik middlewares
# - traefik.http.routers.n8n.middlewares=local-ipwhitelist@file,basic-auth@file
# Task Runners: https://docs.n8n.io/hosting/configuration/task-runners/#3-run-the-image
task-runners:
image: n8nio/runners:${N8N_RUNNERS_IMAGE_TAG:-latest}
container_name: n8n-runners
environment:
- N8N_RUNNERS_TASK_BROKER_URI=${N8N_RUNNERS_TASK_BROKER_URI}
- N8N_RUNNERS_AUTH_TOKEN=${N8N_RUNNERS_AUTH_TOKEN}
depends_on:
- n8n