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
restart: unless-stoppeddi tiap layanan — itulah yang bertahan melewati reboot atau crash. Aktifkan Docker saat boot dan seluruh stack kembali sendiri.- Kunci di
.env, bukan di YAML. Rujuk sebagai variabel env; jaga.envdichmod 600dan di luar git. File compose bocor dengan kunci aktif adalah kesalahan klasik. - Jangan publikasikan apa pun yang tak perlu. Agen yang hanya memanggil API model dan layanannya sendiri tak butuh port masuk sama sekali — jadi paket NAT bisa. Tambahkan IP khusus hanya jika ia melayani webhook atau dasbor.
- Ukur berdasarkan memori, bukan core. Agen berbasis API ringan. Jika indeks Qdrant membesar atau kamu menambah model lokal, di situlah kamu naik — lihat VPS memori tinggi untuk agen.
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
- Image bersih, root dalam ~60 detik. Ubuntu/Debian;
docker compose updan stack hidup. - Tanpa KYC, bayar dengan kripto. Email untuk mendaftar, USDC/USDT untuk membayar — tak ada yang mengikat mesin ke identitasmu.
- NVMe + 1 Gbit/s tak terukur, UE (Jerman/Finlandia). Menarik image dan mengirim log tak akan memunculkan tagihan kejutan.
VPS untuk agen AI (ringkasan) → · VPS untuk Docker → · Hosting basis data vektor untuk memori agen →
Komentar
Belum ada komentar. Jadilah yang pertama.