पाठ 22 / 25

Docker Compose के साथ Self-Hosting

n8n को server पर persistent डेटा, database और सही environment variables के साथ चलाएँ।

Production को क्या चाहिए

डेमो से आगे हर चीज़ के लिए n8n को persistent volume, भारी उपयोग के लिए डिफ़ॉल्ट SQLite की जगह PostgreSQL database, सार्वजनिक WEBHOOK_URL और timezone सेट, reverse proxy से HTTPS, और स्थिर N8N_ENCRYPTION_KEY के साथ चलाएँ। ऊँचे volume के लिए n8n में अलग workers वाला queue mode है। मौजूदा settings के लिए हमेशा आधिकारिक hosting docs देखें।

लैपटॉप से server तक

n8n को persistent storage और HTTPS के साथ चलाएँ, और workflows को कोड की तरह सँभालें।

तीन चरण: चलाना, सुरक्षा, रखरखाव।
चित्र 7.1 — चलाना, सुरक्षा और रखरखाव।

न्यूनतम Compose फ़ाइल

असली secrets .env फ़ाइल में रखें जो commit न हो। Variable नाम लिखते समय के n8n docs से हैं; अपने version के लिए जाँचें।

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    ports: ["5678:5678"]
    environment:
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - WEBHOOK_URL=https://n8n.example.com/
      - GENERIC_TIMEZONE=Asia/Kolkata
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped
volumes:
  n8n_data:

Proxy के पीछे WEBHOOK_URL सेट करें

Reverse proxy के पीछे n8n को अपना सार्वजनिक पता नहीं पता होता। WEBHOOK_URL के बिना उसके दिखाए webhook URLs ग़लत होते हैं, और बाहरी services ऐसे पतों को बुलाएँगी जो मौजूद नहीं।

त्वरित जाँच: Reverse proxy के पीछे n8n हो तो WEBHOOK_URL क्यों सेट करें?

  • यह सिर्फ़ दिखावटी है
  • Database तेज़ करने के लिए
  • Authentication बंद करने के लिए
  • ताकि बने webhook URLs सही सार्वजनिक पते का उपयोग करें
Answer

ताकि बने webhook URLs सही सार्वजनिक पते का उपयोग करें — Proxy के पीछे n8n अपना बाहरी पता अनुमान नहीं लगा सकता, इसलिए आप उसे बताते हैं।