AutomationÖNE ÇIKAN

n8n: Otomasyonun Gücü ve Docker ile Kurulum Rehberi

n8n ile iş akışlarınızı otomatikleştirin. n8n nedir, neler yapılabilir ve local ortamda Docker ile nasıl kurulur? Adım adım rehber.

25 Temmuz 2025 • 20:35
⚡️

n8n

Otomasyon Platformu

📖 Bu Rehberde Neler Var?

✅ n8n nedir ve nasıl çalışır?

✅ Docker ile hızlı kurulum

✅ İlk workflow oluşturma

✅ Popüler node'lar ve kullanımları

✅ Gerçek dünya örnekleri

✅ Hata çözümleri

✅ Güvenlik ayarları

✅ İleri seviye ipuçları

⚡️ n8n Nedir?

n8n (n-eight-n), açık kaynaklı ve düşük kodlu (low-code) bir otomasyon platformudur. Alman geliştiriciler tarafından 2019'da başlatılan bu proje, farklı uygulama ve servisleri birbirine bağlayarak karmaşık iş akışlarını (workflow) otomatikleştirmenizi sağlar.

🆚 n8n vs Alternatifler

Özellikn8nZapierMake
Açık Kaynak✅ Evet❌ Hayır❌ Hayır
Self-Hosted✅ Evet❌ Hayır❌ Hayır
Ücretsiz Plan✅ Sınırsız⚠️ 100 task/ay⚠️ 1000 op/ay
Kod Yazabilme✅ JavaScript/Python⚠️ Sınırlı✅ Evet

n8n ile e-posta, Slack, Discord, veri tabanları, API'lar, dosya sistemleri ve çok daha fazlası arasında otomatik veri akışı kurabilirsiniz. Sürükle-bırak arayüzüyle kod yazmadan otomasyonlar oluşturabilir, gerektiğinde JavaScript/Python kodu da ekleyebilirsiniz.

🧩 Temel Kavramlar

🔗 Node (Düğüm)

Workflow'daki her adımı temsil eder. Gmail, Slack, HTTP Request gibi spesifik görevler yapar.

🌊 Workflow

Node'ların birbirine bağlanmasıyla oluşan iş akışı. Veriler node'lar arasında akar.

🎯 Trigger

Workflow'ı başlatan node. Webhook, cron, manual trigger gibi türleri var.

📊 Execution

Workflow'ın çalıştırılması. Her execution'ın geçmişi, logları ve sonuçları saklanır.

🚀 n8n ile Neler Yapılabilir?

📧

E-posta Otomasyonu

  • • Gmail/Outlook entegrasyonu
  • • Otomatik yanıtlama
  • • E-posta filtreleme
  • • Bülten gönderimi
💬

Messaging & Chat

  • • Slack/Discord botları
  • • Telegram bildirimler
  • • WhatsApp API
  • • Teams entegrasyonu
🔗

API & Webhooks

  • • REST API çağrıları
  • • GraphQL sorguları
  • • Webhook dinleme
  • • Rate limiting
📊

Veri İşleme

  • • Google Sheets
  • • PostgreSQL/MySQL
  • • MongoDB
  • • CSV/JSON işleme
🗂️

Dosya Yönetimi

  • • FTP/SFTP transfer
  • • Google Drive/Dropbox
  • • AWS S3
  • • Dosya sıkıştırma

Zamanlanmış İşler

  • • Cron tabanlı tetikleyici
  • • Interval çalıştırma
  • • Tarih/saat koşulları
  • • Timezone desteği

📈 Popüler Kullanım Alanları

DevOps & Monitoring:

CI/CD pipeline bildirimler, server monitoring, log analizi

E-ticaret:

Sipariş işleme, stok yönetimi, müşteri bildirimler

Content Management:

Blog yazısı paylaşımı, sosyal medya otomasyonu

CRM & Sales:

Lead yönetimi, müşteri takibi, rapor oluşturma


🐳 Docker ile n8n Kurulumu

🛠 Sistem Gereksinimleri

Minimum Gereksinimler:

  • • 2GB RAM
  • • 1 CPU Core
  • • 5GB Disk
  • • Docker 20.10+

Önerilen:

  • • 4GB+ RAM
  • • 2+ CPU Core
  • • 20GB+ SSD
  • • Docker Compose

🚦 Adım Adım Kurulum

1️⃣ Proje Klasörü Oluşturun

mkdir n8n-docker && cd n8n-docker
touch docker-compose.yml
touch .env

2️⃣ Environment Dosyasını (.env) Oluşturun

# n8n Konfigürasyonu
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=SuperGuvenliSifre123!

# Database (İsteğe bağlı - PostgreSQL)
N8N_DB_TYPE=postgresdb
N8N_DB_POSTGRESDB_HOST=postgres
N8N_DB_POSTGRESDB_PORT=5432
N8N_DB_POSTGRESDB_DATABASE=n8n
N8N_DB_POSTGRESDB_USER=n8n
N8N_DB_POSTGRESDB_PASSWORD=n8npassword

# Diğer ayarlar
N8N_HOST=localhost
N8N_PORT=5678
N8N_PROTOCOL=http
WEBHOOK_URL=http://localhost:5678/
GENERIC_TIMEZONE=Europe/Istanbul

3️⃣ Docker Compose Dosyasını Oluşturun

İki farklı konfigürasyon seçeneğiniz var:

Basit Kurulum (SQLite ile):
version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=SuperGuvenliSifre123!
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=Europe/Istanbul
    volumes:
      - n8n_data:/home/node/.n8n
    networks:
      - n8n-network

volumes:
  n8n_data:

networks:
  n8n-network:
    driver: bridge
Gelişmiş Kurulum (PostgreSQL ile):
version: '3.8'

services:
  postgres:
    image: postgres:15
    container_name: n8n-postgres
    restart: always
    environment:
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=n8npassword
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - n8n-network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 30s
      timeout: 10s
      retries: 5

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_DB_TYPE=postgresdb
      - N8N_DB_POSTGRESDB_HOST=postgres
      - N8N_DB_POSTGRESDB_PORT=5432
      - N8N_DB_POSTGRESDB_DATABASE=n8n
      - N8N_DB_POSTGRESDB_USER=n8n
      - N8N_DB_POSTGRESDB_PASSWORD=n8npassword
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=SuperGuvenliSifre123!
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=Europe/Istanbul
    volumes:
      - n8n_data:/home/node/.n8n
    networks:
      - n8n-network
    depends_on:
      postgres:
        condition: service_healthy

volumes:
  n8n_data:
  postgres_data:

networks:
  n8n-network:
    driver: bridge

4️⃣ Servisleri Başlatın

# Container'ları başlat
docker compose up -d

# Logları kontrol et
docker compose logs -f n8n

# Servis durumunu kontrol et
docker compose ps

5️⃣ Web Arayüzüne Erişin

Tarayıcınızda şu adrese gidin:

http://localhost:5678

Giriş Bilgileri:
Kullanıcı adı: admin
Şifre: SuperGuvenliSifre123!


🌟 İlk Workflow'unuzu Oluşturun

n8n'i başarıyla kurduysanız, şimdi ilk otomasyonunuzu oluşturma zamanı! Basit bir "Merhaba Dünya" workflow'u ile başlayalım.

📝 Örnek: Günlük Hava Durumu Raporu

Her sabah 08:00'da hava durumu API'sinden veri çekip Slack'a gönderen workflow oluşturalım.

1. Cron Trigger Ekleyin

Her gün sabah 8'de tetiklensin

0 8 * * *
2. HTTP Request Node

OpenWeatherMap API'sinden hava durumu verisi

GET api.openweathermap.org/data/2.5/weather
3. Set Node

Veriyi Slack mesajı formatına dönüştür

4. Slack Node

Mesajı belirlenen kanala gönder


💡 Gerçek Dünya Örnekleri

📧E-posta → Google Sheets

Gmail'e gelen form doldurma e-postalarını otomatik olarak Google Sheets'e kaydedin.

Gmail Trigger
Extract Data
Google Sheets

🤖Slack Bot

Slack'ta "/weather istanbul" yazıldığında hava durumu raporu dönen bot.

Slack Trigger
Weather API
Slack Response

📊API Monitoring

Website'nizin uptime'ını kontrol edip Discord'a bildirim gönderin.

Cron (5 dakikada bir)
HTTP Request
IF Condition
Discord Webhook

🔄Database Sync

MySQL'deki veriyi PostgreSQL'e senkronize edin ve Slack'a rapor gönderin.

MySQL Read
Data Transform
PostgreSQL Write
Slack Report

🔧 Sorun Giderme

❌ Yaygın Sorunlar ve Çözümleri

Port 5678 kullanılıyor hatası

Çözüm:

# Portu kullanan process'i bul
lsof -i :5678

# Process'i öldür
kill -9 <PID>

# Veya farklı port kullan
ports: "8080:5678"
Webhook URL hataları

WEBHOOK_URL environment variable'ını kontrol edin:

# Local development için
WEBHOOK_URL=http://localhost:5678/

# Production için
WEBHOOK_URL=https://yourdomain.com/
Database bağlantı sorunları

PostgreSQL health check'ini kontrol edin:

docker compose exec postgres pg_isready -U n8n
docker compose logs postgres

⚡️ Performans İpuçları

  • Memory limiti: Docker container'ına en az 2GB RAM ayırın
  • Execution timeout: Uzun süren workflow'lar için timeout'u artırın
  • Queue mode: Yoğun kullanım için queue mode'u aktif edin
  • Database: SQLite yerine PostgreSQL kullanın
  • Monitoring: Execution history'yi düzenli temizleyin

🔒 Güvenlik Ayarları

🛡️ Güvenlik En İyi Uygulamaları

Authentication
  • • Güçlü şifreler kullanın
  • • 2FA aktif edin
  • • LDAP entegrasyonu
  • • JWT token'ları
Network Security
  • • HTTPS kullanın
  • • Firewall kuralları
  • • VPN erişimi
  • • Rate limiting
Production için SSL sertifikası:
# Nginx reverse proxy ile
server {
    listen 443 ssl;
    server_name your-n8n-domain.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location / {
        proxy_pass http://localhost:5678;
        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;
    }
}

🔗 Yararlı Kaynaklar

🚀 Sonuç

n8n, otomasyon dünyasının açık kaynak süper kahramanı! 🦸‍♂️ Bu rehberde öğrendikleriniz ile artık:

✅ n8n'i Docker ile kurup çalıştırabilirsiniz

✅ Kendi workflow'larınızı oluşturabilirsiniz

✅ API'ları birbirine bağlayabilirsiniz

✅ Sorunları çözebilirsiniz

✅ Güvenli kurulum yapabilirsiniz

✅ Production'a hazır sistemler kurabilirsiniz

Şimdi sıra sizde! n8n ile kendi otomasyon sisteminizi kurun ve verimliliğinizi artırın. Unutmayın, otomasyon sadece bir araç değil, zaman kazanmanın en etkili yolu! ⏰✨

💡 Pro Tip: n8n ile oluşturduğunuz workflow'ları community'de paylaşmayı unutmayın. Böylece hem öğrenirsiniz hem de başkalarına yardım edersiniz!

© 2024 Önceki Developer. Tüm hakları saklıdır.