N8N Otomasyon Eğitimi Ubuntu için – Sıfırdan Akışa
Anahtar Kelimeler
| Terim | Hızlı Tanım |
|---|---|
| 🚀 N8N | Çeşitli harici hizmetleri bağlamak için görsel, düğüm tabanlı bir iş akışı otomasyon platformu. |
| 🐳 Docker | Uygulamaların tutarlı, izole edilmiş şekilde dağıtılmasını ve yönetilmesini sağlayan bir konteynerizasyon aracı. |
| 🐘 PostgreSQL | N8N için birincil, kalıcı veri deposu olarak hizmet veren güçlü bir ilişkisel veritabanı. |
| 🧩 Node | N8N içinde belirli bir görevi yürüten tek bir işlevsel blok (örneğin, bir veri tetikleyicisi veya API eylemi). |
| 🔄 Workflow | Görev dizilerini işlemek için birden fazla düğümü birbirine bağlayarak oluşturulan yapılandırılmış otomatik bir işlem. |
| 💾 Docker Volume | Sistem verilerini konteynerler dışında kalıcı olarak kaydetmek için Docker’da kullanılan belirlenmiş bir depolama mekanizması. |
| 🔐 Environment Variable | Güvenli yapılandırma değerleri (.env dosyasında tutulur) Docker konteynerlerine güvenli bir şekilde enjekte edilir. |
Otomasyon neden önemlidir

Modern ekipler “tek bir uygulama çalıştırmaz” — bir dizi SaaS aracı, dahili hizmet, veri deposu ve sohbet/uyarı sistemini işletirler. Bu karmaşıklığın maliyeti öngörülebilir şekillerde ortaya çıkar:
- Manuel el değiştirmeler ve tekrarlanan rutin işler (sistemler arasında kopyala/yapıştır)
- Yavaş tepki döngüleri (onaylar, bilet yönlendirmesi, olay bildirimleri)
- Tutarsız sonuçlar (insan hatası, atlanmış adımlar, kısmi güncellemeler)
- Kırılgan entegrasyonlar (görünürlük veya sahiplik olmayan tek seferlik betikler)
Otomasyon, bu sürtünmeyi azaltmanın en yüksek etkili yollarından biridir. Hatta küçük iş akışları — veri senkronizasyonu, yük doğrulaması, bildirim gönderme, kayıt güncelleme — anlamlı kazanımlara dönüşebilir: daha hızlı döngü süresi, daha az hata ve daha tutarlı operasyonlar. Önemlisi, “otomasyon” yalnızca çabayı azaltmakla ilgili değildir; aynı zamanda süreçleri gözlemlenebilir ve tekrarlanabilir hale getirmekle ilgilidir.
Bu rapor, otomasyon yaklaşımını üretim altyapısı gibi ele alır: temiz bir şekilde dağıtın, konfigürasyonu kontrol edin, verileri kalıcı tutun ve davranışı belirleyici bir test iş akışıyla doğrulayın.
N8N Nedir (ve neden en iyi arkadaşınız olabilir)

N8N, node tabanlı bir editör kullanarak hizmetleri bağlamanıza olanak sağlayan bir iş akışı otomasyon platformudur. İş akışlarını “node’lardan” (tetikleyiciler, veri dönüşümleri, API çağrıları, veritabanı işlemleri, bildirimler) oluşturur, ardından bunları manuel olarak, bir zamanlamaya göre veya webhook’lar aracılığıyla yürütürsünüz.
N8N’i özellikle Linux dağıtım bağlamında yararlı kılan şeyler:
- Kendi kendine barındırılabilir: veriler ve ağ üzerinde kontrol için kendi altyapınızda çalıştırabilirsiniz.
- Genişletilebilir entegrasyonlar: birçok yerleşik node, artı API’si olan herhangi bir şey için genel HTTP node’ları.
- Operasyonel olarak uygun: konteynerler içinde iyi çalışır, kalıcılık için Postgres kullanabilir ve ortam odaklı konfigürasyonu destekler.
- Kademeli benimseme için iyi: basit iş akışlarıyla başlayın, ardından kullanım arttıkça erişimi (ters proxy + HTTPS) ve operasyonel uygulamaları sertleştirin.
Bu değerlendirmede, n8n çalıştırabileceğiniz bir hizmet olarak ele alınır: dağıtım seçimleri ve konfigürasyonu, netlik, tekrarlanabilirlik ve “gelecekteki sertleştirme” eğilimi ile belgelenmiştir (ilk kurulumu aşırı mühendislik yapmadan).
Kendi N8N örneğinizi kendi sunucunuzda barındırın
Denemeye hazır mısınız? Kurulum birkaç teknik adım gerektiriyor, ancak endişelenmeyin — bu kılavuzu takip edin ve ilk N8N örneğiniz kısa sürede çalışır duruma gelecektir.
Bu öğretici Ubuntu 22.04 üzerinde çalışır ve AlexHost tarafından sağlanan bir VPS üzerinde barındırılır.
Docker kurulumu
n8n’i kurmanın birkaç yolu vardır. Bu öğretici için, n8n’i yönetmek ve yapılandırmak için açık ve güvenilir bir yaklaşım sağladığı için Docker kullanıyoruz.
Öncelikle, sisteminizde docker ve docker compose’un yüklü olduğundan emin olun.
# Check for docker
docker -v
# Check for docker compose
docker compose
Bu bir sürüm döndürürse, hazırsınız.
Yüklü değilse, talimatlar için bu sayfayı takip edin: kurulum kılavuzu. Kullandığınız doğru işletim sistemini seçtiğinizden emin olun.
Proje yapısı
Dosyaları düzgün bir şekilde organize etmek netlik ve uzun vadeli bakım için gereklidir. Kural olarak, Docker hizmetleri genellikle /opt dizini altına yerleştirilir. İçinde, N8N dahil tüm hizmetleri depolamak için bir docker_services klasörü oluşturulmuştur.
# Create all the needed folders
sudo mkdir -p /opt/docker_services/n8n
# Navigate to n8n folder
cd /opt/docker_services/n8n
Docker compose dosyasını ekleme
n8n örneğimizi ve arka uç veritabanını başlatmak için bir compose.yaml dosyası kullanacağız. Varsayılan SQLite yerine PostgreSQL’i seçiyoruz çünkü yapılandırma ve yürütme günlükleri için çok daha sağlam ve üretime hazır bir veri deposu sağlar.
nano gibi bir metin editörü kullanarak dosyayı oluşturun:
nano compose.yaml
Aşağıdaki yapılandırmayı dosyaya yapıştırın:
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
env_file:
- .env
volumes:
- ./data:/home/node/.n8n
- ./files:/files
depends_on:
- postgres
postgres:
image: postgres:15
restart: always
env_file:
- .env
volumes:
- ./postgres-data:/var/lib/postgresql/data
Yapılandırmayı anlama:
| Bileşen | Açıklama |
|---|---|
| Hizmetler | İki konteyner çalıştırır: n8n (ana uygulama) ve postgres:15. Postgres’i kullanmak varsayılan SQLite’den çok daha tercih edilir. n8n başlamak için doğal olarak buna bağımlıdır. |
| Yeniden Başlatma Politikası | Konteynerler sistem önyüklemesinde veya çöktüğünde otomatik olarak yeniden başlasın diye restart: always kullanır. |
| Portlar | n8n web arayüzüne erişebilmeniz için 5678 portunu açığa çıkarır. |
| Ortam | Her iki hizmet de DB kimlik bilgileri gibi değişkenleri güvenli bir şekilde işlemek için paylaşılan bir .env dosyasından yapılandırma yükler. |
| Birimler | Yerel ana bilgisayar dizinlerini konteyner yollarına bağlayarak verileri kalıcı tutmak için: • ./data → n8n yapılandırmaları (/home/node/.n8n) • ./files → dosya depolama (/files) • ./postgres-data → Veritabanı (/var/lib/postgresql/data) |
Konteynerları başlatmadan önce, harita oluşturulmaya hazır olması için gerekli dizinleri açıkça oluşturmanız gerekir:
# Use your own path if different
cd /opt/docker_services/n8n
mkdir data files postgres-data
Dizin sahipliği ve izinleri
Varsayılan olarak, Docker birimleriniz için ana bilgisayar dizinlerini otomatik olarak oluşturduğunda (bizim data ve files klasörlerimiz gibi), sahipliği root kullanıcısına atar. Ancak güvenlik nedenleriyle, n8n konteynerı kasıtlı olarak ayrıcalıkları bırakır ve root olmayan bir kullanıcı olarak çalışır (özellikle UID 1000).
Bu klasörler root’a ait kalmaya devam ederse, n8n yapılandırmasını veya veritabanı dosyalarını kaydedemeyecek ve konteyner ‘izin reddedildi’ hatasıyla başlangıçta çöküyor. Bu sorunu önlemek için, hizmeti başlatmadan önce bu dizinlerin sahipliğini doğru kullanıcıya açıkça veriyoruz.
# Set ownership of the volume directories to UID/GID 1000
sudo chown -R 1000:1000 data files
.env dosyasını ekleme
Docker, sistem yapılandırmalarını ve sırlarını compose.yaml‘a kodlamadan konteynerlerimize iletmek için .env dosyasını kullanır.
Dosyayı aynı dizinde oluşturun:
nano .env
Aşağıdaki yapılandırmayı yapıştırın (example.com ve veritabanı parolasını kendi güvenli değerlerinizle değiştirdiğinizden emin olun):
# n8n Settings
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Chisinau
N8N_HOST=n8n.example.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.example.com/
N8N_SECURE_COOKIE=false
NODE_ENV=production
# PostgreSQL
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=changeme123
Ortam değişkenlerini anlama:
| Değişken | Açıklama |
|---|---|
| Alan Adı ve Ana Bilgisayar | DOMAIN_NAME, SUBDOMAIN ve N8N_HOST tanımlar. Bunlar n8n uygulamasını belirli bir URL’ye (örneğin n8n.example.com) eşlemek için gereklidir ve DNS aracılığıyla harici erişim sağlar. |
| Saat Dilimi | GENERIC_TIMEZONE, Node.js uygulama işlemi için saat dilimini ayarlar, böylece zamanlama ve günlük zaman damgaları bölgeniz için doğru olur. |
| Protokoller ve Web Hook | N8N_PROTOCOL ve WEBHOOK_URL, n8n’in dış dünyayla nasıl etkileşim kurduğunu yapılandırır. Bu, geri arama URL’si gerektiren hizmetleri entegre ediyorsanız çok önemlidir. |
| Güvenli Çerez | N8N_SECURE_COOKIE, varsayılan olarak HTTPS ters proxy olmadan yerel olarak çalıştığımız için false olarak ayarlanır. Daha sonra harici proxy aracılığıyla SSL/HTTPS yapılandırırsanız, varsayılan olarak true olması için bu satırı silebilirsiniz. |
| Düğüm Ortamı | NODE_ENV kesinlikle production olarak ayarlanmalıdır. Bu, gerçek dağıtım aşamalarından bağımsız olarak, hata ayıklama yerine performans için temel Node.js sunucusunu optimize eder. |
| Veritabanı Kimlik Bilgileri | POSTGRES_DB, USER ve PASSWORD, ilk başlangıçta PostgreSQL veritabanını oluşturmak ve sonraki bağlantıları doğrulamak için kullanılır. Her zaman burada güçlü özel parolalar kullanın. |
Dosyayı kaydedin ve kapatın. Artık Docker Compose yığınını çalıştırmak için gerekli tüm yapılandırmalara sahipsiniz.
Docker hizmetlerini başlatma
Proje dizininize gidin ve tüm hizmetleri arka planda başlatın.
# Use your own path if different
cd /opt/docker_services/n8n
docker compose up -d
Docker gerekli görüntüleri çeker ve konteynerlerinizi başlatır. Çalışır duruma geldikten sonra, n8n port 5678’de (varsayılan) veya ters proxy kullanıyorsanız yapılandırılmış alan adınızda kullanılabilir olacaktır.
Düzgün çalışıp çalışmadığını doğrulamak için n8n ve postgres konteynerlerinin listelenip çalışıp çalışmadığını kontrol edin.
docker ps
N8N ile çalışma
Hizmetler başarıyla çalışır duruma geldikten sonra, N8N’i keşfetmeye başlamak için nihayet heyecan verici zaman geldi!
N8N’e erişim
N8N bir web tarayıcısı aracılığıyla erişilebilir. Bu yerel kurulumda, aşağıdaki URL’de kullanılabilir: http://localhost:5678.
İlk erişimde, doldurulacak ortak alanlarla bir giriş sayfası görünür.

Lisans anahtarını ayarlama
Başlangıçta, N8N ücretli özelliklerin kilidini açan ücretsiz bir lisans anahtarı sunan bir pencere görüntüler. Evet, doğru duydunuz: ücretli özellikler ücretsiz! Bu, kendi kendine barındırılan bir N8N örneğini çalıştırmanın faydalarından biridir.

Lisans anahtarını e-postanızda aldıktan sonra, bunu etkinleştirmek için Ayarlar->Kullanım ve Plan‘a gidebilirsiniz.

İlk iş akışını oluşturma
Yeni iş akışları doğrudan ana sayfadan oluşturulabilir. Aşağıdaki resme bakın.

İlk yürütme kullanım durumu için iki düğüm kullanılacaktır:
- Manuel Tetikleyici: iş akışını manuel olarak başlatır.
- Düğüm Ayarla: alanları ve değerlerini tanımlar ve bunlarla çalışır.
Manuel Tetikleyici düğümü yapılandırma gerektirmez, ancak Ayarla düğümü gerektirir. Bizim durumumuzda, amaç ‘n8n works’ belirten bir mesajı olay zaman damgasıyla birlikte çıkarmaktır. Ayarla düğümü bu nedenle aşağıdaki resimde gösterildiği gibi yapılandırılır.

İki düğüm bağlandıktan ve yapılandırıldıktan sonra, İş akışını yürüt düğmesine basarak iş akışını başlatırız.


Tebrikler 👏, ilk N8N iş akışınız başarıyla yürütüldü!
“`html
Sırada ne var?
Bu ilk kurulum sadece başlangıçtır. N8N’in gerçek gücü, günlük araçlarınızı bağlamaya ve tekrarlayan görevleri otomatikleştirmeye başladığınızda ortaya çıkar. Örneğin, web sitenizden gelen yeni müşteri adaylarını otomatik olarak bir CRM’ye senkronize etmek, acil uyarıları ve kritik hizmet hatalarını bir takım sohbetine yönlendirmek veya çeşitli SaaS platformlarından verileri düzenli olarak veritabanınıza yedeklemek için iş akışları oluşturabilirsiniz. İşlemlerinizi otomatikleştirme ve günlük iş yükünüzü basitleştirme olasılıkları neredeyse sonsuzdur.
“`
Sonuç
Bu kılavuzu tamamlayarak, günlük operasyonlarınızı yönetme şeklinizi dönüştürebilecek güçlü, kendi kendine barındırılan bir platform başarıyla dağıttınız. Bu kurulum boyunca bizi takip ettiğiniz için teşekkür ederiz! N8N’in neler yapabileceğini keşfetmeye devam ederken, daha fazla harika ve yararlı araçları keşfetmek için diğer öğreticilerimizi kontrol ettiğinizden emin olun. Ölçeklendirmeye veya yeni, heyecan verici projelere dalmaya hazır olduğunuzda, AlexHost‘un hizmetlerinizi güvenilir bir şekilde barındırmak için ihtiyaç duyduğunuz tüm güçlü altyapıyı sağladığını unutmayın.
tasarruf edin