Changer le secret de l’instance
Remplacer BETTER_AUTH_SECRET sans reconnecter vos banques : la rotation en deux déploiements, ce qui se passe au démarrage, et le cas d’ENCRYPTION_KEY.
La variable BETTER_AUTH_SECRET est le secret de votre instance. Elle signe les sessions de connexion, et la clé qui chiffre les identifiants bancaires et le jeton GitHub de la page Mises à jour en est dérivée (sauf si vous avez défini ENCRYPTION_KEY). Si elle a pu être lue par quelqu’un d’autre (capture d’écran, fichier partagé, ancien prestataire), remplacez-la.
Ne la changez pas d’un coup : les identifiants bancaires chiffrés avec l’ancien secret ne s’ouvriraient plus, et il faudrait reconnecter chaque banque. Kledg sait faire la rotation en deux déploiements.
Ce que vous allez faire
- Générer un nouveau secret.
- Déployer avec les deux secrets : Kledg chiffre de nouveau ce qui doit l’être.
- Déployer avec le seul nouveau secret.
Prérequis
- L’accès aux variables d’environnement de votre hébergeur : sur Vercel, onglet Settings, Environment Variables du projet ; ailleurs, voir le guide de votre hébergeur (par exemple Docker).
- Une sauvegarde récente de la base, par précaution.
Étape 1 : générer un nouveau secret
Générez une valeur aléatoire d’au moins 32 caractères, par exemple avec :
openssl rand -base64 32 GénérerGardez-la dans votre gestionnaire de mots de passe, jamais dans un document partagé.
Étape 2 : déployer avec les deux secrets
- Ajoutez la variable
BETTER_AUTH_SECRETS(avec un S final) avec la valeur2:<nouveau secret>. - Laissez l’ancien secret dans
BETTER_AUTH_SECRET. - Redéployez.
Au démarrage, Kledg chiffre de nouveau, avec le nouveau secret, les identifiants bancaires et le jeton GitHub chiffrés avec l’ancien. Le journal du serveur indique combien de valeurs ont été traitées. Toutes les sessions se ferment : chacun se reconnecte.
Étape 3 : ne garder que le nouveau secret
Une fois ce démarrage passé :
- mettez le nouveau secret dans
BETTER_AUTH_SECRET; - supprimez
BETTER_AUTH_SECRETS; - redéployez.
L’ancien secret ne sert plus à rien : vous pouvez l’effacer de partout.
Avec ENCRYPTION_KEY
Si vous avez défini ENCRYPTION_KEY (64 caractères hexadécimaux), les identifiants bancaires ne dépendent pas du secret : il suffit de remplacer BETTER_AUTH_SECRET et de redéployer. Tout le monde se reconnecte. Ne changez pas ENCRYPTION_KEY elle-même : les identifiants bancaires chiffrés avec elle ne s’ouvriraient plus.
Les erreurs fréquentes
- Remplacer
BETTER_AUTH_SECRETdirectement, sans passer parBETTER_AUTH_SECRETS: les banques connectées et GitHub doivent alors être reconnectés. - Supprimer
BETTER_AUTH_SECRETSavant que l’instance ait redémarré avec les deux secrets. - Perdre le secret : sans lui, ni les sessions ni les identifiants bancaires ne s’ouvrent. Il n’existe aucun moyen de le retrouver.
Avant de passer à Kledg 0.4
Kledg 0.4 ne lit plus l’ancien format de chiffrement des identifiants bancaires. Avant de l’installer, vérifiez la page Configuration (administrateurs de l’instance) : si elle affiche « Ancien format de chiffrement », redémarrez l’instance, qui chiffre de nouveau ces valeurs, puis vérifiez que le message a disparu. Une valeur qui reste demande de reconnecter la banque concernée, ou GitHub dans Mises à jour.
Pour aller plus loin
- Mettre à jour son instance ;
- Installer Kledg ;
- toutes les variables dans le guide complet Auto-hébergement.