app-store/apps/n8n-1/docker-compose.yml
2024-05-31 19:59:27 +02:00

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