86 lines
2.8 KiB
YAML
86 lines
2.8 KiB
YAML
|
|
services:
|
|
n8n-1:
|
|
container_name: n8n-1
|
|
image: n8nio/n8n:1.42.1
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${APP_PORT}:5678
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/n8n:/home/node/.n8n
|
|
environment:
|
|
- N8N_EDITOR_BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
|
- N8N_SECURE_COOKIE=false
|
|
- WEBHOOK_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
|
- DB_TYPE=postgresdb
|
|
- DB_POSTGRESDB_HOST=n8n-db
|
|
- DB_POSTGRESDB_PORT=5432
|
|
- DB_POSTGRESDB_DATABASE=n8n
|
|
- DB_POSTGRESDB_USER=n8n
|
|
- DB_POSTGRESDB_PASSWORD=${N8N_NR_DB_PASSWORD}
|
|
networks:
|
|
- tipi_main_network
|
|
links:
|
|
- n8n-db
|
|
depends_on:
|
|
n8n-init:
|
|
condition: service_completed_successfully
|
|
n8n-db:
|
|
condition: service_healthy
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.n8n-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.n8n.loadbalancer.server.port: 5678
|
|
# Web
|
|
traefik.http.routers.n8n-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.n8n-insecure.entrypoints: web
|
|
traefik.http.routers.n8n-insecure.service: n8n
|
|
traefik.http.routers.n8n-insecure.middlewares: n8n-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.n8n.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.n8n.entrypoints: websecure
|
|
traefik.http.routers.n8n.service: n8n
|
|
traefik.http.routers.n8n.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.n8n-local-insecure.rule: Host(`n8n.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.n8n-local-insecure.entrypoints: web
|
|
traefik.http.routers.n8n-local-insecure.service: n8n
|
|
traefik.http.routers.n8n-local-insecure.middlewares: n8n-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.n8n-local.rule: Host(`n8n.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.n8n-local.entrypoints: websecure
|
|
traefik.http.routers.n8n-local.service: n8n
|
|
traefik.http.routers.n8n-local.tls: true
|
|
|
|
n8n-db:
|
|
container_name: n8n-db
|
|
image: postgres:11
|
|
restart: unless-stopped
|
|
networks:
|
|
- tipi_main_network
|
|
environment:
|
|
- POSTGRES_USER=tipi
|
|
- POSTGRES_PASSWORD=${N8N_DB_PASSWORD}
|
|
- POSTGRES_DB=n8n
|
|
- POSTGRES_NON_ROOT_USER=n8n
|
|
- POSTGRES_NON_ROOT_PASSWORD=${N8N_NR_DB_PASSWORD}
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
|
|
- ${APP_DATA_DIR}/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
|
|
|
|
n8n-init:
|
|
image: bash:5.2.26
|
|
command: ['sh', '-c', 'chown -R 1000:1000 /home/node/.n8n']
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/n8n:/home/node/.n8n
|