n8n, en popüler iş akışı otomasyon araçlarından biridir ve en büyük avantajlarından biri, onu kendiniz barındırabilmenizdir. Bu, verileriniz üzerinde tam kontrol sağlar, her bir yürütme için ücret yoktur ve dahili sistemlerle bağlantı kurma özgürlüğü sunar.
Bu kılavuz, Docker Compose ile üretim hazır bir kendi barındırılan n8n örneğini nasıl kuracağınızı gösterir: HTTPS, bir PostgreSQL veritabanı, doğru webhook URL’leri, yedeklemeler ve güncellemeler. Hala bir araç seçiyorsanız, önce n8n vs Zapier vs Make karşılaştırmamı okuyun.
Neye ihtiyacınız var
- Küçük iş yükleri için en az 2 GB RAM’e sahip bir Linux VPS (örneğin Ubuntu LTS), ağır veya AI iş akışları için daha fazla.
- Bir alan adı veya alt alan adı, örneğin
n8n.example.com, sunucunun IP’sine işaret eder. - Docker ve Docker Compose eklentisi yüklendi
- Komut satırı ile temel rahatlık
Adım 1: Docker’ı Kurun
Ubuntu’da, Docker Engine ve Compose eklentisi için Docker’ın resmi kurulum talimatlarını izleyin. Ardından kontrol edin:
docker --version
docker compose version
Adım 2: Hızlı test çalıştırması (isteğe bağlı)
n8n’in bir dakikada çalıştığını görmek için:
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Açık http://SERVER-IP:5678. Bu test için uygun, ancak üretim için değil: HTTPS yok, SQLite veritabanı yok ve otomatik yeniden başlatmalar yok.
Adım 3: Proje klasörünü oluşturun
mkdir -p ~/n8n && cd ~/n8n
Adım 4: .env dosyasını oluşturun
DOMAIN=n8n.example.com
GENERIC_TIMEZONE=Europe/Amsterdam
POSTGRES_USER=n8n
POSTGRES_PASSWORD=change-this-strong-password
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=change-this-long-random-string
Güçlü bir şifreleme anahtarı oluşturun, örneğin openssl rand -hex 32 ile.
Önemli: n8n, saklanan kimlik bilgilerini şifrelemek için N8N_ENCRYPTION_KEY kullanır. Eğer bunu kaybederseniz, kaydedilmiş her kimlik bilgisine erişimi kaybedersiniz. Bunu şifre yöneticinizde saklayın.
Adım 5: docker-compose.yml oluşturun
services:
postgres:
image: postgres:16
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- db_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_HOST=${DOMAIN}
- N8N_PROTOCOL=https
- N8N_PORT=5678
- WEBHOOK_URL=https://${DOMAIN}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
volumes:
db_data:
n8n_data:
Birkaç not:
- Port 5678 sadece
127.0.0.1adresine bağlıdır, bu nedenle n8n yalnızca ters proxy üzerinden erişilebilir. WEBHOOK_URLn8n’de gösterilen webhook URL’lerinin sizin kamuya açık HTTPS alan adınızı kullandığından emin olur.- Üretimde, n8n görüntüsünü
latestyerine belirli bir sürüm etiketine sabitleyin, böylece güncellemeler istediğiniz zaman gerçekleşir.
Adım 6: Ters proxy ile HTTPS ekleyin
En basit seçenek Caddy’dir; Let’s Encrypt sertifikalarını otomatik olarak alır ve yeniler. Caddy’yi ana makineye kurun ve bu Caddyfile‘ı kullanın:
n8n.example.com {
reverse_proxy 127.0.0.1:5678
}
Nginx, Certbot veya Traefik ile aynı şekilde çalışır. WebSocket bağlantılarının geçiş yaptığından emin olun, n8n editörü bunlara ihtiyaç duyar.
Adım 7: n8n’i Başlat
docker compose up -d
docker compose logs -f n8n
Açın https://n8n.example.com ve sahip hesabını oluşturun.
Adım 8: Sunucuyu güvence altına al
- Ateş duvarında yalnızca 22, 80 ve 443 numaralı portlara izin verin (örneğin
ufwile) - SSH anahtarlarını kullanın ve şifreli oturum açmayı devre dışı bırakın.
- OS ve Docker’ı güncel tutun
- n8n’ de kimlerin hesap oluşturabileceğini kısıtlayın ve mevcut olduğunda iki faktörlü kimlik doğrulamayı etkinleştirin.
- Kod veya komut çalıştırabilen düğümlere dikkat edin, özellikle de birden fazla kişi örneği kullanıyorsa.
Adım 9: n8n yedeğini alın
İki şeyi yedeklemeniz gerekiyor: veritabanı ve şifreleme anahtarı (sizin .env dosyanız).
Veritabanı yedeği:
docker compose exec -T postgres pg_dump -U n8n n8n | gzip > n8n-$(date +%F).sql.gz
n8n CLI ile iş akışlarını ve kimlik bilgilerini de dışa aktarabilirsiniz:
docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/backup-workflows.json
Yedekleri sunucudan kopyalayın. Aynı sunucudaki bir yedek yedek değildir. Benim sunucu yedekleme kılavuzum basit ve güvenilir bir kurulumu açıklıyor.
Adım 10: n8n’i güvenli bir şekilde güncelleyin
docker compose pull
docker compose up -d
Büyük güncellemelerden önce:
- n8n’in sürüm notlarını kırıcı değişiklikler için okuyun
- Veritabanı yedeği alın
- Güncellemeden sonra önemli iş akışlarını test edin
Ölçekleme: kuyruk modu
Yüksek hacimler için, n8n kuyruk modunu destekler: ana örnek tetikleyicileri ve web kancalarını alır, Redis bir kuyruk tutar ve ayrı işçi konteynerleri iş akışlarını yürütür. Basit başlayın ve yürütmeler beklemeye başladığında veya sunucu sürekli meşgul olduğunda kuyruk moduna geçin.
Sorun Giderme
Webhook URL’leri localhost’u gösteriyor.
WEBHOOK_URL değerini genel HTTPS URL’niz ile ayarlayın ve yeniden başlatın.
“Editörde bağlantı kesildi”
Genellikle ters proxy, WebSocket bağlantılarını iletmez. Proxy yapılandırmanızı kontrol edin.
Kimlik bilgileri sunucular taşındıktan sonra şifrelenemez.
Yeni sunucudaki N8N_ENCRYPTION_KEY farklı. Orijinal anahtarı kullanın.
Programlardaki yanlış saatler
GENERIC_TIMEZONE ve TZ değerlerini kendi zaman diliminize ayarlayın.
Sıkça sorulan sorular
Kendi barındırılan n8n ücretsiz mi?
Yazılım, n8n lisansı altında kendi sunucunuzda barındırılabilir; bazı özellikler ücretli planlar için ayrılmıştır. Sunucunuz için ödeme yaparsınız ve onu sürdürmek için gereken süreye. Kullanım durumunuz için n8n’in mevcut lisans şartlarını kontrol edin.
SQLite mi yoksa PostgreSQL mi?
SQLite, test ve küçük kurulumlar için uygundur. PostgreSQL, üretim, daha büyük yürütme geçmişleri ve kuyruk modu için daha sağlamdır.
Ne kadar sunucuya ihtiyacım var?
Küçük örnekler 2 GB RAM üzerinde çalışır. Büyük dosyaları, birçok öğeyi veya AI çağrılarını işleyen iş akışları daha fazla belleğe ihtiyaç duyar. Belleği izleyin ve gerektiğinde ölçeklendirin.
n8n’i doğru bir şekilde kurmak mı istiyorsunuz?
Kendi barındırdığım n8n örneklerini kuruyor ve sürdürüyorum ve bunların üzerine iş akışları inşa ediyorum: depo, CRM, e-posta, ERP ve AI entegrasyonları. Benim pazarlama otomasyonu hizmetimi ve sunucular ve yedekleme hizmetimi görebilir veya yardım isteyebilirsiniz.