Language: az
VPS-də n8n: əl əməyini azaltmaq üçün öz avtomatlaşdırma platformanız
Saytdan sorğu daxil olur. n8n məlumatları yoxlayır, dublikatları axtarır, sövdələşmə yaradır, AI ilə cavab layihəsi hazırlayır və Telegram-da menecerə bildiriş göndərir. İnsan yalnız qərar lazım olduqda prosesə qoşulur — məlumatları brauzer vərəqləri arasında köçürmək üçün deyil.
Aşağıda n8n-in necə işlədiyini və onu Docker Compose, PostgreSQL, HTTPS və təcrid olunmuş kod icrası ilə VPS-ə necə quraşdırmağı nəzərdən keçirəcəyik.
n8n-i yeddi addımda işə salmaq
Minimal işə salma planı:
- VPS yaradın və subdomeni ona yönəldin, məsələn
n8n.example.com. - Docker və Docker Compose quraşdırın.
- n8n-i PostgreSQL, xarici tapşırıq icraçısı və Caddy ilə işə salın.
- İnterfeysi HTTPS üzərindən açın və sahib hesabı yaradın.
- Telegram, CRM, e-poçt və ya istənilən xarici API-ni qoşun.
- Səhvlərin idarə edilməsini və icra məlumatlarının saxlanma müddətini tənzimləyin.
- Verilənlər bazasının, məlumatların və şifrələmə açarının ehtiyat nüsxəsini avtomatlaşdırın.
Kiçik istehsal quraşdırması üçün 2 vCPU və 4 GB RAM ilə başlamaq məntiqlidir. Testlər üçün çox vaxt 2 GB kifayətdir, lakin PostgreSQL, Docker və paralel proseslər qalan resursu tez istifadə edir.
n8n nədir və necə işləyir
n8n iş axınlarının avtomatlaşdırılması platformasıdır. İş axını qovşaqlardan qurulur: biri prosesi başladır, növbəti qovşaqlar məlumatı alıb dəyişir, sonuncu qovşaq isə əməli yerinə yetirir.
Sadə iş axını belə görünür:
Webhook → data validation → CRM → Telegram → website response
Zəncir webhook, cədvəl, e-poçt, mesaj və ya xarici xidmətdəki hadisə ilə başlana bilər. Qovşaqlar arasında şərtlər, dövrlər, filtrlər, gözləmələr və səhvlərin idarə edilməsi mövcuddur.
n8n-in üstünlüklərindən biri avtomatlaşdırmanın hazır inteqrasiyalarla məhdudlaşmamasıdır. HTTP Request vasitəsilə API-si olan istənilən xidmətə müraciət edə, Code qovşağında JavaScript və ya Python ilə xüsusi məntiq yaza bilərsiniz. Buna görə n8n sadə no-code konstruktorla xüsusi server tərəfi kodu arasında bir yerdə dayanır.
Niyə bu, yalnız məlumat ötürməkdən daha çoxdur
n8n proses bir neçə sistemi əhatə etdikdə və qərar tələb etdikdə faydalıdır:
form → validation → duplicate search → AI assessment → manager approval → CRM
İnsanı yalnız nəzarət nöqtəsində saxlamaq olar. Məsələn, AI cavab hazırlayır, lakin mesaj müştəriyə yalnız əməkdaş onu təsdiqlədikdən sonra göndərilir.
Tipik istifadə ssenariləri:
- satış və dəstək: sorğuların toplanması, potensial müştərilərin bölüşdürülməsi və sövdələşmələrin yaradılması;
- kontent və AI: qaralamaların hazırlanması, müraciətlərin təsnif edilməsi və təsdiqdən sonra dərc;
- DevOps: kəsinti bildirişləri, Git webhook-ları və API yoxlamaları;
- daxili əməliyyatlar: cədvəllərin, e-poçtun, təqvimlərin və korporativ sistemlərin sinxronlaşdırılması.
Self-hosted quraşdırma prosesə və verilənlər bazasına nəzarət imkanı verir, lakin xarici xidmətləri lokal etmir. Telegram-a, CRM-ə və ya bulud AI modelinə göndərilən məlumat VPS-dən kənara çıxır.
n8n Cloud, yoxsa öz serveriniz
| Parametr | n8n Cloud | VPS-də n8n |
|---|---|---|
| İşə salma | Server quraşdırması tələb olunmur | Domen, Docker və HTTPS tələb olunur |
| Yeniləmələr | n8n tərəfindən idarə edilir | Sahib tərəfindən idarə edilir |
| Verilənlər bazası və fayllar | Xidmətin infrastrukturunda | Seçilmiş serverdə |
| Miqyaslama | Bulud planına uyğun | Müstəqil şəkildə tənzimlənir |
| Məsuliyyət | Daha az administrasiya | Ehtiyat nüsxələr, təhlükəsizlik və monitorinq sahibin məsuliyyətidir |
| Kimlər üçün | DevOps olmadan sürətli başlanğıc | Nəzarət, fərdiləşdirmə və daim işləyən proseslər |
Community Edition şəxsi və daxili biznes prosesləri üçün öz serverinizdə pulsuz self-hosted edilə bilər. Lakin n8n ənənəvi açıq mənbə lisenziyası ilə deyil, fair-code Sustainable Use License ilə yayılır. Bu lisenziya daxili istifadəyə və dəyişikliklərə icazə verir, amma n8n-i sadəcə yerləşdirib öz loqonuzu əlavə edərək müstəqil SaaS kimi giriş satmağa imkan vermir. Belə məhsul üçün lisenziya şərtlərini ayrıca araşdırmaq lazımdır.
n8n server tələbləri
Yük məlumatın həcmi, paralellik və əməliyyatların növündən asılıdır. Fayllar, uzun siyahılar, Code qovşaqları və AI iş axınları API-lər arasında kiçik JSON paketlərinin ötürülməsindən daha çox yaddaş tələb edir.
| Ssenari | Başlanğıc konfiqurasiyası |
|---|---|
| Testlər və şəxsi mətn əsaslı iş axınları | 1 vCPU, 2 GB RAM, 20 GB NVMe |
| Kiçik istehsal quraşdırması | 2 vCPU, 4 GB RAM, 25–40 GB NVMe |
| Paralel proseslər, AI və ya fayllar | 4 vCPU, 8 GB RAM və ya daha çox |
| Queue mode-da bir neçə worker prosesi | İcra həcminə uyğun ölçü |
SQLite öyrənmək və kiçik tək instansiyalı quraşdırma üçün uyğundur. PostgreSQL istehsal mühiti üçün daha rahatdır: ehtiyat nüsxə almaq asandır və sonradan queue mode-a keçid sadələşir.
n8n-i VPS-ə necə quraşdırmalı
Bu nümunədə Ubuntu 24.04, PostgreSQL, Caddy və xarici tapşırıq icraçısından istifadə edilir. n8n.example.com və saat qurşağını öz dəyərlərinizlə əvəz edin.
1. DNS-i tənzimləyin və serveri hazırlayın
VPS-in IPv4 ünvanına göstərən A DNS yazısı yaradın, sonra SSH ilə qoşulun:
ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y ca-certificates curl ufw opensslDocker Engine-i və Compose plaginini rəsmi repozitoridən quraşdırın:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionYalnız SSH, HTTP və HTTPS-ə icazə verin:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableYeni bağlantının işlədiyini təsdiqləməyənə qədər cari SSH sessiyasını bağlamayın.
2. Mühit dəyişənlərini yaradın
Kataloqu hazırlayın:
mkdir -p /opt/n8n
cd /opt/n8n.env faylı yaradın. Aşağıdakı əmrlər PostgreSQL, n8n şifrələməsi və tapşırıq icraçısı üçün dərhal ayrıca təsadüfi gizli açarlar yaradır:
cat > .env <<EOF
N8N_VERSION=stable
N8N_HOST=n8n.example.com
GENERIC_TIMEZONE=Europe/Berlin
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=$(openssl rand -hex 32)
N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
RUNNERS_AUTH_TOKEN=$(openssl rand -hex 32)
EOF
chmod 600 .envstable teqi ilk işə salma üçün rahatdır. Quraşdırmanı yoxladıqdan sonra konkret n8n versiyasını sabitləmək daha yaxşıdır; beləliklə növbəti image yeniləməsi gözlənilmədən baş verməz.
N8N_ENCRYPTION_KEY itirilməməlidir. n8n saxlanılan parolları, tokenləri və digər giriş məlumatlarını şifrələmək üçün bu açardan istifadə edir. Yalnız PostgreSQL-i açar olmadan bərpa etsəniz, qeydlər verilənlər bazasında qalacaq, lakin n8n onları oxuya bilməyəcək.
3. Docker Compose faylını yaradın
compose.yaml yaradın:
services:
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PGDATA: /var/lib/postgresql/data
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
restart: unless-stopped
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: "5432"
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
DB_POSTGRESDB_USER: ${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
N8N_HOST: ${N8N_HOST}
N8N_PORT: "5678"
N8N_PROTOCOL: https
N8N_EDITOR_BASE_URL: https://${N8N_HOST}
N8N_WEBHOOK_URL: https://${N8N_HOST}/
N8N_PROXY_HOPS: "1"
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}
TZ: ${GENERIC_TIMEZONE}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
N8N_BLOCK_ENV_ACCESS_IN_NODE: "true"
N8N_RUNNERS_MODE: external
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
EXECUTIONS_DATA_PRUNE: "true"
EXECUTIONS_DATA_MAX_AGE: "168"
EXECUTIONS_DATA_PRUNE_MAX_COUNT: "10000"
volumes:
- n8n_data:/home/node/.n8n
expose:
- "5678"
depends_on:
postgres:
condition: service_healthy
n8n-runner:
image: n8nio/runners:${N8N_VERSION}
restart: unless-stopped
environment:
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_TASK_BROKER_URI: http://n8n:5679
depends_on:
- n8n
caddy:
image: caddy:2-alpine
restart: unless-stopped
environment:
N8N_HOST: ${N8N_HOST}
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- n8n
volumes:
postgres_data:
name: n8n_postgres_data
n8n_data:
name: n8n_data
caddy_data:
name: n8n_caddy_data
caddy_config:
name: n8n_caddy_configXarici tapşırıq icraçısı kodu əsas n8n prosesindən ayrı işlədir. Bu, daxili rejimdən daha təhlükəsizdir və Code qovşağındakı xətanın editor və webhook emalına təsir etməsi ehtimalını azaldır.
4. HTTPS-i aktivləşdirin
Caddyfile yaradın:
{$N8N_HOST} {
reverse_proxy n8n:5678
}DNS artıq VPS-i göstərirsə və 80 və 443 portlarına giriş mümkündürsə, Caddy TLS sertifikatını avtomatik əldə edəcək. Daxili 5678 portu internetə açılmır: xaricdən yalnız 80 və 443 portları əlçatandır, Caddy isə n8n-ə Docker şəbəkəsi üzərindən çıxır.
N8N_WEBHOOK_URL və N8N_PROXY_HOPS dəyişənləri editorun düzgün açıq webhook ünvanları yaratması və bir reverse proxy-dən gələn başlıqlara etibar etməsi üçün lazımdır.
5. n8n-i işə salın
Son konfiqurasiyanı yoxlayın və konteynerləri işə salın:
docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100 n8n caddyAşağıdakı ünvanı açın:
https://n8n.example.comSahib hesabı yaradın. Onun parolunu həmkarlarınızla paylaşmayın: komanda işi üçün ayrıca hesablar yaradın və hər kəsə yalnız ehtiyacı olan icazələri verin.
İlk faydalı iş axınınız
Yaxşı test saytdan gələn sorğunun emal edilməsidir:
WebhookqovşağınıPOSTmetodu ilə əlavə edin.- Yalnız ad, e-poçt ünvanı və mənbə sahələrini saxlamaq üçün
Edit Fieldsistifadə edin. - Lazımi məlumatları olmayan sorğunu rədd etmək üçün
Ifqovşağından istifadə edin. - CRM-də sövdələşmə yaradın və ya
HTTP Requestvasitəsilə sorğu göndərin. - Telegram bildirişi əlavə edin.
- Zənciri
Respond to Webhookqovşağı ilə tamamlayın. - Testdən sonra iş axınını aktivləşdirin və test webhook-unu istehsal URL-i ilə əvəz edin.
Bu nümunə domeni, HTTPS-i, daxil olan sorğuları, giriş məlumatlarını və xarici inteqrasiyanı dərhal yoxlayır. Növbəti addımda əsas zəncir uğursuz olduqda sizə xəbər verəcək ayrıca Error Workflow əlavə edin.
Quraşdırmadan sonra n8n-in qorunması
Quraşdırılmış n8n avtomatik olaraq etibarlı sistem demək deyil. İşə saldıqdan sonra əmin olun ki:
- editor yalnız HTTPS üzərindən əlçatandır;
.envfaylının icazələri600-dür və Git-ə göndərilmir;- xarici API açarlarının yalnız lazım olan icazələri var;
- hər webhook mənbənin imzasını və ya gizli açarını yoxlayır;
- icra tarixçəsi avtomatik silinir;
- kritik iş axınlarındakı səhvlər administratora göndərilir.
Community qovşaqları paket kimi quraşdırılır və iş axını məlumatlarına, eləcə də serverə giriş əldə edə bilər. Naməlum qovşaqları yoxlamadan əlavə etməyin. Onlara ehtiyacınız yoxdursa, N8N_COMMUNITY_PACKAGES_ENABLED=false ilə deaktiv edin.
Daxili auditi işə salın:
docker compose exec n8n n8n auditBu alət qorunmayan webhook-ları, riskli qovşaqları və giriş məlumatı problemlərini müəyyən etməyə kömək edir, lakin əl ilə yoxlamanı əvəz etmir.
İcra tarixçəsi və şəxsi məlumatlar
n8n sazlama üçün giriş və çıxış məlumatlarını saxlayır. Bununla yanaşı e-poçt mesajları, telefon nömrələri, sənədlər və API cavabları da verilənlər bazasında qala bilər.
Yuxarıdakı konfiqurasiyada icralar yeddi gündən sonra silinir və sayı 10 000 ilə məhdudlaşdırılır. Həssas proseslər üçün saxlama müddətini məlumatların saxlanması siyasətinizə uyğun seçin və iş axını bitməzdən əvvəl lazımsız sahələri silin.
Ehtiyat nüsxələri və yeniləmələr
Bərpa üçün PostgreSQL dump-ı, n8n_data volume-u, konfiqurasiya faylları və .env faylında saxlanan N8N_ENCRYPTION_KEY lazımdır. Köçürmədən əvvəl PostgreSQL işlək qalmaqla prosessorları dayandırın. Bu, iş axınlarının icrasında qısa fasilə yaradır:
cd /opt/n8n
mkdir -p backup
docker compose stop n8n n8n-runner
docker compose exec -T postgres sh -c \
'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' \
| gzip > "backup/n8n-db-$(date +%F).sql.gz"
docker run --rm \
-v n8n_data:/source:ro \
-v "$PWD/backup":/backup \
alpine sh -c \
'tar -czf /backup/n8n-data-$(date +%F).tar.gz -C /source .'
tar -czf "backup/n8n-config-$(date +%F).tar.gz" \
.env compose.yaml Caddyfile
docker compose start n8n n8n-runner.env olan arxiv gizli məlumatları ehtiva edir: onu şifrələyin və VPS-dən kənarda saxlayın. Ehtiyat nüsxəsini vaxtaşırı sınaq bərpası ilə yoxlayın.
Yeniləmədən əvvəl ehtiyat nüsxə yaradın və buraxılış qeydlərini nəzərdən keçirin:
cd /opt/n8n
docker compose pull
docker compose up -d
docker compose psTapşırıq icraçısı və əsas konteyner eyni versiya teqindən istifadə etməlidir.
Nə vaxt miqyaslamaq lazımdır
Real yük yaranmadan Redis-i və bir neçə worker-i işə salmayın. PostgreSQL ilə bir instansiyanı saxlamaq daha asandır və adətən kiçik daxili prosesləri əhatə edir.
Queue mode uzunmüddətli tapşırıqlar webhook-ları gecikdirdikdə, çoxlu iş axını eyni vaxtda başladıqda və ya fayl emalı mövcud yaddaşı mütəmadi olaraq tükətdikdə lazım olur. Bu quruluşda əsas instansiya hadisələri qəbul edir, Redis işləri paylayır, worker-lər isə onları paralel icra edir. Bütün komponentlər eyni PostgreSQL verilənlər bazasına qoşulmalı və eyni N8N_ENCRYPTION_KEY-dən istifadə etməlidir.
n8n üçün hansı VPS-i seçmək lazımdır
n8n, PostgreSQL, Caddy və tapşırıq icraçısını birlikdə işlətmək üçün 2 vCPU, 4 GB RAM və NVMe disk ilə başlamaq məntiqlidir. tropic.host-da Light planı bu konfiqurasiyaya uyğundur: 2 vCPU, 4 GB RAM və 25 GB NVMe. Bu, ağır fayl emalı olmadan ilk istehsal iş axınları üçün kifayətdir.
Sənədlər, böyük verilənlər dəstləri və çoxsaylı paralel AI iş axınları üçün 8 GB RAM daha yaxşı seçimdir. Sabit şəbəkə də vacibdir: webhook-lar, OAuth callback-ləri və planlaşdırılmış tapşırıqlar daim əlçatan qalmalıdır.
Nəticə
n8n təkrarlanan əməliyyatları aydın vizual axınlara çevirir: hazır qovşaqlar işə salmanı sürətləndirir, HTTP Request demək olar ki, istənilən API-ni qoşur, Code qovşağı isə öz məntiqinizi əlavə etməyə imkan verir.
Self-hosted versiya serverə və verilənlər bazasına nəzarət verir, lakin HTTPS, məhdudlaşdırılmış açarlar, tarixçənin təmizlənməsi və yoxlanılmış ehtiyat nüsxələri tələb edir. N8N_ENCRYPTION_KEY-i PostgreSQL ilə birlikdə saxlayın: onsuz bərpa edilmiş giriş məlumatlarını deşifrə etmək mümkün deyil.
FAQ
n8n-dən pulsuz istifadə etmək olarmı?
Bəli. Community Edition şəxsi və daxili proseslər üçün öz serverinizdə pulsuz yerləşdirilə bilər. Hosted n8n-i müstəqil SaaS kimi yenidən satmaq fair-code lisenziyası ilə məhdudlaşdırılır.
n8n-i domen olmadan quraşdırmaq olarmı?
Lokal test üçün bəli. İctimai webhook-lar və OAuth üçün domen və HTTPS istifadə etmək daha yaxşıdır.
n8n-ə nə qədər RAM lazımdır?
Sadə şəxsi iş axınları çox vaxt 2 GB RAM ilə işləyir. PostgreSQL, Caddy və tapşırıq icraçısı ilə n8n üçün 4 GB daha məqsədəuyğundur; fayllar və paralel icralar 8 GB və ya daha çox tələb edə bilər.
Bütün məlumatlar VPS-də qalırmı?
Yalnız iş axınının başqa yerə göndərmədiyi məlumatlar qalır. Verilənlər bazası və icra tarixçəsi VPS-də saxlanılır, lakin Telegram, CRM və ya xarici AI model qovşaqları seçilmiş məlumatları müvafiq xidmətə göndərir.
n8n ehtiyat nüsxəsinə nələr daxil edilməlidir?
PostgreSQL dump-ı, n8n_data volume-u, compose.yaml, Caddyfile və .env faylında saxlanan N8N_ENCRYPTION_KEY. Ehtiyat nüsxəsini VPS-dən kənarda şifrəli şəkildə saxlayın və bərpa etməklə yoxlayın.
