OVHserver/opt/02-core/n8n-shared/docker-compose.yml.backup
SamoilenkoVadym a987d45fbc chore: initial infrastructure setup with Syncthing, Git and documentation
Set up three-tier synchronization: Syncthing (real-time), GitHub (version control), rsync (disaster recovery). Includes complete documentation for future Claude sessions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 16:41:12 +00:00

84 lines
2.8 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n-shared
restart: unless-stopped
networks:
- traefik-public
- database-internal
- n8n-shared
env_file:
- .env
environment:
# General
N8N_HOST: n8n.ai-impress.com
N8N_PORT: 5678
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.ai-impress.com/
# Database
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres-main
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n_shared
DB_POSTGRESDB_USER: n8n_user
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
# Queue Mode (Redis)
QUEUE_BULL_REDIS_HOST: redis-main
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
EXECUTIONS_MODE: queue
# Security
N8N_BASIC_AUTH_ACTIVE: 'false'
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_PAYLOAD_SIZE_MAX: 64
# Timezone
GENERIC_TIMEZONE: Europe/London
TZ: Europe/London
volumes:
- n8n-data:/home/node/.n8n
- ./custom-nodes:/home/node/.n8n/custom
labels:
- "traefik.enable=true"
# Webhook роутер БЕЗ Authelia (для Telegram и других webhooks)
- "traefik.http.routers.n8n-webhook.rule=Host(`n8n.ai-impress.com`) && (PathPrefix(`/webhook/`) || PathPrefix(`/webhook-test/`))"
- "traefik.http.routers.n8n-webhook.entrypoints=websecure"
- "traefik.http.routers.n8n-webhook.tls.certresolver=cloudflare"
- "traefik.http.routers.n8n-webhook.service=n8n-shared-service"
- "traefik.http.routers.n8n-webhook.priority=200"
# OAuth роутер БЕЗ Authelia (для предотвращения ошибки 431)
- "traefik.http.routers.n8n-oauth.rule=Host(`n8n.ai-impress.com`) && PathPrefix(`/rest/oauth`)"
- "traefik.http.routers.n8n-oauth.entrypoints=websecure"
- "traefik.http.routers.n8n-oauth.tls.certresolver=cloudflare"
- "traefik.http.routers.n8n-oauth.service=n8n-shared-service"
- "traefik.http.routers.n8n-oauth.priority=150"
# Основной роутер с Authelia (для UI)
- "traefik.http.routers.n8n-shared.rule=Host(`n8n.ai-impress.com`)"
- "traefik.http.routers.n8n-shared.entrypoints=websecure"
- "traefik.http.routers.n8n-shared.tls.certresolver=cloudflare"
- "traefik.http.routers.n8n-shared.middlewares=authelia@file"
- "traefik.http.routers.n8n-shared.service=n8n-shared-service"
- "traefik.http.routers.n8n-shared.priority=50"
# Сервис
- "traefik.http.services.n8n-shared-service.loadbalancer.server.port=5678"
volumes:
n8n-data:
networks:
traefik-public:
external: true
database-internal:
external: true
n8n-shared:
external: true