📖 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: bridgeGeliş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: bridge4️⃣ 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:5678Giriş 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/weather3. 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!