
# Déployer Sovrium avec Docker Compose et PostgreSQL

Vous voulez que l'app et sa base PostgreSQL démarrent ensemble comme une seule stack, la base étant reliée par un unique `DATABASE_URL`.

## Définir la stack

```yaml
# compose.yaml
services:
  db:
    image: postgres:17
    environment:
      POSTGRES_PASSWORD: sovrium
      POSTGRES_DB: sovrium
    volumes: ['db-data:/var/lib/postgresql/data']
  app:
    image: ghcr.io/sovrium/sovrium:latest
    command: start /app/app.ts
    depends_on: [db]
    ports: ['3000:3000']
    volumes: ['./app.ts:/app/app.ts:ro']
    environment:
      DATABASE_URL: postgres://postgres:sovrium@db:5432/sovrium
      AUTH_SECRET: change-me-to-32-byte-hex
      SOVRIUM_ENCRYPTION_KEY: change-me-to-32-byte-hex
      BASE_URL: http://localhost:3000
volumes:
  db-data:
```

## Lancer et vérifier

```bash
docker compose up -d
curl -fsS http://localhost:3000/ >/dev/null && echo "up"
```

Comme `DATABASE_URL` est défini, Sovrium tourne sur Postgres et applique son schéma au démarrage.

## Suite

- [Infrastructure de base de données](/fr/docs/database-infrastructure) — le moteur Postgres que Sovrium cible.
- [Migrations de schéma](/fr/docs/migrations) — comment le schéma évolue à chaque démarrage.
- [Durcissement de la sécurité](/fr/docs/security-hardening) — remplacez les secrets d'exemple avant la production.
