67 lines
2.8 KiB
Markdown
67 lines
2.8 KiB
Markdown
# Procédure de Mise à Jour de Bifrost (Gateway LLM)
|
|
|
|
## Contexte et Emplacement
|
|
- **Emplacement** : `/volume1/docker/bifrost/`
|
|
- **Compose** : `/volume1/docker/bifrost/docker-compose.yml`
|
|
- **Port** : `3085` (interne n8n, non exposé WAN direct)
|
|
- **Réseau** : `n8n`
|
|
|
|
---
|
|
|
|
## Précautions Critiques et Pièges Connus
|
|
|
|
1. **Pin Explicite de Version Obligatoire** :
|
|
Ne jamais laisser `image: maximhq/bifrost` sans tag (ce qui équivaut à un `:latest` implicite et provoque des dérives silencieuses). Toujours épingler la version cible exacte, ex. : `image: maximhq/bifrost:v1.6.11`.
|
|
|
|
2. **Sauvegarde Double Préalable** :
|
|
Dans `/volume1/docker/bifrost/data/`, il existe deux fichiers de configuration essentiels :
|
|
- `config.db` (base SQLite contenant la gouvernance, les virtual keys, les budgets et le mapping providers)
|
|
- `config.json` (configuration des providers et clés API amont)
|
|
Toujours sauvegarder les deux fichiers avec horodatage avant toute intervention :
|
|
```bash
|
|
cd /volume1/docker/bifrost/data
|
|
cp config.db "config.db.bak-$(date +%Y%m%d-%H%M%S)"
|
|
cp config.json "config.json.bak-$(date +%Y%m%d-%H%M%S)"
|
|
```
|
|
|
|
3. **Mécanisme de Rechargement des Clés Provider (Governance)** :
|
|
Au redémarrage d'un conteneur recréé, les virtual keys utilisent les autorisations enregistrées dans la table `governance_virtual_key_provider_configs` (`allow_all_keys = 1`).
|
|
Si après un restart un appel renvoie `provider not found`, vérifier et réactiver `allow_all_keys` dans `config.db` :
|
|
```sql
|
|
UPDATE governance_virtual_key_provider_configs SET allow_all_keys = 1;
|
|
```
|
|
|
|
4. **Taille de `logs.db`** :
|
|
Le fichier `/volume1/docker/bifrost/data/logs.db` enregistre l'historique complet des requêtes et tokens. Il peut atteindre plusieurs dizaines de Go (~98 Go relevés en août 2026). Ne pas tronquer sans validation explicite.
|
|
|
|
---
|
|
|
|
## Procédure Standard de Mise à Jour
|
|
|
|
```bash
|
|
# 1. Sauvegardes
|
|
cd /volume1/docker/bifrost/data
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
|
cp config.db "config.db.bak-$TIMESTAMP"
|
|
cp config.json "config.json.bak-$TIMESTAMP"
|
|
|
|
# 2. Modifier le tag dans docker-compose.yml
|
|
# image: maximhq/bifrost:vX.Y.Z
|
|
|
|
# 3. Pull et Recréation
|
|
cd /volume1/docker/bifrost
|
|
docker compose pull
|
|
docker compose up -d --force-recreate
|
|
|
|
# 4. Vérifications
|
|
curl -s http://192.168.100.33:3085/health # doit renvoyer {"components":{"db_pings":"ok"},"status":"ok"}
|
|
curl -s http://192.168.100.33:3085/api/version # doit renvoyer la nouvelle version
|
|
|
|
# 5. Test réel de complétion avec une Virtual Key valide
|
|
curl -s http://192.168.100.33:3085/v1/chat/completions -H "Authorization: Bearer $BIFROST_VK" -H "Content-Type: application/json" -d '{
|
|
"model": "deepseek-v4-flash",
|
|
"messages": [{"role": "user", "content": "ping"}],
|
|
"max_tokens": 5
|
|
}'
|
|
```
|