Ana içeriğe geç

n8n, Open WebUI ve AI uygulamaları#

Bu araçların bulut sürümleri kullanışlıdır, ta ki üç şeyden biri olana kadar: kotayı aşarsınız, fiyat kullandıkça artar, ya da işlediğiniz veriyi başkasının sunucusuna göndermek istemezsiniz.

Üçü de kendi sunucunuzda barındırarak çözülür. Bu sayfa nasıl yapılacağını anlatır.

En kısa yol: tek tıkla kurulum

VeriTeknik VPS'inde bu uygulamaların çoğu panelden tek tıkla kurulabiliyor - n8n, Open WebUI, LibreChat ve diğerleri. Sunucunuzu aldıktan sonra panelden uygulamayı seçmeniz yeterli; aşağıdaki adımların hiçbirini yapmanız gerekmez.

Bu sayfa, tek tık listesinde olmayan bir şey kurmak istediğinizde ya da nasıl çalıştığını anlamak istediğinizde işinize yarar.


Ne kadar sunucu gerekir?#

Uygulama Minimum Rahat
n8n (otomasyon) 1 vCPU / 2 GB 2 vCPU / 4 GB
Open WebUI (harici API ile) 1 vCPU / 2 GB 2 vCPU / 4 GB
Open WebUI + Ollama (yerel model) 4 vCPU / 16 GB GPU gerekir

Yerel model çalıştırmak istiyorsanız

Ollama ile 7B'lik bir modeli CPU üzerinde çalıştırabilirsiniz ama yavaştır - saniyede birkaç token. Ciddi kullanım için GPU gerekir.

Alternatif: Open WebUI'yi kurup VeriTeknik AI Bulut üzerindeki OpenAI uyumlu API'ye bağlayın. Model gücü bizde, arayüz ve veri sizde kalır. Ayrıntı: AI Bulut (PaaS).


n8n kurulumu#

Compose ile kurmak en temizi. /opt/n8n/docker-compose.yml:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.example.com/
      - GENERIC_TIMEZONE=Europe/Istanbul
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

Şifreleme anahtarını üretin ve .env dosyasına koyun:

cd /opt/n8n
echo "N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)" > .env
chmod 600 .env
docker compose up -d

N8N_ENCRYPTION_KEY'i kaybetmeyin

n8n, bağladığınız servislerin kimlik bilgilerini bu anahtarla şifreler. Anahtarı kaybederseniz kayıtlı tüm kimlik bilgileri okunamaz hale gelir ve hepsini yeniden girmeniz gerekir. Yedekleyin.

127.0.0.1:5678 bağlaması bilinçlidir - neden önemli olduğu Docker sayfasında.


Open WebUI kurulumu#

/opt/openwebui/docker-compose.yml:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - OPENAI_API_BASE_URL=https://api.veriteknik.com/v1
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
    volumes:
      - openwebui_data:/app/backend/data

volumes:
  openwebui_data:
cd /opt/openwebui
{
  echo "OPENAI_API_KEY=sk-..."
  echo "WEBUI_SECRET_KEY=$(openssl rand -hex 32)"
} > .env
chmod 600 .env
docker compose up -d

Alan adına bağlayın#

Her uygulama için bir alt alan adı kullanmak en temizi: n8n.example.com, chat.example.com.

DNS'te her biri için A kaydı açın, sonra Nginx:

server {
    listen 80;
    server_name n8n.example.com;

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        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;
        proxy_read_timeout 300s;
    }
}

WebSocket ve uzun istekler

Upgrade / Connection başlıkları n8n'in canlı yürütme görünümü ve Open WebUI'nin akan yanıtları için zorunludur. proxy_read_timeout da uzatılmalı; varsayılan 60 saniye uzun bir AI yanıtını yarıda keser.

sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d n8n.example.com

Bunları mutlaka yapın#

Kimlik doğrulamayı açın. İki uygulama da ilk açılışta yönetici hesabı oluşturmanızı ister. Bunu hemen yapın - kurup açık bırakılan bir n8n, internetteki herkesin sizin adınıza iş akışı çalıştırabileceği bir makinedir.

Yedek alın. Veri Docker volume'lerinde:

docker run --rm \
  -v n8n_n8n_data:/data \
  -v /opt/yedek:/yedek \
  alpine tar czf /yedek/n8n-$(date +%F).tar.gz -C /data .

Panelden snapshot almak da bir seçenek ve daha kolay.

Güncel tutun. Bu projeler hızlı ilerliyor:

cd /opt/n8n && docker compose pull && docker compose up -d && docker image prune -f

Morpheus ile

"n8n'i güncelle ve eski imajları temizle"

"her ayın ilk günü n8n yedeği al ve bana bildir"


Kontrol listesi#

  • [ ] docker compose psUp
  • [ ] sudo ss -tlnp → uygulama portları yalnızca 127.0.0.1
  • [ ] Yönetici hesabı oluşturuldu, uygulama açık değil
  • [ ] https://n8n.example.com kilit simgesiyle açılıyor
  • [ ] Canlı yürütme / akan yanıt çalışıyor (WebSocket başlıkları doğru)
  • [ ] N8N_ENCRYPTION_KEY ve .env dosyaları yedeklendi
  • [ ] Yedek alma yöntemi belirlendi ve bir kez test edildi