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 :
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: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 :
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:50505/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10shealthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:50505/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10sVariables d'environnement
| Variable | Description | Défaut | Requis |
|---|---|---|---|
STIB_ENCRYPTION_KEY | Clé de chiffrement des identifiants (AES-256-GCM, 32 octets en hexadécimal) | — | Uniquement si vous utilisez le chiffrement des identifiants |
STIB_SERVER_ORIGIN | URL de base pour les redirections OIDC (ex. https://stib.example.com) | http://localhost:50505 | Uniquement pour l'authentification OIDC SSO |
STIB_UPDATE_URL | Endpoint de vérification des mises à jour | — | Optionnel |
RUST_LOG | Niveau de journalisation (info, debug, warn) | info | Optionnel |
Pour générer une clé de chiffrement valide :
openssl rand -hex 32Donné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 cartesvolumes:
- stib-data:/app/datavolumes:
- ./stib-data:/app/dataWARNING
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é :
docker compose up -dConsulter les logs :
docker compose logs -f stibVérifier le statut du conteneur :
docker compose psArrêt et redémarrage
Arrêter le service (les données sont conservées dans le volume) :
docker compose downRedémarrer le service :
docker compose restartMise à jour
Téléchargez la dernière image et recréez le conteneur :
docker compose pull
docker compose up -dTIP
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 :
docker compose cp stib:/app/data/stib.db ./stib.db.bakVérifier l'installation
Vérifiez que Stib fonctionne :
curl http://localhost:50505/api/healthRéponse attendue :
{"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/datapar./stib-data:/app/datapour stocker les données dans un répertoire local - Chiffrement : Ajoutez
STIB_ENCRYPTION_KEYpour activer le chiffrement des identifiants — générez une clé avecopenssl 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.