#### 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: n8nio/n8n:latest environment: # Database - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=n8n-postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRE_DB_NAME} - DB_POSTGRESDB_USER=${POSTGRE_DB_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRE_DB_PASSWORD} # N8N parametre - N8N_HOST=n8n.tips-of-mine.com - N8N_PORT=5678 - N8N_PROTOCOL=https - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_DIAGNOSTICS_ENABLED=false - N8N_LISTEN_ADDRESS=0.0.0.0 - N8N_SECURE_COOKIE=false # SMTP - N8N_EMAIL_MODE=smtp - N8N_SMTP_HOST=n8n-msmtpd - N8N_SMTP_PORT=2500 - N8N_SMTP_USER= - N8N_SMTP_PASS= - N8N_SMTP_SENDER=hostinfo@tips-of-mine.fr - N8N_SMTP_SSL=false - NODE_ENV=production # - EXECUTIONS_MODE=regular - NODE_FUNCTION_ALLOW_BUILTIN=* - NODE_FUNCTION_ALLOW_EXTERNAL=* - WEBHOOK_URL=https://n8n.tips-of-mine.com/ - TZ=${TZ} - GENERIC_TIMEZONE=${TZ} # - EXECUTIONS_MODE=queue - QUEUE_BULL_REDIS_HOST=n8n-redis - QUEUE_HEALTH_CHECK_ACTIVE=true # - OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true restart: always networks: - back_network_n8n - traefik_front_network volumes: - ./n8n:/home/node/.n8n:rw - ./files:/files:rw ports: - "5678:5678" depends_on: postgres: condition: service_healthy redis: condition: service_healthy healthcheck: test: ['CMD', 'wget', '--spider', 'http://127.0.0.1:5678'] interval: 30s timeout: 10s retries: 5 dns: - 8.8.8.8 - 8.8.4.4 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-https.service=n8n-https-service" - "traefik.http.routers.n8n-https.middlewares=n8n-middlewares" - "traefik.http.routers.n8n-https.observability.accesslogs=true" - "traefik.http.routers.n8n-https.observability.metrics=true" - "traefik.http.routers.n8n-https.observability.tracing=true" # Middleware - "traefik.http.middlewares.n8n-middlewares.headers.SSLRedirect=true" - "traefik.http.middlewares.n8n-middlewares.headers.STSSeconds=315360000" - "traefik.http.middlewares.n8n-middlewares.headers.browserXSSFilter=true" - "traefik.http.middlewares.n8n-middlewares.headers.contentTypeNosniff=true" - "traefik.http.middlewares.n8n-middlewares.headers.forceSTSHeader=true" - "traefik.http.middlewares.n8n-middlewares.headers.SSLHost=tips-of-mine.com" - "traefik.http.middlewares.n8n-middlewares.headers.STSIncludeSubdomains=true" - "traefik.http.middlewares.n8n-middlewares.headers.STSPreload=true" # 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: ${TZ} 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" ### redis: container_name: n8n-redis hostname: n8n-redis image: redis:latest restart: always #command: ["redis-server"] # command: [ "/entrypoint.sh", "./redis-stack.conf" ] ports: - "6379:6379" networks: - back_network_n8n volumes: - ./redis:/data healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 5s timeout: 5s retries: 10