EQVPS

Docker Compose pour agents IA : une stack auto-hébergée complète sur un seul VPS

6 sept. 2026 · 3 min de lecture · EQVPS Team

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

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é

VPS pour agents IA (l'aperçu) → · VPS pour Docker → · Héberger une base vectorielle pour la mémoire de l'agent →

FAQ

Pourquoi faire tourner un agent IA avec Docker Compose plutôt qu'avec des processus bruts ?

Un agent est rarement un seul processus — c'est la boucle de l'agent plus un magasin vectoriel, un cache et souvent une base de données. Compose décrit toute la stack dans un fichier, la lance en une commande, redémarre chaque pièce au crash ou au reboot, et garde les services internes (Postgres, Redis, Qdrant) sur un réseau privé pour n'exposer que ce que vous choisissez. C'est la façon la plus propre d'auto-héberger un agent avec des pièces mobiles.

Quel plan faut-il pour une stack d'agent ?

Pour un agent adossé à une API (le modèle tourne chez votre fournisseur), la stack est légère — la boucle de l'agent, Qdrant, Redis et Postgres tiennent confortablement sur notre Small (8 $/mois) ou le plan AI-Agent (10 $/mois, 4 Go). Vous n'avez besoin de plus de RAM que si vous gardez un gros index vectoriel en mémoire ou faites tourner un modèle local, ce qui est une configuration différente et plus lourde.

Où mettre les clés API — dans le fichier compose ?

Non. Gardez les secrets dans un fichier .env (ignoré par git) et référencez-les comme variables d'environnement dans compose, ou utilisez les Docker secrets. Ne committez jamais les clés dans docker-compose.yml. Liez les services internes au seul réseau compose ; ne publiez que le port de l'agent (ou rien, s'il ne fait que des appels sortants).

Les conteneurs reviennent-ils après un reboot ?

Seulement si vous le leur dites. Mettez restart: unless-stopped (ou always) sur chaque service et activez Docker au démarrage ; alors docker compose up -d survit aux reboots et aux crashs. Sans politique de redémarrage, un conteneur reste éteint après le redémarrage du serveur.

Demandez-vous un KYC ou une carte ?

Non. Un e-mail pour s'inscrire, paiement en USDC ou USDT — pas de documents, pas de carte. Root en une minute environ.

← Retour au blogVoir les offres & tarifs →

Commentaires

Pas encore de commentaires. Soyez le premier.

Laisser un commentaire

Les commentaires sont modérés avant leur publication.