EQVPS

Yapay zekâ ajanları için Docker Compose: tek bir VPS'te tam bir kendi-barındırılan yığın

6 Eyl 2026 · 3 dk okuma · EQVPS Team

Bir yapay zekâ ajanı nadiren tek bir süreçtir. Ajan döngüsünün kendisi var, hafıza için bir vektör deposu, bir önbellek, genellikle durum için bir veritabanı ve belki küçük bir pano. Her birini elle çalıştırmak — başlatmak, yeniden başlatmadan sonra tekrar açmak, hangi portun hangisi olduğunu hatırlamak — çabucak yorucu olur. Docker Compose her şeyi tek dosyada tanımlar ve tek komutla çalıştırır. Bu, bir ajanı düzenli biçimde bir VPS'e koymak için kopyala-yapıştır yığındır.

Sadece Docker'sız dağıtım sürümünü istiyorsan, bir yapay zekâ ajanını 7/24 çalıştırma rehberi bunun yerine systemd'yi kapsar. Bu sayfa konteyner-yerel sürümdür.

Yığın

Tipik bir kendi-barındırılan ajan yanında dört şey ister: ajan süreci, Qdrant (vektör hafızası), Redis (önbellek / kuyruklar) ve Postgres (durum). İşte tüm bunları çalıştıran, iç hizmetleri kamusal internetten uzak tutan bir docker-compose.yml:

# /opt/agent/docker-compose.yml
services:
  agent:
    build: .                      # your agent image (or image: your/agent:latest)
    restart: unless-stopped
    env_file: [.env]              # OPENAI/ANTHROPIC keys etc. — never in this file
    environment:
      QDRANT_URL: http://qdrant:6333
      REDIS_URL: redis://redis:6379
      DATABASE_URL: postgres://agent:${DB_PASSWORD}@postgres:5432/agent
    depends_on: [qdrant, redis, postgres]
    # no ports: — this agent only makes outbound calls. Publish one only if it serves webhooks.

  qdrant:
    image: qdrant/qdrant:latest
    restart: unless-stopped
    volumes: ["qdrant:/qdrant/storage"]   # internal only — not published

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    command: ["redis-server", "--save", "60", "1"]
    volumes: ["redis:/data"]

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: agent
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: agent
    volumes: ["pg:/var/lib/postgresql/data"]

volumes: { qdrant: {}, redis: {}, pg: {} }

Sırlar .env'de yaşar, compose dosyasında değil:

# /opt/agent/.env  (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string

Ayağa kaldır:

apt update && apt install -y docker.io docker-compose-v2
systemctl enable --now docker
cd /opt/agent && docker compose up -d
docker compose logs -f agent

Her iç hizmet (Qdrant, Redis, Postgres) yalnızca compose ağında hizmet adıyla erişilebilirdir — hiçbiri internete yayınlanmaz. Ajan onlarla bu özel ağ üzerinden konuşur ve o portlardaki hiçbir şey dünyaya bakmaz.

Önemli olan ayrıntılar

Gerçekten bize ait olan kısım: ajan kendi makinesini kurabilir

EQVPS bir MCP sunucusu sunduğundan, bu yığını çalıştıran bir ajan kendi başına başka temiz bir VPS sağlayabilir — onu sipariş edip, root alıp, yıkabilir — önceden ödenmiş bir kripto bakiyesinden ödeyerek. Yeni bir kum havuzuna ihtiyaç duyan bir compose yığını, döngüde insan olmadan bir tane ayağa kaldırabilir.

Docker'lı bir ajan için neden EQVPS

Yapay zekâ ajanları için VPS (genel bakış) → · Docker için VPS → · Ajan hafızası için bir vektör DB barındır →

SSS

Bir yapay zekâ ajanını neden çıplak süreçler yerine Docker Compose ile çalıştırmalı?

Bir ajan nadiren tek bir süreçtir — ajan döngüsü artı bir vektör deposu, bir önbellek ve genellikle bir veritabanıdır. Compose tüm yığını tek dosyada tanımlar, hepsini tek komutla ayağa kaldırır, her parçayı çökme ya da yeniden başlatmada tekrar başlatır ve iç hizmetleri (Postgres, Redis, Qdrant) özel bir ağda tutarak yalnızca seçtiğinin açığa çıkmasını sağlar. Hareketli parçaları olan bir ajanı kendin barındırmanın en düzenli yoludur.

Bir ajan yığını hangi plana ihtiyaç duyar?

API destekli bir ajan için (model sağlayıcında çalışır) yığın hafiftir — ajan döngüsü, Qdrant, Redis ve Postgres Small'umuza (aylık 8$) ya da AI-Agent planına (aylık 10$, 4 GB) rahatça sığar. Yalnızca büyük bir vektör dizinini bellekte tutarsan ya da yerel bir model çalıştırırsan daha fazla RAM'e ihtiyacın olur ki bu farklı, daha ağır bir kurulumdur.

API anahtarlarını nereye koyarım — compose dosyasına mı?

Hayır. Sırları bir .env dosyasında (git tarafından yok sayılan) tut ve compose'da ortam değişkenleri olarak referans ver, ya da Docker secrets kullan. Anahtarları asla docker-compose.yml'ye commit'leme. İç hizmetleri yalnızca compose ağına bağla; yalnızca ajanın portunu yayınla (ya da yalnızca giden çağrılar yapıyorsa hiçbirini).

Konteynerler yeniden başlatmadan sonra geri gelir mi?

Yalnızca onlara söylersen. Her hizmete restart: unless-stopped (ya da always) koy ve Docker'ı açılışta etkinleştir; o zaman docker compose up -d yeniden başlatmaları ve çökmeleri atlatır. Yeniden başlatma politikası olmadan bir konteyner, sunucu yeniden başladıktan sonra kapalı kalır.

KYC ya da kart istiyor musunuz?

Hayır. Kaydolmak için bir e-posta, USDC veya USDT ile ödeme — belge yok, kart yok. Yaklaşık bir dakikada root.

← Blog'a dönPlanları ve fiyatları gör →

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.