Un agent IA est rarement un seul processus. Il y a la boucle de l'agent elle-même, un magasin vectoriel pour la mémoire, un cache, souvent une base de données pour l'état, et peut-être un petit tableau de bord. Faire tourner chacun à la main — les démarrer, les relancer après un reboot, se rappeler quel port est lequel — devient vite pénible. Docker Compose décrit tout ça dans un fichier et le lance en une commande. Voici la stack copier-coller pour mettre un agent sur un VPS proprement.
Si vous voulez juste la version déployée-sans-Docker, le guide faire tourner un agent IA 24/7 couvre plutôt systemd. Cette page est la version native conteneur.
La stack
Un agent auto-hébergé typique veut quatre choses à ses côtés : le processus de l'agent, Qdrant (mémoire vectorielle), Redis (cache / files) et Postgres (état). Voici un docker-compose.yml qui fait tourner tout ça, avec les services internes tenus hors de l'internet 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: {} }
Les secrets vivent dans .env, pas dans le fichier compose :
# /opt/agent/.env (chmod 600, never committed)
ANTHROPIC_API_KEY=sk-ant-...
DB_PASSWORD=a-long-random-string
Lancez-la :
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
Chaque service interne (Qdrant, Redis, Postgres) n'est joignable que sur le réseau compose par le nom de service — aucun d'eux n'est publié sur internet. L'agent leur parle via ce réseau privé, et rien sur ces ports ne fait face au monde.
Les détails qui comptent
restart: unless-stoppedsur chaque service — c'est ce qui survit à un reboot ou un crash. Activez Docker au démarrage et toute la stack revient d'elle-même.- Clés dans
.env, pas dans le YAML. Référencez-les comme variables env ; gardez.envenchmod 600et hors de git. Un fichier compose fuité avec une clé active est l'erreur classique. - Ne publiez rien qui ne le doit. Un agent qui n'appelle que des API de modèles et ses propres services n'a besoin d'aucun port entrant — donc un plan NAT convient. N'ajoutez une IP dédiée que s'il sert des webhooks ou un tableau de bord.
- Dimensionnez pour la mémoire, pas les cœurs. Les agents adossés à une API sont légers. Si l'index de Qdrant grossit ou que vous ajoutez un modèle local, c'est là que vous montez — voyez VPS haute-mémoire pour agents.
La partie vraiment à nous : l'agent peut construire sa propre machine
Parce qu'EQVPS expose un serveur MCP, un agent faisant tourner cette stack peut provisionner un autre VPS propre par lui-même — le commander, obtenir le root, le démonter — en payant depuis un solde crypto prépayé. Une stack compose qui a besoin d'un bac à sable neuf peut en démarrer un sans humain dans la boucle.
Pourquoi EQVPS pour un agent dockerisé
- Images propres, root en ~60 secondes. Ubuntu/Debian ;
docker compose upet la stack est en ligne. - Sans KYC, paiement en crypto. Un e-mail pour s'inscrire, USDC/USDT pour payer — rien ne lie la machine à votre identité.
- NVMe + 1 Gbit/s non mesuré, UE (Allemagne/Finlande). Tirer des images et expédier des logs ne produira pas de facture surprise.
VPS pour agents IA (l'aperçu) → · VPS pour Docker → · Héberger une base vectorielle pour la mémoire de l'agent →
Commentaires
Pas encore de commentaires. Soyez le premier.