Sparround

Self-hosting: Docker, konfiqurasiya, miqyaslama

Self-hosted n8n bir neçə yolla qurula bilər: Docker, Docker Compose, npm, bir sətirlik quraşdırma skripti və ya bulud provayderlərində hazır şablonlar (AWS, Azure, Google Cloud Run, Kubernetes, Hetzner, Digital Ocean və s.).

Öyrənmək üçün tək Docker konteyneri kifayətdir. Produksiya üçün Docker Compose daha uyğundur, çünki n8n-in yanında verilənlər bazası da qaldırılmalıdır.

Produksiya üçün minimum tələblər:

  • Xarici verilənlər bazası (adətən PostgreSQL) — standart SQLite tək instansiya və kiçik yük üçündür
  • HTTPS və düzgün domen — webhook URL-ləri xarici sistemlərə verilir
  • Şifrələmə açarının idarə olunması — credential-lar onunla şifrələnir
  • İcra datasının təmizlənməsi — köhnə icralar bazanı şişirdir
  • Backup — baza və şifrələmə açarı birlikdə

Konfiqurasiya mühit dəyişənləri ilə aparılır. n8n-in geniş dəyişən dəsti var və onlar mövzular üzrə qruplaşdırılıb: verilənlər bazası, icralar, endpoint-lər, binary data, credential-lar, təhlükəsizlik, queue mode, task runner-lər və s.

Ən çox toxunulan sahələr:

  • Verilənlər bazası — PostgreSQL-ə keçid
  • Endpoint-lər — webhook URL-inin xaricdən görünən ünvanı; bu düzgün qurulmasa webhook-lar səhv ünvan göstərir
  • İcralar — hansı icraların saxlanacağı və nə qədər saxlanacağı
  • Binary data — böyük faylların yaddaşda, yoxsa fayl sistemində saxlanması
  • Node-lar — müəyyən node-ları tamamilə söndürmək (məsələn diskə çıxışı olanları)

Şifrələmə açarı ayrıca diqqət tələb edir: standart olaraq ilk işə salınanda generasiya olunur, amma produksiyada onu özün təyin etmək və mühit dəyişəni kimi idarə etmək düzgündür. n8n açarın rotasiyası üçün ayrıca prosedur da təqdim edir.

RejimNecə işləyirNə vaxt lazımdır
Tək instansiya (main)Bir n8n prosesi həm trigger-ləri dinləyir, həm icra edirKiçik və orta yük — əksər komandalar üçün kifayətdir
Queue modeMain instansiya trigger-ləri qəbul edir və icranı Redis növbəsinə qoyur; worker-lər növbədən götürüb icra edirYüksək yük, paralel icra, worker sayını artırıb-azaltmaqla miqyaslama

Queue mode-un vacib məhdudiyyəti: binary datanın fayl sistemində saxlanması ilə birlikdə dəstəklənmir. Workflow-larınız queue mode-da böyük faylları saxlamalıdırsa, S3 kimi xarici saxlama işlətmək lazımdır. Bu, arxitektura qərarını əvvəlcədən verməyi tələb edir.

Queue mode-da işləmə ardıcıllığı belədir:

1. Main instansiya taymerləri və webhook çağırışlarını emal edir və icra yaradır — amma onu işlətmir 2. İcra ID-sini Redis-ə ötürür; Redis gözləyən icraların növbəsini saxlayır 3. Boş olan worker növbədən mesajı götürür 4. Worker icra ID-si ilə bazadan workflow məlumatını alır və icra edir 5. Bitirəndən sonra nəticəni bazaya yazır və Redis-ə bitdiyini bildirir 6. Redis main instansiyanı xəbərdar edir

Hər worker öz Node.js instansiyasıdır və eyni anda bir neçə icra apara bilir. Yükü artırmaq üçün worker əlavə edirsən, azaltmaq üçün çıxarırsan.

Bu quruluşda şifrələmə açarı bütün instansiyalarda eyni olmalıdır — əks halda worker-lər credential-ları aça bilmir.

📚 Mənbələr və sənədlər