29/10/2025

Fnox – Le Fort Knox de vos secrets de dev

Par admin

Fnox - Le Fort Knox de vos secrets de dev

Vous connaissez Jeff Dickey ?

C’est le développeur derrière
mise
, un outil qui permet aux développeurs de gèrer leurs versions d’outils de dev et leurs variables d’environnement.

Et bien cette année, il a sorti
fnox
, un gestionnaire de secrets.

Si vous êtes développeur, vous savez que les secrets, c’est-à-dire les identifiants, les mots de passe, etc. sont soit stockés en chiffré directement sur le dépôt Git, soit à distance via un cloud provider comme AWS Secrets Manager.

Mais c’est pas très marrant à configurer et à utiliser et c’est pour ça donc que Fnox a été inventé. Fnox utilise un simple fichier de configuration TOML que vous placez dans votre dépôt Git et à l’intérieur duquel les secrets sont soit directement chiffrés soit pointent vers des références distantes sur des services comme : AWS, Azure, GCP, HashiCorp Vault et j’en passe… ou encore des gestionnaires de mots de passe comme 1Password et Bitwarden.

Il y a même possibilité de mettre tout ça en ocal dans le gestionnaire de clés de votre OS ou dans un fichier texte.

L’avantage de cette solution, en plus de sa flexibilité, c’est qu’elle peut être utilisée dans des environnements multiples, que ce soit pour du dev, du staging, de la prod. Et comme tout est stocké sur le Git, les équipes de dev peuvent récupérer le fichier et le déchiffrer de leur côté.

Voici comment ça se met en place :

# Installer via mise (recommandé)
mise use -g fnox

# Initialiser dans votre projet
fnox init

# Définir un secret (chiffré par défaut)
fnox set DATABASE_URL "postgresql://localhost/mydb"

# Récupérer un secret
fnox get DATABASE_URL

# Exécuter des commandes avec les secrets chargés
fnox exec -- npm start

# Activer l'intégration shell (chargement automatique lors du cd)
eval "$(fnox activate bash)" # ou zsh, fish

Comme vous pouvez le voir dans l’exemple ci-dessous, il y a une intégration Shell qui permet de charger automatiquement les secrets dès qu’on change de répertoire.

Le projet est open source, licence MIT, et vous trouverez le code sur GitHub. Si vous utilisez déjà mise, l’intégration est transparente et si vous ne l’utilisez pas, fnox fonctionne très bien tout seul (ça s’installe aussi avec Cargo : cargo install fnox ).

Avant la mise en place, je vous recommande quand même d’aller lire
le guide de démarrage rapide
sur leur site, puisque ça explique aussi comment mettre en place un chiffrement un peu plus costaud avec
Age
, ce qui est indispensable dans un environnement de prod ! Et y’a
un super exemple de mise en place IRL
si vous voulez voir quelque chose de plus concret.

Amusez-vous bien !

Source : korben.info