n8n ilə iş proseslərini avtomatlaşdırmaq: VPS-də quraşdırma
Hər gün eyni əməliyyatları əl ilə təkrarlayırsınız: yeni sifarişi qrupa yazmaq, formadan gələn müraciəti cədvələ köçürmək, hesabatı e-poçtla göndərmək. n8n bu işləri vizual "ssenari" kimi qurmağa imkan verən avtomatlaşdırma platformasıdır və öz VPS-inizdə tamamilə sizin nəzarətinizdə işləyir. Bu bələdçidə n8n-i Ubuntu 24.04-də Docker ilə quraşdırır, domen və SSL bağlayır, təhlükəsizlik qaydalarını sıralayırıq.
n8n nədir
n8n mənbə kodu açıq olan (fair-code lisenziyası) iş axını avtomatlaşdırma alətidir. Brauzerdə bloklar (node) birləşdirirsiniz: biri hadisəni tutur (yeni sifariş, forma, cədvəl, vaxt), digərləri məlumatı emal edib başqa xidmətə ötürür. Yüzlərlə hazır inteqrasiya var: Telegram, Google Sheets, Gmail, WooCommerce, Slack, HTTP sorğuları və s.
Öz serverinizdə işlətməyin üstünlükləri:
- Ssenari sayına və icra sayına görə əlavə ödəniş yoxdur, yalnız server haqqı.
- Müştəri və sifariş məlumatları üçüncü tərəf bulud xidmətindən keçmir.
- Bakıdakı serverdə Azərbaycan IP-si ilə yerli xidmətlərə sorğu göndərmək mümkündür.
Nümunə ssenarilər
- Sifariş, sonra Telegram bildirişi. WooCommerce Trigger yeni sifarişi tutur, Telegram node məhsul adı, məbləğ və telefon nömrəsini satış qrupuna yazır.
- Forma, sonra Google Sheets. Saytdakı forma Webhook node-a məlumat göndərir, Google Sheets node isə hər müraciəti cədvələ yeni sətir kimi əlavə edir.
- Gündəlik hesabat. Schedule Trigger hər səhər 09:00-da işləyir, HTTP Request ilə dünənki satışları götürür və qısa xülasəni e-poçtla göndərir.
Hər ssenari eyni məntiqlə qurulur: əvvəlcə trigger (başladıcı) seçilir, sonra məlumatı emal edən bloklar əlavə olunur. Bloklar arasında məlumat ifadələrlə ötürülür, məsələn, Telegram mesajında {{ $json.total }} yazanda sifarişin məbləği avtomatik yerinə qoyulur. Ssenarini əl ilə sınayıb nəticəni hər addımda görmək olar, sonra isə ssenarini aktivləşdirib daimi işə salırsınız.
Daha mürəkkəb, öz məntiqi olan bot lazımdırsa, Telegram botu serverdə 7/24 işlətmək bələdçisi alternativ yoldur.
Server tələbləri
Kiçik və orta həcmli ssenarilər üçün 1-2 vCPU və 2 GB RAM kifayətdir. Böyük faylları emal edən və ya dəqiqədə çox icra olan axınlar üçün 4 GB RAM-a keçmək məntiqlidir. Lokasiya seçimində əsas meyar inteqrasiya etdiyiniz xidmətlərin harada olmasıdır, bu barədə Bakıda VPS, yoxsa Avropada yazısında ətraflı danışmışıq.
Quraşdırma addımları
1. Docker quraşdırılması
Ubuntu 24.04-ün öz repozitoriyasından Docker və Compose plaginini quraşdırın:
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
docker --version
Docker-ə yenisinizsə, VPS-də Docker konteynerlərindən istifadə yazısı əsas anlayışları izah edir.
2. Sürətli sınaq
n8n-in işlədiyini görmək üçün rəsmi sınaq əmri:
sudo docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Bu əmr n8n-i ön planda işə salır, Ctrl+C ilə dayanır. Brauzerdə http://SERVER_IP:5678 açanda n8n təhlükəsiz cookie barədə xəbərdarlıq göstərə bilər, çünki HTTPS yoxdur. Bu normaldır: daimi qurulum üçün aşağıdakı addımlarla domen və SSL bağlayın.
3. Daimi qurulum: Docker Compose
DNS-də n8n.sizindomen.az üçün A yazısını serverin IP-sinə yönləndirin. Sonra qovluq və fayl yaradın:
mkdir -p ~/n8n && cd ~/n8n
nano compose.yaml
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.sizindomen.az
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.sizindomen.az/
- N8N_PROXY_HOPS=1
- GENERIC_TIMEZONE=Asia/Baku
- TZ=Asia/Baku
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
sudo docker compose up -d
sudo docker compose logs -f
Diqqət edin: port 127.0.0.1 ünvanına bağlanıb. Docker dərc etdiyi portlar üçün UFW qaydalarını keçə bilir, ona görə n8n-i birbaşa internetə açmaq əvəzinə yalnız daxildən əlçatan edirik. WEBHOOK_URL isə webhook linklərinin düzgün domenlə yaranması üçün vacibdir.
4. Nginx və pulsuz SSL
sudo apt install -y nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/n8n
server {
listen 80;
server_name n8n.sizindomen.az;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo ufw allow 'Nginx Full'
sudo certbot --nginx -d n8n.sizindomen.az
Upgrade başlıqları redaktorun canlı yenilənməsi (WebSocket) üçün lazımdır. Certbot Let's Encrypt sertifikatını alır və Nginx konfiqurasiyasını HTTPS-ə avtomatik çevirir. Mövzunu daha geniş öyrənmək üçün VPS-də SSL sertifikatı qurmaq bələdçisinə baxın.
Təhlükəsizlik qaydaları
- Sahib hesabı. İlk girişdə yaradılan admin hesabına uzun, unikal parol qoyun və n8n ayarlarında iki faktorlu girişi (2FA) aktiv edin.
- Webhook-ların qorunması. Webhook ünvanını bilən hər kəs ssenarini işə sala bilər. Webhook node-un ayarlarında autentifikasiya (məsələn, Header Auth) seçin və gizli başlığı yalnız sizin saytınız göndərsin.
- Credentials. n8n API açarlarını və parolları şifrələnmiş saxlayır. Şifrələmə açarı
n8n_datahəcmindədir, həcm itərsə, saxlanan girişlər də itir. - Ehtiyat nüsxə. Həcmin adını
sudo docker volume lsilə tapın (adətənn8n_n8n_data) və müntəzəm arxivləyin:
sudo docker run --rm -v n8n_n8n_data:/data -v "$PWD":/backup alpine tar czf /backup/n8n-backup.tar.gz -C /data .
- Yeniləmə. Yeni versiyaya keçid iki əmrdir:
sudo docker compose pullvəsudo docker compose up -d. Əvvəlcə ehtiyat nüsxə alın. - Girişlərin paylaşılması. Komandaya n8n hesabı və ya API açarı verəndə komandada parol paylaşmaq qaydalarına əməl edin, açarları çatda göndərməyin.
Tez-tez verilən suallar
n8n pulsuzdur?
Öz serverinizdə daxili biznes ehtiyacları üçün işlətdiyiniz icma versiyası pulsuzdur. Lisenziya şərtlərini n8n-in rəsmi saytında oxuyun, xüsusən n8n-i başqalarına xidmət kimi satmaq niyyətiniz varsa.
Webhook işləmir, link localhost göstərir?
WEBHOOK_URL dəyişəni yoxdur və ya səhvdir. Onu tam HTTPS domeni ilə yazın və sudo docker compose up -d ilə konteyneri yenidən yaradın.
Paylaşılan hostinqdə n8n işləyərmi?
Adətən yox. n8n daimi işləyən proses və Docker tələb edir, bunun üçün root girişi olan VPS lazımdır.
Server yenidən başlayanda n8n özü qalxacaqmı?
Bəli, restart: unless-stopped və aktiv Docker xidməti sayəsində konteyner avtomatik işə düşür.
Avtomatlaşdırmaya kiçik serverlə başlamaq olar: VPS Starter (1 vCPU, 2 GB RAM) n8n üçün yaxşı başlanğıcdır, böyüdükcə VPS paketləri arasında daha güclüsünə keçə bilərsiniz. Hostinq.az-da Bakı VPS-ləri KVM virtualizasiyası və tam root girişi ilə gəlir, bu isə Docker-in işləməsi üçün lazım olan şərtdir.