Merhaba, bugün sizlere hızlı ve kolay şekilde kendinize ait ücretsiz N8N sunucusunu kurmayı anlatacağım.
N8N özellikle otomasyonlar kurmak birden fazla AI (Yapay Zeka)’ı kullanarak yeni ürünler oluşturma aracıdır. Ek olarak yazılımcılarında sıkılıkla kullandığı bulunmaz bir tool dur.
1. Docker Kurulumu
İlk olarak Docker’ı Ubuntu üzerinde kurmamız gerekiyor. Genelde Ubuntu sunucu kullandığı için bu komutları Ubuntu’ya uyumlu halde anlatacağım ama Centos, AlmaLinux gibi türevlerde sadece apt-get yerime yum ilede kurulum yapabilirsiniz.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Yukarıdaki komut ile sunucumuza docker yazılımını kurmuş olduk. Ek olarak docker containerlarımızı rahatlıkla yönetebilmek için “Portainer” adlı yazılımın kullanılmasınıda şiddetle tavsiye ederim işinizi inanılmaz kolaylaştırmaktır. Yakında bununla ilgili bir yazıda paylaşmayı planlıyorum.
2. N8N Docker İmajının Çekilmesi
N8N’in resmi docker imajı mevcut gerekli döküman ve docker güncel versiyonlarına https://hub.docker.com/r/n8nio/n8n adresinden erişebilirsiniz. Ek olarak bir hata veya başka bir sorun durumunda başvuracağınız dökümanlara ise https://docs.n8n.io/ bu adresten ulaşabilirsiniz. İmajı sunucumuza çekmek için:
docker pull n8nio/n8n:latest
Komutunu yazmanız yeterlidir “latest” diye belirttiğimiz bölümde en güncel sürümünü indirmesini söylüyoruz ama sizler farklı versiyonunu indirmek isterseniz iki nokta üst üsteden (:) sonraki bölümü yani “latest” bölümünü silip 1.110.1 yazabilirsiniz bu sefer “1.110.1” versiyonunu çekmiş olur. Bunlara Tag denmektedir bu taglerede yine docker hub sayfasından Tags sekmesinden ulaşabilir yada https://hub.docker.com/r/n8nio/n8n/tags bu linkten de ulaşabilirsiniz.
3. Container’ı Oluşturma ve Çalıştırma
Artık sunucu image’ımızı indirdiğimize göre sunucuyu oluşturup çalıştırabiliriz. Aşağıda bir kaç farklı komut vereceğim sizlere hangisi uygunsa ona göre kurulum yapabilirsiniz.
docker run -d \
--name n8n \
-p 5678:5678 \
-e WEBHOOK_URL=https://SUBDOMAIN-WEB-ADRESI/ \
-e GENERIC_TIMEZONE="Europe/Istanbul" \
-e TZ="Europe/Istanbul" \
-v /opt/n8n:/home/node/.n8n \
n8nio/n8n:latest
Yukarıdaki kodda optimal kurulum komutudur. Burada dikkat etmeniz gereken şey “WEBHOOK_URL” environment ının doğru girilmesi ve nginx proxy ile buraya yönlendirmeniz olacaktır. Bunun detayını sizlere vereceğim. Tabi burada 5678 portunu dış dünyaya açmışız nginx proxy kullanacaksanız “-p 5678:5678” satırını silebilirsiniz.
Nginix proxy kullanmayacaksınız direkt porttan kullanacaksanız “-e WEBHOOK_URL=http://SUNUCU_IP/” şeklinde WEBHOOK satırını güncellemeniz doğru olacaktır.
“-v /opt/n8n:/home/node/.n8n ” satırında ise gerekli olan kayıtlı dosyalarınızı sunucunuzda tutmanızı sağlıyor bu sayede containerınızı silip tekrar kurulum yaptığınızda önceden oluşturduğunuz otomasyonlar kaybolmayacaktır.
Nginx ile proxy yaparak belirlediğiniz bir subdomainde ssl sertifikalı olarak yayın yapmak isterseniz gerekli ayar dosyasını aşağıda paylaşacağım. Nginx Proxy ile kullanacaksınız tekrar hatırlatmakta fayda var “-p 5678:5678” silerseniz nginx dışında erişim sağlanmaz.
server {
listen 80;
server_name subdomain.websiteniz;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name subdomain.websiteniz; # your domain
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:20m;
ssl_session_tickets off;
ssl_certificate /etc/nginx/ssl/DOMAIN-NAME/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/DOMAIN-NAME/privkey.pem;
location / {
proxy_pass http://n8n:5678; # N8N container adı kullanılabilir.
chunked_transfer_encoding off;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header Connection '';
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $proxy_add_forwarded;
}
}
Yukarıdaki yapılandırmada veritabanı olarak sqlite kullanmakta basit, hafif, yüksek trafik almayan bir n8n kullanacaksanız bu şekilde kurulum işinizi görür fakat yüksek trafik ve performans isteyen bir yapı planınız varsa mevcut PostgreSQL sunucunuza da kurulum yapabilme şansınız var buda şu şekilde:
docker run -d \
--name n8n \
-p 5678:5678 \
-e WEBHOOK_URL=https://SUBDOMAIN-WEB-ADRESI/ \
-e GENERIC_TIMEZONE="Europe/Istanbul" \
-e TZ="Europe/Istanbul" \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
-e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
-e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
-e DB_POSTGRESDB_USER=<POSTGRES_USER> \
-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
-v /opt/n8n:/home/node/.n8n \
n8nio/n8n:latest
Yukarıdaki işlemleri yaptıktan sonra sunucunuz kurulmuş olacaktır. Nginx ile kullanacaksanız https://subdomain.websiteniz şeklinde ulaşabilirsiniz yada sadece port ile erişecekseniz http://SUNUCU-IP:5678 adresinden giriş yaptığınızda sizden kullanıcı oluşturmanızı isteyecektir kullanıcıyı oluşturduktan sonra ise rahatlıkla kullanabilirsiniz. Yakında oluşturduğum bir kaç otomasyonuda burada paylaşacağım. Herhangi bir sorun veya hatalı bir durum varsa buradan yorum yazarak bana ulaşabilirsiniz iyi günler dilerim.