Skip to content

Docker Compose

Déployez Stib avec Docker Compose pour une configuration prête pour la production, déclarative et reproductible. Définissez toute votre configuration dans un seul fichier compose.yaml et gérez Stib avec de simples commandes docker compose — facile à maintenir et entièrement reproductible.

TIP

Vous cherchez une installation plus simple avec un seul conteneur ? Consultez le guide Docker pour lancer Stib avec une seule commande docker run.

Prérequis

  • Docker Engine 20+ avec le plugin Compose (ou Docker Desktop qui inclut Compose)
  • Un terminal avec accès réseau à Docker Hub

Configuration

Créez un fichier compose.yaml dans votre répertoire de projet :

yaml
services:
  stib:
    image: enixion/stib-server:latest
    container_name: stib
    restart: unless-stopped
    ports:
      - "50505:50505"       # Interface web et API
    volumes:
      - stib-data:/app/data # Données persistantes (base de données, logs, sauvegardes, pièces jointes)
    environment:
      - RUST_LOG=info       # Niveau de journalisation
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:50505/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

volumes:
  stib-data:
yaml
services:
  stib:
    image: enixion/stib-server:latest
    container_name: stib
    restart: unless-stopped
    ports:
      - "50505:50505"       # Interface web et API
    volumes:
      - stib-data:/app/data # Données persistantes (base de données, logs, sauvegardes, pièces jointes)
    environment:
      - RUST_LOG=info                              # Niveau de journalisation (info, debug, warn)
      - STIB_ENCRYPTION_KEY=your-hex-key-here      # Chiffrement des identifiants (AES-256-GCM)
      - STIB_SERVER_ORIGIN=https://stib.example.com # URL de base pour les redirections OIDC
      - STIB_UPDATE_URL=https://your-update-endpoint # Endpoint de vérification des mises à jour
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:50505/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

volumes:
  stib-data:

Les exemples ci-dessus utilisent curl pour les vérifications de santé. Si votre image Docker n'inclut pas curl, utilisez wget à la place :

yaml
healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:50505/api/health"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 10s
yaml
healthcheck:
  test: ["CMD", "wget", "--spider", "-q", "http://localhost:50505/api/health"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 10s

Variables d'environnement

VariableDescriptionDéfautRequis
STIB_ENCRYPTION_KEYClé de chiffrement des identifiants (AES-256-GCM, 32 octets en hexadécimal)Uniquement si vous utilisez le chiffrement des identifiants
STIB_SERVER_ORIGINURL de base pour les redirections OIDC (ex. https://stib.example.com)http://localhost:50505Uniquement pour l'authentification OIDC SSO
STIB_UPDATE_URLEndpoint de vérification des mises à jourOptionnel
RUST_LOGNiveau de journalisation (info, debug, warn)infoOptionnel

Pour générer une clé de chiffrement valide :

bash
openssl rand -hex 32

Données persistantes

Stib stocke toutes ses données dans /app/data à l'intérieur du conteneur. Le volume nommé stib-data garantit la persistance des données entre les redémarrages et les mises à jour.

Le répertoire de données contient :

data/
├── stib.db          # Base de données SQLite (créée automatiquement)
├── logs/            # Logs journaliers rotatifs (7 fichiers max)
├── backups/         # Sauvegardes de la base de données
└── attachments/     # Pièces jointes des cartes
yaml
volumes:
  - stib-data:/app/data
yaml
volumes:
  - ./stib-data:/app/data

WARNING

Montez toujours un volume pour /app/data. Sans cela, vos données seront perdues à la suppression du conteneur.

Lancement

Démarrez Stib en mode détaché :

bash
docker compose up -d

Consulter les logs :

bash
docker compose logs -f stib

Vérifier le statut du conteneur :

bash
docker compose ps

Arrêt et redémarrage

Arrêter le service (les données sont conservées dans le volume) :

bash
docker compose down

Redémarrer le service :

bash
docker compose restart

Mise à jour

Téléchargez la dernière image et recréez le conteneur :

bash
docker compose pull
docker compose up -d

TIP

Vos données sont en sécurité — elles sont stockées dans le volume stib-data, pas dans le conteneur. Docker Compose ne recrée automatiquement que les conteneurs dont l'image a changé. Par précaution, sauvegardez la base de données avant la mise à jour :

bash
docker compose cp stib:/app/data/stib.db ./stib.db.bak

Vérifier l'installation

Vérifiez que Stib fonctionne :

bash
curl http://localhost:50505/api/health

Réponse attendue :

json
{"data":{"status":"ok"}}

Ouvrez ensuite http://localhost:50505 dans votre navigateur pour accéder à l'interface web.

INFO

L'image Docker est disponible pour les architectures amd64 et arm64.

Personnalisation

TIP

Modifications courantes du compose.yaml :

  • Port différent : Changez "50505:50505" en "8080:50505" pour exposer Stib sur le port 8080
  • Bind mount : Remplacez stib-data:/app/data par ./stib-data:/app/data pour stocker les données dans un répertoire local
  • Chiffrement : Ajoutez STIB_ENCRYPTION_KEY pour activer le chiffrement des identifiants — générez une clé avec openssl rand -hex 32

Étapes suivantes

TIP

Consultez le guide de configuration pour créer votre compte administrateur, configurer l'authentification OIDC et personnaliser votre instance.