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 ps→Up - [ ]
sudo ss -tlnp→ uygulama portları yalnızca127.0.0.1 - [ ] Yönetici hesabı oluşturuldu, uygulama açık değil
- [ ]
https://n8n.example.comkilit simgesiyle açılıyor - [ ] Canlı yürütme / akan yanıt çalışıyor (WebSocket başlıkları doğru)
- [ ]
N8N_ENCRYPTION_KEYve.envdosyaları yedeklendi - [ ] Yedek alma yöntemi belirlendi ve bir kez test edildi