n8n/docker-compose.yml
hcornet 7a83f6a12a
Some checks are pending
Deployment Verification / deploy-and-test (push) Waiting to run
first sync
2025-02-11 20:35:24 +01:00

86 lines
2.8 KiB
YAML

#### NETWORKS
networks:
traefik_front_network:
external: true
back_network_n8n:
driver: bridge
attachable: true
#### SERVICES
services:
### n8n
n8n:
container_name: n8n-app
hostname: n8n-app
image: docker.n8n.io/n8nio/n8n:latest
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRE_DB_NAME}
- DB_POSTGRESDB_USER=${POSTGRE_DB_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRE_DB_PASSWORD}
- N8N_HOST=tips-of-mine.com
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.tips-of-mine.com/
- "TZ=Europe/Paris"
restart: always
networks:
- back_network_n8n
- traefik_front_network
volumes:
- n8n:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
labels:
- "com.centurylinklabs.watchtower.enable=true"
- "traefik.enable=true"
- "traefik.docker.network=traefik_front_network"
# HTTP
- "traefik.http.routers.n8n-http.rule=Host(`n8n.tips-of-mine.com`)"
- "traefik.http.routers.n8n-http.entrypoints=http"
- "traefik.http.routers.n8n-http.priority=49"
# HTTPS
- "traefik.http.routers.n8n-https.rule=Host(`n8n.tips-of-mine.com`)"
- "traefik.http.routers.n8n-https.entrypoints=https"
- "traefik.http.routers.n8n-https.tls=true"
- "traefik.http.routers.n8n-https.priority=50"
- "traefik.http.routers.n8n.service=n8n-https-service"
# Middleware
# Service
- "traefik.http.services.n8n-https-service.loadbalancer.server.port=5678"
# - "traefik.http.services.n8n-https-service.loadbalancer.server.scheme=https"
# - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.hostname=n8n.tips-of-mine.com"
# - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.method=foobar"
# - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.timeout=10"
# - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.interval=30"
### postgres
postgres:
container_name: n8n-postgres
hostname: n8n-postgres
image: ${POSTGRES_IMAGE_TAG}
environment:
PGDATA: ${POSTGRE_DB_DATA}
POSTGRES_DB: ${POSTGRE_DB_NAME}
POSTGRES_PASSWORD: ${POSTGRE_DB_PASSWORD}
POSTGRES_USER: ${POSTGRE_DB_USER}
TZ: Europe/Paris
restart: unless-stopped
networks:
- back_network_n8n
volumes:
- ./data:/var/lib/postgresql/data:rw
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: [ "CMD", "pg_isready", "-q", "-d", "${POSTGRE_DB_NAME}", "-U", "${POSTGRE_DB_USER}" ]
interval: 10s
timeout: 5s
retries: 3
start_period: 60s
labels:
- "com.centurylinklabs.watchtower.enable=true"