OffshoreVps
Eğitimler4 Eki 20267 dk okumaYazan: OffshoreVps ekibi

VPS’te Docker Compose ile n8n ve yapay zekâ ajanlarını dağıtın

n8n’i Postgres ve HTTPS ile kendiniz barındırın, bir yapay zekâ ajanı iş akışı oluşturun, webhook’ları koruyun, verileri ve şifreleme anahtarını yedekleyin.

n8n, uygulamaları, API’leri ve yapay zekâ modellerini görsel bir düzenleyiciyle birbirine bağlayan bir iş akışı aracıdır. Kendiniz barındırmak, iş akışlarınızın, kimlik bilgilerinizin ve verilerinizin kontrol ettiğiniz bir sunucuda kalması ve çalıştırmaların ölçülmemesi demektir. Bu rehber n8n’i Docker Compose, bir Postgres veritabanı ve HTTPS ile dağıtır; yapay zekâ ajanlarını 7/24 çalıştırmaya hazır hale getirir.

n8n ve yapay zekâ ajanlarını dağıtmak için kullanılan komutları gösteren VPS üzerindeki terminal penceresi, “mkdir -p ~/n8n && cd ~/n8n” ile başlıyor
Bu rehberde sunucunuzda çalıştıracağınız komutlardan örnekler.

Ajanlar için neden VPS?

Ajanlar çoğu zaman zamanlamayla çalışır veya webhook’lara tepki verir, bu yüzden sürekli açık ve erişilebilir bir sunucuya ihtiyaç duyarlar. VPS, webhook’lar için sabit bir adres ve iş akışlarının duyarlı kalması için yeterli RAM sağlar. 2 vCPU, 4 GB’lık bir plan küçük bir kurulum için uygundur. Boyutlar için yapay zekâ ajanı hosting’ine bakın; yerel modeller istiyorsanız bir GPU sunucusu ekleyin.

Başlamadan önce

Adım 1: Compose dosyası

mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: n8n
    volumes:
      - db:/var/lib/postgresql/data

  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    depends_on: [db]
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: db
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
      N8N_HOST: n8n.example.com
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.example.com/
      N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
      GENERIC_TIMEZONE: UTC
    ports:
      - "127.0.0.1:5678:5678"
    volumes:
      - n8n:/home/node/.n8n

volumes:
  db:
  n8n:
YAML

Adım 2: gizli anahtarlar

cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env

ENCRYPTION_KEY değerini yedekleyin. Onsuz n8n, sakladığı kimlik bilgilerinin şifresini çözemez.

Bu rehberin adımları sırasıyla: 1. Ajanlar için neden VPS?; 2. Başlamadan önce; 3. gizli anahtarlar; 4. n8n’i başlatın; 5. bir ajan iş akışı oluşturun; 6. Güvende tutun
Bu rehberdeki adımlar sırasıyla.

Adım 3: n8n’i başlatın

docker compose up -d
docker compose logs -f n8n

Adım 4: HTTPS

n8n.example.com {
  reverse_proxy 127.0.0.1:5678
}

Caddy’yi yeniden yükleyin, siteyi açın ve sahip hesabını oluşturun.

Adım 5: bir ajan iş akışı oluşturun

  1. Bir Webhook veya Schedule tetikleyicisi ekleyin.
  2. Bir AI Agent düğümü ekleyin ve bir sohbet modeli bağlayın; örneğin barındırılan bir API veya kendi GPU sunucunuzda Ollama.
  3. Ajana HTTP istekleri, bir veritabanı veya bir mesajlaşma düğümü gibi araçlar verin.
  4. Elle çalıştırarak test edin, ardından iş akışını etkinleştirin.

Güvende tutun

  • n8n’i 127.0.0.1’e bağlayın ve yalnızca HTTPS proxy’sini dışarı açın.
  • Mümkün olduğunda webhook’ları gizli bir başlık veya yol ile koruyun.
  • Postgres birimini ve n8n birimini yedekleyin. restic veya borg ile yedeklemelere bakın.
  • Sürüm notlarını okuduktan sonra docker compose pull && docker compose up -d ile güncelleyin.