n8n, uygulamalarını ve servislerini görsel bir düzenleyicide birbirine bağlayarak işlerini otomatikleştirmeni sağlayan bir iş akışı aracı. Bir form doldurulduğunda Telegram'a bildirim göndermek, yeni bir siparişi tabloya yazmak ya da gelen e-postaları bir yapay zekâ modeliyle sınıflandırmak gibi işleri kod yazmadan, kutucukları birbirine bağlayarak kuruyorsun. En sevilen tarafı da kendi sunucuna kurulabilmesi: verilerin senin sunucunda kalıyor, iş akışı sayısına göre ödeme yapmıyorsun. Bu yazıda n8n'in ne olduğunu, kendi sunucuna nasıl kurulacağını, lisansının nerede sınır koyduğunu ve kapatman gereken kritik açıkları anlatıyorum.
Türkiye'de de ilgi büyüyor: Google Trends'te son üç ayda "n8n nedir" aramaları yüzde 50 arttı. Aynı dönemde bu araçla birlikte aranan yapay zekâ ajanı araçları da hızla yükseldi.
Bir bakışta
- Ne: Görsel düğümlerle çalışan iş akışı otomasyon platformu
- Güncel kararlı sürüm: 2.46.6 (4 Kasım 2026); 3.x sürümleri henüz ön sürüm aşamasında
- Lisans: Sustainable Use License; kendi iç işlerin ve kişisel kullanım için serbest
- Kurulum: Docker önerilir; npm ile kurulum 3.0 sürümüyle kullanımdan kalkıyor
- Varsayılan port: 5678
- Kritik açıklar: CVE-2026-21858 (CVSS 10.0) ve CVE-2025-68613 (CVSS 9.9); eski 1.x kurulumları mutlaka güncellenmeli
n8n nedir, ne işe yarar?
Bu araçta her otomasyona iş akışı (workflow) deniyor. Bir iş akışı bir tetikleyiciyle başlıyor: bir webhook'a gelen istek, bir form, belirli bir saat ya da yeni bir e-posta. Ardından gelen düğümler (node) veriyi alıp işliyor ve bir sonraki adıma aktarıyor. Her düğüm bir servise ya da bir işleme karşılık geliyor; e-posta göndermek, veritabanına yazmak, bir API'yi çağırmak ya da bir yapay zekâ modeline soru sormak gibi.
Gündelik kullanımda en sık kurulan iş akışlarına birkaç örnek:
- Sitendeki iletişim formu doldurulunca mesajı Telegram'a ve e-postana göndermek
- Yeni bir siparişi Google Sheets'e yazıp müşteriye teşekkür e-postası atmak
- Blogundaki yeni yazıyı sosyal medya hesaplarında paylaşmak
- Gelen destek e-postalarını bir yapay zekâ modeliyle konusuna göre etiketlemek
- Her sabah belirli kaynaklardan veri toplayıp tek bir rapor hâline getirmek
Zapier ve Make'ten farkı ne?
Zapier ve Make de benzer işleri yapıyor ama yalnızca bulutta çalışıyor ve genellikle işlem sayısına göre ücretlendiriliyor. n8n'in farkı, kendi sunucuna kurulabilmesi. Kendi sunucunda verilerin üçüncü bir şirketin altyapısından geçmiyor ve iş akışını istediğin kadar çalıştırabiliyorsun; sınırı sunucunun gücü belirliyor. Bunun karşılığında kurulum, güncelleme ve güvenlik senin sorumluluğuna geçiyor.
Lisans: kendi sunucunda ücretsiz mi?
Bu araç tam anlamıyla açık kaynak değil, "fair-code" olarak tanımlanıyor ve Sustainable Use License ile dağıtılıyor. Lisansın iki temel sınırı şöyle:
- Yazılımı yalnızca kendi iç iş amaçların için ya da ticari olmayan veya kişisel kullanım için kullanabilir ve değiştirebilirsin.
- Yazılımı başkalarına yalnızca ücretsiz ve ticari olmayan amaçlarla dağıtabilir ya da sunabilirsin.
Yani şirketinin kendi iş akışları için kendi sunucuna kurmak serbest. Ama yazılımı barındırıp başkalarına ücretli bir hizmet olarak sunmak bu sınırlara takılabiliyor. Ayrıca adında .ee. geçen kaynak kod dosyaları kurumsal özelliklere ait ve ayrı bir kurumsal lisans gerektiriyor. Müşterilerine bu araca dayalı bir hizmet satmayı düşünüyorsan lisans metnini dikkatle oku; gerekirse hukuki destek al.
n8n nasıl kurulur?
Denemenin ve kurmanın birkaç yolu var. Resmî belgeler Docker'ı öneriyor; npm ile kurulum ise 3.0 sürümünden itibaren kullanımdan kalkacak.
Hızlı deneme: npx
Bilgisayarında Node.js 20.19 ile 24.x arasında bir sürüm kuruluysa, hiçbir şey kurmadan şu komutla açabilirsin:
npx n8nArdından tarayıcında http://localhost:5678 adresine git. Bu yöntem denemek için ideal ama kalıcı bir kurulum için Docker daha doğru seçim.
Docker ile kurulum
Önce verilerin kalıcı olması için bir Docker birimi (volume) oluşturuyorsun, ardından kapsayıcıyı başlatıyorsun. Resmî belgelerdeki komutun saat dilimi İstanbul'a ayarlanmış hâli şöyle:
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Europe/Istanbul" \
-e TZ="Europe/Istanbul" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-v n8n_data:/home/node/.n8n \
n8nio/n8nBurada iki saat dilimi değişkeni var ve ikisi de önemli: TZ sistemin saatini, GENERIC_TIMEZONE ise zamanlanmış iş akışlarının saatini belirliyor. Bunu atlarsan "her sabah 9'da" kurduğun iş akışı farklı bir saatte çalışabilir.
Sunucuda kalıcı çalıştırma ve HTTPS
Yukarıdaki komut, terminali kapattığında duran bir deneme kurulumu. Bir VPS'te sürekli çalışması ve bir alan adı üzerinden HTTPS ile açılması için komutu şöyle uyarlayabilirsin. Bu, resmî komutun sunucu için düzenlenmiş bir örneği:
docker run -d --restart unless-stopped \
--name n8n \
-p 127.0.0.1:5678:5678 \
-e GENERIC_TIMEZONE="Europe/Istanbul" \
-e TZ="Europe/Istanbul" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_HOST=otomasyon.alanadin.com \
-e N8N_PROTOCOL=https \
-e N8N_WEBHOOK_URL=https://otomasyon.alanadin.com/ \
-e N8N_PROXY_HOPS=1 \
-v n8n_data:/home/node/.n8n \
n8nio/n8nÖnemli noktalar:
- 127.0.0.1:5678 ile port yalnızca sunucunun içinden erişilebilir oluyor. Dışarıdan erişimi Nginx ya da Caddy gibi bir ters vekil (reverse proxy) HTTPS ile sağlıyor.
- N8N_WEBHOOK_URL, webhook adreslerinin doğru oluşması için gerekli. Ters vekil arkasında uygulama içeride 5678'de çalışıyor ama dışarıya 443'ten açılıyor; bu değişken olmazsa webhook adresleri yanlış görünüyor. Dikkat: eski rehberlerde geçen
WEBHOOK_URL, 2.35.0 sürümünden beri kullanımdan kalktı; yerine bu değişkeni kullan. - N8N_PROXY_HOPS=1, uygulamaya önünde bir ters vekil olduğunu söylüyor. Vekilin
X-Forwarded-For,X-Forwarded-HostveX-Forwarded-Protobaşlıklarını iletmesi gerekiyor.
SQLite mi, PostgreSQL mi?
Varsayılan olarak iş akışları, kimlik bilgilerini ve çalışma kayıtlarını SQLite veritabanında tutuyor. Küçük ve orta ölçekli kullanım için bu yeterli. İş akışı sayın ve çalışma sıklığın arttığında DB_TYPE=postgresdb ve DB_POSTGRESDB_* değişkenleriyle PostgreSQL'e geçebilirsin. PostgreSQL kullansan bile .n8n klasörünü kalıcı tutmalısın; çünkü şifreleme anahtarı orada duruyor.
Nasıl güncellenir?
Docker kurulumunda güncelleme, yeni imajı çekip kapsayıcıyı yeniden oluşturmaktan ibaret. Veriler birimde durduğu için kaybolmuyor:
docker pull n8nio/n8n
docker stop n8n
docker rm n8n
# ardından yukarıdaki docker run komutunu yeniden çalıştırDocker Compose kullanıyorsan docker compose pull, docker compose down ve docker compose up -d komutları aynı işi görüyor. Güncellemeden önce birimin yedeğini almayı alışkanlık hâline getir.
Paylaşımlı hostinge kurulur mu?
Genellikle hayır. Bu araç sürekli çalışan bir Node.js süreci ve kalıcı bir veri klasörü istiyor; düzenleyici de gerçek zamanlı bağlantı kullanıyor. Paylaşımlı hosting paketleri bunları çoğu zaman sağlamıyor. Bir VPS ya da Docker kurulabilen bir sunucu en sorunsuz seçenek.
Bulut fiyatları
Sunucuyla uğraşmak istemiyorsan geliştiricinin kendi bulut hizmetini kullanabilirsin. Resmî fiyat sayfasındaki tablo şöyle (8 Kasım 2026, yıllık ödeme):
| Plan | Aylık fiyat | Aylık çalıştırma |
|---|---|---|
| Starter | 20 avro | 2.500 |
| Pro | 50 avro | 10.000 |
| Business | 667 avro | 40.000 |
| Enterprise | Teklif usulü | İhtiyaca göre |
Business planı yalnızca kendi sunucuna kurulan sürüm için sunuluyor. Standart, kendi sunucuna kuracağın sürüm (Community Edition) ise GitHub'da yayımlanıyor. Bulutta her iş akışı çalıştırması sayılıyor; çok sık çalışan otomasyonlarda kendi sunucun hızla daha ekonomik hâle geliyor.
n8n güvenliği: kendi sunucundaki kurulumu korumak
Aracı kendi sunucunda çalıştırmak, güvenliği de senin işin yapıyor. İçinde e-posta, veritabanı ve API hesaplarına ait kimlik bilgileri duruyor. Ele geçirilen bir kurulum, bağlı olduğu her servise açılan bir kapı demek.
Bilmen gereken iki kritik açık
- CVE-2026-21858 (CVSS 10.0): 1.65.0 ile 1.121.0 arasındaki sürümlerde, bazı form tabanlı iş akışları üzerinden kimlik doğrulaması olmayan bir saldırgan sunucudaki dosyalara erişebiliyordu. Açık 1.121.0 sürümünde kapatıldı.
- CVE-2025-68613 (CVSS 9.9): 0.211.0'dan itibaren, iş akışı ifadelerinin değerlendirilmesinde uzaktan kod çalıştırma açığı vardı. Oturum açmış bir kullanıcı, n8n sürecinin yetkileriyle kod çalıştırabiliyordu. Açık 1.120.4, 1.121.1 ve 1.122.0 sürümlerinde kapatıldı.
Bu iki açık da 2.x sürümlerinde kapalı. Yıllardır güncellenmeden çalışan eski bir 1.x kurulumun varsa önceliğin güncellemek olmalı.
Güvenlik kontrol listesi
- Güncel kal. Kararlı sürüm dalını izle ve güvenlik güncellemelerini bekletme.
- Portu internete açma. 5678'i yalnızca yerel adrese bağla, dışarıya HTTPS'li bir ters vekil üzerinden aç.
- Şifreleme anahtarını yedekle. Kimlik bilgileri bir anahtarla şifreleniyor;
N8N_ENCRYPTION_KEYile kendin belirlemezsen uygulama rastgele bir anahtar üretip.n8nklasörüne yazıyor. Bu klasörü kaybedersen kayıtlı kimlik bilgilerini çözemezsin. - Düzenleme yetkisini sınırla. İş akışı oluşturma ve düzenleme yetkisini yalnızca güvendiğin kişilere ver; CVE-2025-68613 gibi açıklar oturum açmış kullanıcıları kullanıyordu.
- Herkese açık formlara dikkat et. Form ve webhook tetikleyicileri dışarıdan çağrılabilir; gereksiz olanları kapat, gerekenlere kimlik doğrulaması ekle.
- Düzenli yedek al. Hem Docker birimini hem de varsa PostgreSQL veritabanını yedekle.
İlk iş akışın: iletişim formundan Telegram'a bildirim
Aracı öğrenmenin en iyi yolu basit bir iş akışı kurmak. Sitendeki iletişim formuna bir mesaj geldiğinde Telegram'a bildirim gönderen bir akış şöyle kurulabilir:
- Yeni bir iş akışı aç ve tetikleyici olarak Webhook düğümünü ekle; sana bir webhook adresi verilecek.
- Sitendeki formun gönderildiği yerde bu adrese bir POST isteği yap. PHP ya da Node.js tarafında birkaç satırlık bir istek yeterli.
- Ardına bir Telegram düğümü ekle, botunun jetonunu kimlik bilgisi olarak kaydet ve mesaj metnine formdan gelen ad, e-posta ve mesaj alanlarını yerleştir.
- İş akışını kaydet, etkinleştir ve formu bir kez doldurarak dene.
Formdan gelen veriyi kendi sunucunda nasıl işleyeceğini merak ediyorsan Node.js ile 10 satırda REST API yazımız iyi bir başlangıç olur.
Sık sorulan sorular
n8n ücretsiz mi?
Kendi sunucuna kurduğun standart sürüm, kendi iş akışların ve kişisel kullanım için ücretsiz. Bulut hizmeti ise aylık ücretli. Başkalarına ücretli hizmet olarak sunmak lisans sınırlarına takılabilir.
Kod bilmeden kullanılabilir mi?
Evet. İş akışlarının çoğu düğümleri sürükleyip bağlayarak kuruluyor. Gerektiğinde JavaScript ile kod düğümü yazabilmek ise ileri seviye işleri kolaylaştırıyor.
Yapay zekâ ajanı kurabilir miyim?
Evet. Yapay zekâ modellerini iş akışlarına bağlamak için düğümler var. Adımları belli otomasyonlar için n8n, sohbet uygulamasından serbest biçimli istekler alan kişisel bir ajan için ise OpenClaw daha uygun olabilir.
WEBHOOK_URL mi, N8N_WEBHOOK_URL mi?
Güncel sürümlerde N8N_WEBHOOK_URL. Eski WEBHOOK_URL değişkeni 2.35.0'dan beri kullanımdan kalktı; hâlâ kullanırsan günlüğe uyarı yazılıyor.
Hangi Node.js sürümü gerekiyor?
npm ile kurulumda Node.js 20.19 ile 24.x arası destekleniyor. Docker kullanırsan Node.js'i ayrıca kurman gerekmiyor; imajın içinde geliyor.
Sonuç
n8n, tekrar eden işlerini otomatikleştirmenin en esnek yollarından biri; kendi sunucuna kurduğunda da verilerin ve maliyetin senin kontrolünde kalıyor. Docker ile kur, portu internete açma, şifreleme anahtarını yedekle ve güncellemeleri bekletme. Kodlama tarafında yapay zekâdan yardım almak istersen Claude Code rehberimize, hazır Node.js projeleri için Node.js uygulamalarımıza göz atabilirsin. Sunucu kurulumu ya da otomasyon için destek gerekiyorsa bize yazabilirsin.
Bu yazı 8 Kasım 2026 itibarıyla resmî belgelere göre hazırlandı. Fiyatlar, sürümler ve ayarlar değişebilir; güncel bilgi için kaynaklara bak.

