# n8n — automate.manohargupta.com # Visual workflow automation. Postgres-backed (SQLite locks under concurrent runs). # v2: Added deploy.labels for Traefik swarm provider (Dokploy uses swarm stack deploy). services: n8n-db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: n8n POSTGRES_USER: n8n POSTGRES_PASSWORD: ${N8N_DB_PASSWORD} volumes: - n8n_db_data:/var/lib/postgresql/data networks: - n8n_internal healthcheck: test: ["CMD-SHELL", "pg_isready -U n8n -d n8n"] interval: 10s timeout: 5s retries: 5 n8n: image: docker.n8n.io/n8nio/n8n:1.83.0 restart: unless-stopped depends_on: n8n-db: condition: service_healthy environment: N8N_HOST: automate.manohargupta.com N8N_PORT: "5678" N8N_PROTOCOL: https WEBHOOK_URL: https://automate.manohargupta.com/ N8N_EDITOR_BASE_URL: https://automate.manohargupta.com/ DB_TYPE: postgresdb DB_POSTGRESDB_HOST: n8n-db DB_POSTGRESDB_PORT: "5432" DB_POSTGRESDB_DATABASE: n8n DB_POSTGRESDB_USER: n8n DB_POSTGRESDB_PASSWORD: ${N8N_DB_PASSWORD} # NEVER lose this key -- all stored credentials are encrypted with it N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY} GENERIC_TIMEZONE: Asia/Kolkata TZ: Asia/Kolkata N8N_DIAGNOSTICS_ENABLED: "false" N8N_VERSION_NOTIFICATIONS_ENABLED: "false" volumes: - n8n_data:/home/node/.n8n networks: - dokploy-network - n8n_internal # Container-level labels (docker provider) labels: - "traefik.enable=true" - "traefik.docker.network=dokploy-network" - "traefik.http.routers.n8n.rule=Host(`automate.manohargupta.com`)" - "traefik.http.routers.n8n.entrypoints=websecure" - "traefik.http.routers.n8n.tls.certresolver=letsencrypt" - "traefik.http.services.n8n.loadbalancer.server.port=5678" # Service-level labels (swarm provider) -- Dokploy deploys as swarm stack deploy: labels: - "traefik.enable=true" - "traefik.docker.network=dokploy-network" - "traefik.http.routers.n8n.rule=Host(`automate.manohargupta.com`)" - "traefik.http.routers.n8n.entrypoints=websecure" - "traefik.http.routers.n8n.tls.certresolver=letsencrypt" - "traefik.http.services.n8n.loadbalancer.server.port=5678" volumes: n8n_data: n8n_db_data: networks: dokploy-network: external: true n8n_internal: driver: bridge