📖 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
Özellik | n8n | Zapier | Make |
---|---|---|---|
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.
🤖Slack Bot
Slack'ta "/weather istanbul" yazıldığında hava durumu raporu dönen bot.
📊API Monitoring
Website'nizin uptime'ını kontrol edip Discord'a bildirim gönderin.
🔄Database Sync
MySQL'deki veriyi PostgreSQL'e senkronize edin ve Slack'a rapor gönderin.
🔧 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
📚 Dokümantasyon
🧑💻 Geliştirici
📺 Video İçerik
🚀 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!