---
title: Docker Compose
description: Exécutez Human Plugin sur un seul hôte avec Docker Compose, connecté à votre base de données PostgreSQL.
canonical: https://developer.unico.io/fr/human-plugin/self-hosting/docker-compose
locale: fr
generated_by: markdown-export
---

# Docker Compose

Un conteneur Human Plugin sur un hôte, connecté à votre base de données PostgreSQL.

## Prérequis

- Docker Engine 24 ou supérieur avec Docker Compose v2.
- Une base de données PostgreSQL dédiée à Human Plugin, accessible depuis l'hôte. Voir [Prérequis et accès](/fr/human-plugin/get-started/prerequisites).
- Les identifiants du registre et la clé d'accès fournis par Unico.

## 1. Se connecter au registre

Une fois par hôte. Docker conserve l'identifiant dans `~/.docker/config.json`.

```bash
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
```

## 2. Écrire les paramètres

Créez un répertoire pour Human Plugin et un fichier `.env` lisible uniquement par son propriétaire :

```bash
mkdir -p /opt/human-plugin && cd /opt/human-plugin
```

```bash title=".env"
HUMAN_API_ACCESS_KEY=<your access key>
POSTGRES_ADDRESS_HOST=<database host>
POSTGRES_USER=human_plugin
POSTGRES_PASSWORD=<database password>
```

```bash
chmod 600 .env
```

Ajoutez `POSTGRES_ADDRESS_PORT`, `POSTGRES_DATABASE` ou `POSTGRES_SSL_MODE` uniquement si votre base de données diffère des valeurs par défaut décrites dans [Configuration](/fr/human-plugin/self-hosting/configuration). Ne versionnez jamais le fichier `.env`.

## 3. Écrire `compose.yaml`

```yaml title="compose.yaml"
services:
  human-plugin:
    image: pkg.unico.run/human-plugin-api:latest
    pull_policy: always
    restart: unless-stopped
    stop_grace_period: 60s
    env_file: .env
    ports:
      - "127.0.0.1:8080:8080"
```

- **`ports` :** publiez uniquement sur `127.0.0.1` ou sur une interface privée, jamais sur `0.0.0.0`. Human Plugin n'a pas d'authentification propre : voir [Réseau et sécurité](/fr/human-plugin/self-hosting/networking-and-security).
- **`stop_grace_period: 60s` :** à l'arrêt, Human Plugin attend jusqu'à 55 secondes les requêtes en cours. Un délai plus court peut interrompre une création.
- **`pull_policy: always` :** chaque `up` vérifie la dernière image, ce qui vous garantit d'exécuter la version la plus récente.

## 4. Démarrer

```bash
docker compose up -d
```

```bash
curl --fail http://127.0.0.1:8080/health/ready
```

N'acheminez du trafic vers Human Plugin qu'après que `/health/ready` répond `200`. Exécutez ensuite la requête de création du [Démarrage rapide](/fr/human-plugin/get-started/quickstart#3-create-a-process) sur ce déploiement.

## Journaux et état

```bash
docker compose ps
```

```bash
docker compose logs -f human-plugin
```

Un démarrage sain se termine par la ligne `human plugin listening`. Consultez [Santé et supervision](/fr/human-plugin/self-hosting/health-and-monitoring#logs) pour le journal de démarrage complet. Si le conteneur redémarre en boucle, le journal en indique la raison : voir [Dépannage](/fr/human-plugin/additional-resources/troubleshooting).

## Mise à jour

```bash
docker compose pull && docker compose up -d
```

Compose ne remplace le conteneur que si l'image a changé. Voir [Exploitation](/fr/human-plugin/self-hosting/operations) pour savoir quoi vérifier après une mise à jour.

## Arrêt

```bash
docker compose down
```

Vos données se trouvent dans votre base de données PostgreSQL : arrêter ou supprimer le conteneur n'en fait perdre aucune.