Runbook: Configuration Bull Board (Monitoring)¶
PD-3 CA-05 | Temps max: 15 min | Prérequis: Docker installé
Prérequis¶
- Docker et Docker Compose installés
- Accès au serveur où tourne le backend
- Credentials Redis (Vault:
kv/infra/redis)
Diagnostic¶
1. Vérifier si Bull Board est déjà déployé¶
2. Vérifier la connectivité Redis¶
Résultat attendu: PONG
Résolution¶
Étape 1: Créer le fichier docker-compose¶
cat > /opt/bull-board/docker-compose.yml << 'EOF'
version: '3.8'
services:
bull-board:
image: deadly0/bull-board:latest
container_name: bull-board
restart: unless-stopped
ports:
- "3001:3000"
environment:
REDIS_HOST: ${REDIS_HOST:-localhost}
REDIS_PORT: ${REDIS_PORT:-6379}
REDIS_PASSWORD: ${REDIS_PASSWORD}
REDIS_USE_TLS: ${REDIS_TLS:-false}
BULL_PREFIX: bull
networks:
- probatiovault
networks:
probatiovault:
external: true
EOF
Étape 2: Créer le fichier .env¶
cat > /opt/bull-board/.env << EOF
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your-redis-password
REDIS_TLS=false
EOF
Étape 3: Démarrer Bull Board¶
Étape 4: Vérifier le démarrage¶
Résultat attendu: Server is running on port 3000
Vérification¶
1. Accéder à l'interface web¶
Résultat attendu: Page HTML de Bull Board
2. Vérifier les queues visibles¶
Ouvrir dans le navigateur: http://SERVER_IP:3001
Résultat attendu: - Queue default visible - Queue backup visible - Queue export visible - Queue blockchain visible
3. Vérifier les jobs¶
Dans l'interface Bull Board: - Onglet "Waiting": jobs en attente - Onglet "Active": jobs en cours - Onglet "Completed": jobs terminés - Onglet "Failed": jobs en échec
Rollback¶
Arrêter Bull Board¶
Supprimer complètement¶
Configuration avancée¶
Ajouter authentification (recommandé en prod)¶
# Dans docker-compose.yml, ajouter:
services:
bull-board:
environment:
# ... autres vars
BULL_BOARD_USERNAME: admin
BULL_BOARD_PASSWORD: secure-password
Configurer Nginx reverse proxy¶
server {
listen 443 ssl;
server_name bull-board.probatiovault.com;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Alternative: API native¶
Si Bull Board n'est pas souhaité, utiliser les endpoints API natifs:
# Statut d'un job
curl http://localhost:3000/jobs/{queue}/{jobId}/status
# Statistiques
curl http://localhost:3000/jobs/stats
# Liste des jobs failed
curl http://localhost:3000/jobs/failed
# Intégrité des données (PD-3)
curl http://localhost:3000/health/jobs/integrity
Critère de succès¶
- Container Bull Board running
- Interface web accessible
- Toutes les queues visibles (default, backup, export, blockchain)
- Jobs visibles dans les différents onglets
Références¶
- PD-3-specification.md: CA-02 (observabilité), INV-02
- PD-3-plan.md: Section 11 Phase 3
- TC-INV-02: État consultable à tout moment