Opérations on-premise¶
Procédure de mise à jour¶
# 1. Sauvegardez la base de données et le stockage (votre responsabilité)
# 2. Récupérez les dernières modifications et recompilez
cd kanap
git pull origin main
docker build -t kanap-api:latest ./backend
docker build -t kanap-web:latest ./frontend
# 3. Redémarrez les conteneurs (les migrations s'exécutent automatiquement)
docker compose -f infra/compose.onprem.yml up -d
# 4. Vérifiez le démarrage
docker compose -f infra/compose.onprem.yml logs -f api
# Attendez le message "Application started"
Changements majeurs : Consultez le CHANGELOG.md avant de mettre à jour.
Retour arrière : Restaurez la base de données depuis une sauvegarde. Les migrations sont uniquement progressives.
Support des versions¶
KANAP est une solution en évolution rapide et nous recommandons une mise à jour mensuelle. Pour les clients sous contrat de support, une mise à jour vers la dernière version peut être demandée avant le traitement d'une demande de support.
Sauvegarde & Restauration¶
- PostgreSQL : Utilisez
pg_dump/pg_restoreou les sauvegardes de base de données managée - Stockage S3 : Utilisez le versionnement de bucket, la réplication ou les sauvegardes du fournisseur
Recommandation : Sauvegardes quotidiennes de la base de données, conservation d'au moins 30 jours.
Supervision¶
Endpoint de santé :
GET /api/health → { "status": "ok" }
Santé des conteneurs :
docker compose -f infra/compose.onprem.yml ps
docker compose -f infra/compose.onprem.yml logs -f api
Métriques clés :
- Conteneurs en cours d'exécution (api, web)
- Mémoire API sous ~1 Go
- Connexions à la base de données
- Utilisation du stockage
Dépannage¶
| Symptôme | Vérification | Solution |
|---|---|---|
| Les conteneurs ne démarrent pas | docker compose logs api |
Vérifiez les erreurs de démarrage |
| « Database connection failed » | Vérifiez DATABASE_URL |
Vérifiez l'accessibilité/les identifiants PostgreSQL |
| « S3 error » | Vérifiez les variables S3_* | Assurez-vous que le bucket existe et que les autorisations sont correctes |
| Échec de migration | Vérifiez la version PostgreSQL | Doit être 16+, extensions disponibles |
| 502 du reverse proxy | docker compose ps |
Assurez-vous que le conteneur api est en cours d'exécution sur le port 8080 |
| Impossible de se connecter | Vérifiez les identifiants .env |
Utilisez la réinitialisation de mot de passe ci-dessous |
Réinitialisation de mot de passe¶
Recommandé : Configurez l'email (API Resend ou SMTP single-tenant) et utilisez le flux « Mot de passe oublié ».
Solution de secours (SQL) : Si l'email n'est pas configuré, réinitialisez les mots de passe directement dans la base de données.
1) Générez un hash de mot de passe :
# En utilisant Node.js avec argon2
# (argon2 est une dépendance de production dans l'image API)
docker compose -f infra/compose.onprem.yml exec api \
node -e "require('argon2').hash('NewPassword123!').then(h => console.log(h))"
2) Mettez à jour l'utilisateur dans PostgreSQL :
UPDATE users
SET password_hash = '$argon2id$v=19$m=65536,t=3,p=4$...'
WHERE email = 'user@company.com';
Cette méthode SQL est une solution de dernier recours pour les administrateurs bloqués.