🚀 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:
- Ön gereksinimleri kur
- Docker Compose dosyasını oluştur
- Servisleri başlat
- HTTPS güvenliğini etkinleştir
- Web arayüzünü yapılandır
- İ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
| Hata | Neden | Çözüm |
|---|---|---|
| 401 Unauthorized | Yanlış kimlik bilgisi | N8N_BASIC_AUTH_* değişkenlerini kontrol edin |
| SSL başarısız | DNS yönlendirmesi eksik | Sertifikayı yenileyin, DNS’i kontrol edin |
| Webhook tetiklenmiyor | Yanlış URL | WEBHOOK_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!