Un agent AI e rareori un singur proces. Există bucla agentului în sine, o bază vectorială pentru memorie, un cache, de obicei o bază de date pentru stare și poate un mic dashboard. Să le rulezi pe fiecare de mână — să le pornești, să le repornești după un reboot, să ții minte ce port e al cui — devine repede obositor. Docker Compose descrie totul într-un singur fișier și îl rulează cu o singură comandă. Iată stackul gata de copiat pentru a pune un agent pe un VPS, ordonat.
Dacă vrei doar varianta de deploy fără Docker, ghidul pentru rularea unui agent AI 24/7 folosește în schimb systemd. Pagina asta e varianta nativă pe containere.
Stackul
Un agent găzduit de tine vrea de obicei patru lucruri lângă el: procesul agentului, Qdrant (memorie vectorială), Redis (cache / cozi) și Postgres (stare). Iată un docker-compose.yml care le rulează pe toate, cu serviciile interne ținute departe de internetul public:
# /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: {} }
Secretele stau în .env, nu în fișierul compose:
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
Pornește-l:
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
Fiecare serviciu intern (Qdrant, Redis, Postgres) e accesibil doar pe rețeaua compose, după numele serviciului — niciunul nu e publicat pe internet. Agentul vorbește cu ele prin rețeaua privată, iar nimic de pe porturile acelea nu e expus lumii.
Detaliile care contează
restart: unless-stoppedpe fiecare serviciu — asta supraviețuiește unei reporniri sau unei căderi. Activează Docker la boot și tot stackul revine singur.- Cheile în
.env, nu în YAML. Folosește-le ca variabile de mediu; ține.envlachmod 600și în afara git. Un fișier compose scurs, cu o cheie validă, e greșeala clasică. - Nu publica nimic ce nu trebuie. Un agent care doar apelează API-uri de modele și propriile servicii nu are nevoie deloc de port de intrare — deci merge un plan NAT. Adaugă un IP dedicat doar dacă servește webhookuri sau un dashboard.
- Dimensionează după memorie, nu după nuclee. Agenții pe API sunt ușori. Dacă indexul Qdrant crește mult sau adaugi un model local, abia atunci treci mai sus — vezi VPS cu multă memorie pentru agenți.
Partea care e chiar a noastră: agentul își poate construi singur mașina
Pentru că EQVPS expune un server MCP, un agent care rulează acest stack poate porni singur alt VPS curat — îl comandă, primește root, îl șterge —, plătind dintr-un sold cripto preplătit. Un stack compose care are nevoie de un sandbox nou poate porni unul fără niciun om în buclă.
De ce EQVPS pentru un agent în Docker
- Imagini curate, root în ~60 de secunde. Ubuntu/Debian;
docker compose upși stackul e online. - Fără KYC, plată cripto. E-mail la înregistrare, USDC/USDT la plată — nimic care să lege mașina de identitatea ta.
- NVMe + 1 Gbit/s nelimitat, în UE. Descărcarea imaginilor și trimiterea logurilor nu vor produce o factură surpriză.
VPS pentru agenți AI (prezentarea) → · VPS pentru Docker → · Găzduiește o bază vectorială pentru memoria agentului →
Comentarii
Încă nu există comentarii. Fii primul.