n8n, iş akışlarınızı kod yazmadan otomatikleştirmenizi sağlayan açık kaynaklı bir otomasyon aracıdır. Yüzlerce servisi birbirine bağlar, veriyi tetikleyicilerle akıtır ve tekrar eden işleri sizin yerinize yapar. En büyük avantajı ise kendi sunucunuzda çalıştırabilmenizdir: verileriniz sizde kalır, çalıştırma limiti yoktur ve dilediğiniz kadar iş akışı kurarsınız.
Bu rehber n8n'in ne olduğunu, Docker ile adım adım nasıl kurulduğunu, 7/24 çalışması için neye ihtiyaç duyduğunuzu ve hiç kurulum yapmadan yönetilen bir ortamda nasıl çalıştıracağınızı somut kod örnekleriyle anlatır.
Kısa cevap: n8n'i kurmanın en yaygın yolu Docker'dır. Bir komutla imajı çekip çalıştırır, verilerinizi bir volume içinde kalıcı tutarsınız. Üretim için PostgreSQL ile birlikte docker compose kullanmak önerilir. n8n'i 7/24 çalıştırmak için açık kalan bir sunucu gerekir; sunucu yönetmek istemiyorsanız yönetilen bir platform aynı container'ı sizin yerinize çalıştırır.
n8n Nedir?
n8n (telaffuzu "n-eight-n", yani "node-mation"), görsel bir editörde iş akışları kurduğunuz bir otomasyon platformudur. Her iş akışı, birbirine bağlanan "node"lardan oluşur: bir node bir olayı dinler (yeni e-posta, form gönderimi, zamanlanmış tetikleyici), sonraki node'lar veriyi dönüştürür ve başka bir servise yazar.
Rakiplerinden temel farkı, kaynak kodunun açık olması ve kendi altyapınızda barındırılabilmesidir. Bulut tabanlı otomasyon araçları çoğu zaman aylık çalıştırma (execution) sayısına göre ücret alır. n8n'i kendiniz barındırdığınızda çalıştırma sayısında bir tavan yoktur; maliyetiniz yalnızca üzerinde çalıştığı sunucudur. Ayrıca hassas verilerin (müşteri kayıtları, API anahtarları) üçüncü bir tarafın sunucusundan geçmemesi, veri gizliliği önemli olan ekipler için belirleyici bir tercihtir.
Tipik kullanım senaryoları arasında şunlar vardır:
- Gelen formları CRM'e ve Slack'e otomatik iletmek
- Zamanlanmış görevlerle her sabah rapor toplayıp e-posta göndermek
- Bir e-ticaret siparişini muhasebe yazılımına aktarmak
- Yapay zeka modellerini API üzerinden çağırıp yanıtları bir veritabanına yazmak
- Webhook'larla iki uygulama arasında gerçek zamanlı köprü kurmak
n8n Kurulum Yöntemleri
n8n'i çalıştırmanın birkaç yolu vardır. Doğru seçim, ne kadar kontrol istediğinize ve sunucu yönetimine ne kadar zaman ayırabildiğinize bağlıdır.
| Yöntem | Kurulum zorluğu | Bakım sizde mi | En uygun olduğu durum |
|---|---|---|---|
| Docker (self-host) | Orta | Evet (sunucu, güncelleme, yedek) | Kendi sunucusunu yöneten ekipler |
| npm (yerel) | Kolay | Evet | Sadece yerel deneme ve geliştirme |
| n8n Cloud | Yok | Hayır | Hızlı başlangıç, kurulumsuz |
| Yönetilen PaaS | Düşük | Kısmen (kod sizde, altyapı platformda) | Kontrol + az bakım isteyenler |
npm ile kurulum (npx n8n) yalnızca yerel makinede denemek için hızlıdır ama üretim için uygun değildir; bilgisayarınızı kapattığınızda iş akışları durur. Bu yüzden gerçek kullanımda iki yol öne çıkar: kendi sunucunuzda Docker ya da altyapıyı size bırakmayan yönetilen bir platform. Aşağıda önce Docker kurulumunu, sonra kurulumsuz seçeneği ele alıyoruz.
Docker ile n8n Kurulumu: Adım Adım
Docker, n8n'i çalıştırmanın en temiz yoludur çünkü tüm bağımlılıkları izole bir container içinde taşır. Makinenizde Docker kurulu olması yeterlidir. Aşağıdaki adımlar n8n'in resmi Docker dokümanına dayanır.
1. Tek komutla hızlı başlangıç
Önce verileri kalıcı tutacak bir volume oluşturun, sonra container'ı başlatın. Volume kritik önemdedir: onsuz container silindiğinde tüm iş akışlarınız ve kimlik bilgileriniz kaybolur.
docker volume create n8n_data
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE="Europe/Istanbul" \
-e TZ="Europe/Istanbul" \
docker.n8n.io/n8nio/n8nKomut çalıştıktan sonra tarayıcıda http://localhost:5678 adresini açın. İlk açılışta bir yönetici hesabı oluşturmanız istenir. Bu kadar; n8n artık ayakta.
GENERIC_TIMEZONE değişkeni önemlidir, çünkü zamanlanmış (cron) iş akışlarınız bu saat dilimine göre tetiklenir. İstanbul saatiyle çalışmak için Europe/Istanbul değerini kullanın.
2. Üretim için PostgreSQL ile docker compose
Yukarıdaki hızlı kurulum verileri varsayılan olarak SQLite'ta tutar. Deneme için yeterlidir, ama üretimde n8n resmi olarak PostgreSQL önerir; çünkü SQLite yoğun iş akışlarında ve eşzamanlı çalıştırmalarda darboğaz olabilir. Aşağıdaki docker-compose.yml, n8n'i ayrı bir PostgreSQL veritabanıyla birlikte ayağa kaldırır.
services:
postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: guclu-bir-parola
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: guclu-bir-parola
N8N_ENCRYPTION_KEY: cok-gizli-bir-sifreleme-anahtari
GENERIC_TIMEZONE: Europe/Istanbul
WEBHOOK_URL: https://n8n.alanadiniz.com/
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
volumes:
postgres_data:
n8n_data:Dosyayı kaydettikten sonra aynı dizinde şu komutla başlatın:
docker compose up -dBu yapılandırmada dikkat edilecek üç değişken vardır:
N8N_ENCRYPTION_KEY: n8n, kayıtlı kimlik bilgilerinizi (API anahtarları, parolalar) bu anahtarla şifreler. Bir kez belirleyip asla değiştirmeyin; değişirse eski kimlik bilgilerine erişemezsiniz.WEBHOOK_URL: Dış servislerin size ulaşacağı genel adres. Webhook tetikleyicileri kullanacaksanız bunu gerçek alan adınıza ayarlamanız şarttır, yoksa n8n dışarıyalocalhostadresi verir ve tetikleyiciler çalışmaz.DB_TYPE=postgresdb: Bu satır, n8n'e SQLite yerine PostgreSQL kullanmasını söyler. Geri kalanDB_POSTGRESDB_*değişkenleri bağlantı bilgileridir.
3. Güncelleme ve yedekleme
n8n sık güncellenir. Yeni sürüme geçmek için imajı çekip container'ı yeniden başlatırsınız:
docker compose pull
docker compose up -dYedekleme iki parçadan oluşur: PostgreSQL veritabanının bir dökümü (pg_dump) ve N8N_ENCRYPTION_KEY değerinin güvenli bir yerde saklanması. Bu ikisi olmadan bir felaket kurtarma senaryosunda iş akışlarınızı geri yükleyemezsiniz.
Kurulumda En Sık Yapılan Hatalar
Docker ile n8n kurarken birçok kişi aynı birkaç engele takılır. Kurulumdan önce bilmek, saatlerce süren hata ayıklamayı önler:
- Volume unutmak.
-vbayrağı olmadan container'ı çalıştırırsanız, container silindiğinde veya güncellendiğinde tüm iş akışlarınız ve kimlik bilgileriniz kaybolur. Volume, verinin container ömründen bağımsız yaşamasını sağlar. - Şifreleme anahtarını sabitlememek.
N8N_ENCRYPTION_KEYbelirtmezseniz n8n her ilk açılışta rastgele bir anahtar üretir. Container yeniden kurulduğunda anahtar değişir ve kayıtlı kimlik bilgileriniz açılamaz hale gelir. - Yanlış saat dilimi.
GENERIC_TIMEZONEayarlanmazsa cron tetikleyicileriniz UTC'ye göre çalışır. İstanbul saatiyle sabah 9'a kurduğunuz bir iş, aslında 12'de tetiklenir. - Webhook adresini localhost bırakmak.
WEBHOOK_URLgerçek alan adınıza ayarlanmadıkça, dış servisler size ulaşamaz ve webhook tabanlı otomasyonlar sessizce başarısız olur.
Somut Örnek: İlk İş Akışını Kurmak
Kurulum ayakta olduğunda ilk otomasyonunuzu test etmek dakikalar sürer. Diyelim ki bir web formu her doldurulduğunda ekibinize Slack bildirimi göndermek istiyorsunuz. n8n editöründe bir Webhook node'u eklersiniz; bu node size benzersiz bir URL verir. Formunuzu bu URL'e gönderim yapacak şekilde ayarlarsınız. Ardından bir Slack node'u ekleyip Slack hesabınızı bağlar ve gelen form verisini mesaj metnine yerleştirirsiniz. İki node'u birbirine bağlayıp iş akışını etkinleştirdiğinizde, form her doldurulduğunda Slack kanalınıza otomatik bir mesaj düşer. Tek satır kod yazmazsınız. Bu basit örnek n8n'in temel mantığını gösterir: dinle, dönüştür, ilet.
n8n'i 7/24 Çalıştırmak: Sunucu Gereksinimi
Docker kurulumunu kendi bilgisayarınızda yaptığınızda çıplak bir gerçekle karşılaşırsınız: bilgisayarı kapattığınızda n8n de durur. Zamanlanmış iş akışları tetiklenmez, webhook'lar cevapsız kalır. Otomasyonun anlamı sürekliliktir; bunun için açık kalan bir sunucuya ihtiyacınız vardır.
Klasik yol bir sanal sunucu (VPS/VDS) kiralamaktır. Bu size tam kontrol verir ama beraberinde bir bakım listesi getirir:
- İşletim sistemi kurulumu ve güvenlik yamaları
- Docker ve reverse proxy (Nginx/Caddy) yapılandırması
- Custom domain için HTTPS sertifikası kurmak ve yenilemek
- PostgreSQL yedeklemesini kurmak ve geri yükleme prosedürünü test etmek
- n8n gece çökerse müdahale edecek bir izleme ve uyarı düzeni
Bu adımların her biri değerli bir öğrenme deneyimidir, ama aynı zamanda süregelen bir sorumluluktur. Sunucu türlerini, fiyat mantığını ve kiralama sürecini derinlemesine görmek isterseniz sunucu kiralama rehberimize göz atabilirsiniz. VPS, VDS ve bulut sunucu arasındaki farkları ise ayrı bir karşılaştırmada ele aldık.
Buradaki asıl soru şu: Amacınız bir sunucuyu yönetmek mi, yoksa yalnızca n8n'in çalışmasını sağlamak mı? İkincisiyse, sunucuyu tamamen atlayan bir yol var.
Kurulumsuz Alternatif: Yönetilen Ortamda n8n
n8n bir container olarak dağıtıldığı için, sunucu yönetmeden container çalıştıran bir uygulama platformunda (PaaS) doğrudan çalışır. Bu modelde işletim sistemi kurmaz, reverse proxy yapılandırmaz, sertifika yenilemekle uğraşmazsınız. n8n imajını verirsiniz, geri kalanını platform yönetir.
Out Plane bir PaaS'tir ve n8n'i barındırmak için gereken her parçayı tek yerde sunar. Bir n8n kurulumunu şöyle ayağa kaldırırsınız:
- n8n imajını dağıtın. Hazır
docker.n8n.io/n8nio/n8ncontainer image'ından doğrudan deploy edebilir, ya da kendi ayarlarınızı içeren bir GitHub deposunu bağlayabilirsiniz. Platform Cloud Native Buildpacks ve Dockerfile'ı destekler. - Doğru portu dinletin. n8n varsayılan olarak
0.0.0.0üzerinde dinler; tek yapmanız gerekenN8N_PORTdeğişkenini platformun verdiğiPORTdeğerine eşitlemektir. n8n'in ilgili değişkenleri resmi ortam değişkeni dokümanında listelenir. - Managed PostgreSQL bağlayın. Aynı platformdan bir PostgreSQL veritabanı oluşturur, bağlantı bilgilerini
DB_POSTGRESDB_*ortam değişkenlerine yazarsınız. Managed PostgreSQL otomatik yedek, point-in-time recovery, read replica ve bağlantı havuzuyla gelir; kendi yedek betiğinizi kurmanıza gerek kalmaz. - Kalıcı volume ve gizli anahtar ekleyin.
/home/node/.n8nyoluna bir volume bağlar,N8N_ENCRYPTION_KEYdeğerini bir environment variable olarak tanımlarsınız. - Custom domain bağlayın. Alan adınızı eklediğinizde HTTPS sertifikası otomatik gelir.
WEBHOOK_URLdeğişkenini bu alan adına ayarlarsanız webhook tetikleyicileri sorunsuz çalışır.
Platform trafiğinize göre otomatik ölçeklenir, yük dengeleme kutunun içinde gelir ve cold start yoktur; yani zamanlanmış bir iş akışı tetiklendiğinde n8n'in "uyanmasını" beklemezsiniz. Uygulamanızı Nuremberg, Helsinki, Ashburn (Virginia), Hillsboro (Oregon) ve Singapore bölgelerinden birinde barındırabilir, AB veri yerleşimi gereken işler için uygun bölgeyi seçebilirsiniz. Tarayıcı üzerinden terminal erişimi, TCP servisleri, API token'ları ve managed Redis de aynı platformda hazır durur.
n8n ayrıca Node.js, Python, Go, Java, Ruby, PHP, .NET ve Rust ile yazılmış kendi uygulamalarınızın yanında çalışabilir; hepsini tek bir yerden yönetirsiniz.
Maliyet: Kurulumsuz Başlamak
Out Plane'in kalıcı ücretsiz bir Hobby katmanı vardır ve 3 instance'a kadar çalışır. Yeni hesaplar ayrıca 30 gün geçerli 20 dolar kredi alır ve başlamak için kart bilgisi gerekmez. Bu, n8n'i gerçek bir alan adında, tam bir PostgreSQL veritabanıyla kurup denemeniz için yeterlidir. Daha fazlasına ihtiyaç duyduğunuzda ücretli katman saniye bazında ve kullandıkça öde mantığıyla faturalandırır; fiyat düşük bir aylık ücretten başlar ve güncel oranları fiyatlandırma sayfasında görebilirsiniz. Sunucu kiralamanın aksine, boşta bekleyen kapasite için değil yalnızca gerçekten kullandığınız kaynak için ödersiniz.
Sonuç: Hangi Yolu Seçmeli
n8n kurulumunda üç net yol vardır. Yalnızca yerel makinede denemek istiyorsanız npx n8n veya tek komutluk Docker kurulumu en hızlısıdır. Kendi sunucunuzu baştan sona yönetmek, her katmanı elinizde tutmak istiyorsanız bir VPS üzerinde docker compose ile PostgreSQL'li kurulum doğru seçimdir; karşılığında güncelleme, yedekleme ve güvenlik sizin sorumluluğunuzda olur.
Amacınız n8n'i 7/24 çalıştırmak ama sunucu yönetmekle uğraşmamaksa, yönetilen bir platform aynı container'ı sizin yerinize çalıştırır ve otomasyonunuzun sürekli ayakta kalmasını sağlar. Otomasyonu kurmak asıl işiniz değil, işinizi kolaylaştıran bir araç olmalı; kurulum yöntemini de bu ölçüte göre seçin.
Başlamaya hazır mısınız? Out Plane'de n8n'i yayına alın, 20 dolar ücretsiz krediyle ve kart bilgisi olmadan.
Sıkça Sorulan Sorular
n8n'i Docker olmadan kurabilir miyim?
Evet, npm install n8n -g veya npx n8n ile Docker olmadan da çalıştırabilirsiniz. Ancak bu yöntem Node.js sürüm uyumu ve bağımlılık yönetimi gerektirir ve genellikle yalnızca yerel deneme için önerilir. Üretimde Docker, tüm bağımlılıkları izole ettiği için çok daha güvenilirdir.
n8n kurulumunda SQLite mi PostgreSQL mi kullanmalıyım?
Deneme ve düşük hacimli kullanım için varsayılan SQLite yeterlidir. Üretim için n8n resmi olarak PostgreSQL önerir; çünkü eşzamanlı çalıştırmalarda ve yoğun iş akışlarında SQLite performans darboğazı yaratabilir ve veri bütünlüğü riski artar. Ciddi bir kurulum planlıyorsanız baştan PostgreSQL ile başlayın.
n8n'i 7/24 çalıştırmak için neye ihtiyacım var?
Sürekli açık kalan bir sunucuya ihtiyacınız vardır. Kendi bilgisayarınızda çalıştırırsanız makineyi kapattığınızda n8n durur ve zamanlanmış iş akışları tetiklenmez. Bir VPS kiralayabilir ya da sunucu yönetmeden container çalıştıran yönetilen bir platform kullanabilirsiniz; ikincisinde işletim sistemi, sertifika ve ölçekleme sizin sorumluluğunuzda olmaz.
n8n ücretsiz mi?
n8n'in kendi barındırdığınız topluluk sürümü (Community Edition) ücretsiz ve açık kaynaklıdır; çalıştırma sayısında bir limit yoktur. Maliyetiniz yalnızca üzerinde çalıştığı sunucudur. n8n'in resmi bulut hizmeti ise ücretlidir. Kendi barındırma tarafında, Out Plane gibi platformların kalıcı ücretsiz katmanıyla ödeme yapmadan başlayabilirsiniz.
N8N_ENCRYPTION_KEY nedir ve neden önemli?
N8N_ENCRYPTION_KEY, n8n'in kayıtlı kimlik bilgilerinizi (API anahtarları, parolalar) şifrelemek için kullandığı anahtardır. Bir kez belirlenir ve asla değiştirilmemelidir. Değeri kaybederseniz ya da değiştirirseniz, daha önce kaydedilmiş tüm kimlik bilgilerine erişilemez hale gelir. Bu yüzden yedeklerinizde mutlaka bu değeri de güvenli biçimde saklayın.
Webhook'larım neden çalışmıyor?
En yaygın neden WEBHOOK_URL değişkeninin doğru ayarlanmamış olmasıdır. Bu değişken belirtilmezse n8n dış servislere kendi localhost adresini verir ve onlar size ulaşamaz. Değişkeni gerçek ve genel erişime açık alan adınıza (örneğin https://n8n.alanadiniz.com/) ayarlayın. Ayrıca alan adının HTTPS ile yayında ve n8n container'ının o porta erişilebilir olduğundan emin olun.
n8n'i bir PaaS üzerinde çalıştırmak Docker kurulumundan farklı mı?
Temel mantık aynıdır, çünkü ikisinde de n8n bir container olarak çalışır. Fark yönetim yükündedir. PaaS üzerinde işletim sistemi kurmaz, reverse proxy yapılandırmaz ve sertifika yenilemezsiniz; imajı ve ortam değişkenlerini verir, gerisini platforma bırakırsınız. N8N_PORT değişkenini platformun PORT değerine eşitlemek ve managed PostgreSQL'i bağlamak çoğu durumda yeterlidir.
n8n kurulumu için ne kadar RAM gerekir?
Küçük ve orta ölçekli iş akışları için 1 GB RAM çoğu zaman başlangıç noktasıdır, ancak ayrı bir PostgreSQL çalıştırıyorsanız ve iş akışlarınız yoğunsa daha fazlası gerekir. Büyük veri işleyen ya da çok sayıda eşzamanlı çalıştırma yapan kurulumlar için belleği artırmanız gerekir. Yönetilen bir platformda ise instance'ınızın kaynaklarını (CPU ve bellek) ihtiyaç arttıkça büyütür, sabit bir donanım tavanına takılmazsınız. n8n'in tek bir instance'ı tek süreç olarak çalışır; birden fazla çalıştırıcıya bölmek için n8n'in kuyruk modu (Redis ile) gerekir, bu da ayrı bir kurulum konusudur.