Skip to main content

🚀 n8n Kurulumu: Docker Compose ile Ubuntu Üzerinde Adım Adım Rehber

💡 Bu Rehberde Ne Öğreneceksiniz?

n8n açık kaynaklı iş akışı otomasyon aracını Docker Compose kullanarak kendi Ubuntu sunucunuzda nasıl kuracağınızı öğreneceksiniz.
Rehber boyunca veri gizliliği, PostgreSQL veritabanı, Nginx güvenliği ve Let’s Encrypt SSL yapılandırması ele alınır.
Son adımda ilk otomasyon akışınızı (workflow) oluşturup test edeceksiniz.


🧠 Teknik Özet

Ana Teknik Konu: Kendi sunucusunda (Self-Hosted) n8n iş akışı otomasyon platformunun kurulumu.
Çözdüğü Problem: Zapier gibi SaaS çözümlerine bağımlı kalmadan, veri gizliliği ve ölçeklenebilirlik sağlamak.
İzlenen Adımlar:

  1. Ön gereksinimleri kur
  2. Docker Compose dosyasını oluştur
  3. Servisleri başlat
  4. HTTPS güvenliğini etkinleştir
  5. Web arayüzünü yapılandır
  6. İlk otomasyonu oluştur

🛠️ Ön Gereksinimler

Kuruluma başlamadan önce aşağıdaki sistem gereksinimlerini karşılayın:

  • Ubuntu 22.04 veya üzeri bir Sanal Sunucu (Instance/Droplet)
  • Alan adınız (örnek: otomasyon.rabisu.cloud)
  • Root veya sudo ayrıcalıklı kullanıcı
  • Docker ve Docker Compose kurulu olmalı
sudo apt update
sudo apt install docker.io docker-compose -y

💡 Bu komut Docker bileşenlerini yükler ve sistemi günceller.


⚙️ Adım 1: Docker Compose Yapılandırmasını Oluşturma

n8n ve PostgreSQL konteynerlerini birlikte çalıştırmak için yeni bir dizin açın:


mkdir ~/n8n && cd ~/n8n
nano docker-compose.yml

Aşağıdaki yapılandırmayı ekleyin (alan adınızı ve şifreleri değiştirin):


version: '3.7'

services:
db:
image: postgres:14
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=benzersizsifre123
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
restart: always

n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=benzersizsifre123
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=cokguclusifre456
- N8N_HOST=otomasyon.rabisu.cloud
- WEBHOOK_TUNNEL_URL=https://otomasyon.rabisu.cloud
depends_on:
- db
volumes:
- n8n_data:/home/node/.n8n
restart: always

volumes:
postgres_data:
n8n_data:

📦 Bu yapı, PostgreSQL veritabanı ve n8n uygulamasını Docker üzerinden üretime hazır şekilde çalıştırır.


⚡ Adım 2: n8n’i Başlatma ve Doğrulama

Servisleri başlatın:


docker-compose up -d

Durumu kontrol edin:


docker-compose ps

🚀 Her iki konteynerin “Up” durumda olduğundan emin olun.

Erişim: 👉 http://sunucu_ip_adresi:5678 (HTTPS uyarısı alırsanız, bir sonraki adımda çözeceğiz.)


🔒 Adım 3: Nginx ve Let’s Encrypt ile HTTPS Güvenliği


sudo apt install nginx certbot python3-certbot-nginx -y

Nginx yapılandırmasını oluşturun:


sudo nano /etc/nginx/sites-available/n8n

Aşağıdaki içeriği yapıştırın:


server {
listen 80;
server_name otomasyon.rabisu.cloud;

location /.well-known/acme-challenge/ {
root /var/www/html;
}

location / {
return 301 https://$host$request_uri;
}
}

Etkinleştir ve sertifika al:


sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d otomasyon.rabisu.cloud

👤 Adım 4: n8n Web Arayüzü İlk Kurulumu

Yönetici (owner) hesabınızı oluşturun.

E-posta adresinizle ücretsiz topluluk lisansını etkinleştirin.

E-postanıza gelen aktivasyon anahtarını şu menüden girin: Ayarlar → Kullanım ve Plan → Aktivasyon Anahtarı

✅ Bu işlem premium özellikleri ücretsiz olarak açar.


🧩 Adım 5: İlk İş Akışınızı Oluşturun

Yeni İş Akışı oluşturun

Webhook düğümü ekleyin

Method: POST

Path: test-webhook

Set düğümü ekleyin

Ad: message, Değer: "Rabisu'dan Merhaba!"

Akışı aktif hale getirin

Terminalden test edin:


curl -X POST https://otomasyon.rabisu.cloud/webhook/test-webhook

🎉 Yanıt olarak "Rabisu'dan Merhaba!" dönerse her şey doğru çalışıyor!


🧠 Örnek Senaryo: Sunucu Çökme Bildirimi

UptimeRobot ile uptime takibi

Hata tespitinde Nginx’i yeniden başlatma

Cloudflare API ile SSL/DNS ayarlarını güncelleme

Slack/WhatsApp bildirimleri gönderme

Discord üzerinden onay alma

Bu yapı, sistem çöküşlerini otomatik çözmenizi sağlar.


🧐 Sıkça Sorulan Sorular (SSS)

1. Neden PostgreSQL tercih edilmeli?

Veri güvenliği, kalıcılık ve ölçeklenebilirlik için önerilir. SQLite sadece test ortamı içindir.

2. Güncelleme nasıl yapılır?


docker-compose pull && docker-compose up -d

3. Verilerimi nasıl yedeklerim?

n8n_data ve postgres_data volume’larını düzenli olarak kopyalayın.

4. Webhook çalışmıyorsa ne yapmalıyım?

DNS ayarlarınızı ve WEBHOOK_TUNNEL_URL değerini doğrulayın.

5. n8n ölçeklenebilir mi?

Evet, Queue Mode (Redis) kullanarak yatayda genişleyebilir.


🧩 Sorun Giderme

HataNedenÇözüm
401 UnauthorizedYanlış kimlik bilgisiN8N_BASIC_AUTH_* değişkenlerini kontrol edin
SSL başarısızDNS yönlendirmesi eksikSertifikayı yenileyin, DNS’i kontrol edin
Webhook tetiklenmiyorYanlış URLWEBHOOK_TUNNEL_URL doğru olmalı

🎯 Sonuç

n8n, geliştiricilere veri gizliliği, özgürlük ve tam kontrol sunan güçlü bir otomasyon aracıdır. Docker Compose ile kendi self-hosted n8n platformunuzu kurarak üretim ortamına hazır hale getirdiniz.

💬 Hemen şimdi Rabisu Bulut Platformu üzerinde bir sanal sunucu oluşturun ve kendi otomasyon sisteminizi hayata geçirin!