EQVPS
Mulai

Docker Compose untuk agen AI: satu stack swakelola penuh di satu VPS

6 Sep 2026 · 3 mnt baca · EQVPS Team

Agen AI jarang berupa satu proses. Ada loop agen itu sendiri, sebuah penyimpanan vektor untuk memori, sebuah cache, biasanya sebuah basis data untuk state, dan mungkin sebuah dasbor kecil. Menjalankan tiap-tiap secara manual — memulainya, me-restart-nya setelah reboot, mengingat port mana yang mana — cepat melelahkan. Docker Compose mendeskripsikan seluruhnya dalam satu file dan menjalankannya dengan satu perintah. Ini stack salin-tempel untuk menaruh agen di VPS secara rapi.

Kalau kamu hanya mau versi deploy-tanpa-Docker, panduan menjalankan agen AI 24/7 membahas systemd. Halaman ini adalah versi kontainer-native.

Stack-nya

Agen swakelola tipikal ingin empat hal di sampingnya: proses agen, Qdrant (memori vektor), Redis (cache / antrean) dan Postgres (state). Berikut docker-compose.yml yang menjalankan semuanya, dengan layanan internal dijaga jauh dari internet publik:

# /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: {} }

Rahasia hidup di .env, bukan file compose:

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

Angkat:

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

Setiap layanan internal (Qdrant, Redis, Postgres) hanya dapat dijangkau di jaringan compose lewat nama layanan — tak satu pun dipublikasikan ke internet. Agen bicara dengan mereka lewat jaringan privat itu, dan tak ada di port-port itu yang menghadap dunia.

Detail yang penting

Bagian yang benar-benar milik kami: agen bisa membangun mesinnya sendiri

Karena EQVPS menyediakan server MCP, agen yang menjalankan stack ini bisa menyediakan VPS bersih lain sendiri — memesannya, mendapat root, membongkarnya — membayar dari saldo kripto prabayar. Stack compose yang butuh sandbox baru bisa mengangkat satu tanpa manusia dalam loop.

Kenapa EQVPS untuk agen berkontainer

VPS untuk agen AI (ringkasan) → · VPS untuk Docker → · Hosting basis data vektor untuk memori agen →

Pertanyaan umum

Kenapa menjalankan agen AI dengan Docker Compose alih-alih proses telanjang?

Agen jarang hanya satu proses — ia adalah loop agen plus penyimpanan vektor, cache, dan biasanya basis data. Compose mendeskripsikan seluruh stack dalam satu file, mengangkat semuanya dengan satu perintah, me-restart tiap bagian saat crash atau reboot, dan menjaga layanan internal (Postgres, Redis, Qdrant) di jaringan privat sehingga hanya yang kamu pilih yang terekspos. Ini cara terrapi untuk swakelola agen dengan bagian-bagian yang bergerak.

Paket apa yang dibutuhkan stack agen?

Untuk agen berbasis API (model berjalan di penyedia) stack-nya ringan — loop agen, Qdrant, Redis dan Postgres muat nyaman di Small kami ($8/bln) atau paket AI-Agent ($10/bln, 4 GB). Kamu hanya butuh RAM lebih jika menyimpan indeks vektor besar di memori atau menjalankan model lokal, yang merupakan penyiapan berbeda dan lebih berat.

Kunci API ditaruh di mana — di file compose?

Tidak. Simpan rahasia di file .env (diabaikan git) dan rujuk sebagai variabel lingkungan di compose, atau gunakan Docker secrets. Jangan pernah commit kunci ke docker-compose.yml. Ikat layanan internal hanya ke jaringan compose; publikasikan hanya port agen (atau tidak sama sekali, jika ia hanya membuat panggilan keluar).

Apakah kontainer kembali setelah reboot?

Hanya jika kamu memintanya. Set restart: unless-stopped (atau always) di tiap layanan dan aktifkan Docker saat boot; maka docker compose up -d bertahan melewati reboot dan crash. Tanpa kebijakan restart, sebuah kontainer tetap mati setelah server restart.

Apakah Anda meminta KYC atau kartu?

Tidak. Email untuk mendaftar, bayar dengan USDC atau USDT — tanpa dokumen, tanpa kartu. Root dalam sekitar semenit.

← Kembali ke blogLihat paket dan harga →

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.