envcrypt-dev
v1.0.3
Published
CLI tool for encrypting and managing environment files
Readme
encrypt-dev
encrypt-dev est un outil en ligne de commande pour gérer et partager des variables d'environnement de manière sécurisée. Il chiffre un fichier .env dans un fichier .encryptenv (avec AES-256-CBC) que vous pouvez inclure dans votre dépôt Git. Les développeurs accèdent aux variables en déchiffrant .encryptenv avec une passphrase sécurisée, partagée via un QR code ou un gestionnaire de secrets. La commande rotate-key permet de changer la passphrase en cas de compromission, sans modifier les variables.
Table des matières
- Fonctionnalités
- Installation
- Configuration initiale
- Commandes
- init
- generate-key
- encrypt
- decrypt
- status
- rotate-key
- Partage des variables d'environnement
- Gestion d'une clé compromise
- Bonnes pratiques de sécurité
- Dépannage
- Contribuer
- Licence
Fonctionnalités
- Chiffrement sécurisé : Protège les variables d'environnement avec AES-256-CBC.
- Partage via Git : Stocke
.encryptenvdans le dépôt pour un accès facile. - Génération de clés : Crée des passphrases sécurisées et des QR codes.
- Rotation de clés : Met à jour la passphrase sans changer les variables.
- Vérification de synchronisation : Confirme la cohérence entre
.envet.encryptenv. - Interface intuitive : Prompts interactifs pour une utilisation simple.
Installation
Prérequis :
- Node.js (version 16 ou supérieure)
- npm (inclus avec Node.js)
Installer globalement (recommandé pour une utilisation en CLI) :
npm install -g encrypt-devVérifier l'installation :
envsync --helpCela affiche la liste des commandes disponibles.
Installer localement (optionnel, pour un projet spécifique) :
npm install encrypt-devExécutez les commandes via
npx:npx envsync --help
Configuration initiale
Configurez encrypt-dev dans votre projet pour gérer les variables d'environnement.
Créer un fichier
.env:echo "API_KEY=xyz123\nDB_PASSWORD=secret\nPORT=3000" > .envInitialiser la configuration :
envsync initPrompts :
- Chemin du fichier source :
.env(par défaut) - Chemin du fichier chiffré :
.encryptenv(par défaut) - Algorithme de chiffrement :
aes-256-cbc(par défaut) - Indice de clé (facultatif) : Un mémo pour la passphrase (par exemple,
prod-key).
- Chemin du fichier source :
Résultat : Crée
envsync.config.json, par exemple :{ "source": ".env", "encrypted": ".encryptenv", "encryption": "aes-256-cbc", "key_hint": "prod-key" }
Générer une passphrase :
npx envsync generate-key- Sortie : Une passphrase hexadécimale (par exemple,
6ec8f388997aad6c738afd072e7812696ed1115fa5d442b440edf35bfef1ab52) et un QR code. - Action : Notez la passphrase et partagez-la via un canal sécurisé (voir Partage des variables d'environnement).
- Sortie : Une passphrase hexadécimale (par exemple,
Chiffrer les variables :
npx envsync encryptEntrez la passphrase.
Résultat : Crée
.encryptenv, par exemple :{ "iv": "fa7c2c2f33b1683f1a4bb6e56a0fe200", "salt": "73b5eb3e7e90c23b1a7fdd36b397a9ad", "hash": "b7326389778812552eb7b181d198074058eb44bebf6ae86c3b7efad6bbed5da5", "content": "11bfe603806aa5d59ba1dbd0873051cc" }
Ajouter
.encryptenvau dépôt :git add .encryptenv envsync.config.json git commit -m "Add encrypted environment file and config" git push
Note : Assurez-vous que .env est dans .gitignore :
# .gitignore
.env
node_modules/Commandes
init
Crée envsync.config.json pour configurer le CLI.
envsync init- Prompts : Chemin du fichier source, fichier chiffré, algorithme, indice de clé.
- Résultat : Génère
envsync.config.json.
generate-key
Génère une passphrase sécurisée et un QR code.
envsync generate-keySortie :
Generated Key: 6ec8f388997aad6c738afd072e7812696ed1115fa5d442b440edf35bfef1ab52 QR Code: ██████████████ ██ ░░░░░░ ██ ██ ██████ ██ ...Utilisation : Copiez la passphrase ou partagez le QR code.
encrypt
Chiffre .env en .encryptenv.
envsync encrypt- Prompt : Passphrase.
- Résultat : Crée/mise à jour
.encryptenv.
decrypt
Déchiffre .encryptenv pour recréer .env.
envsync decrypt- Prompt : Passphrase.
- Résultat : Crée/mise à jour
.env.
status
Vérifie la synchronisation entre .env et .encryptenv.
envsync status- Prompt : Passphrase.
- Sortie :
- Synchronisés :
Files are synchronized. - Non synchronisés :
Files are out of sync. Run 'encrypt' to update .encryptenv or 'decrypt' to update .env.
- Synchronisés :
rotate-key
Change la passphrase de .encryptenv.
envsync rotate-key- Prompts : Ancienne passphrase, nouvelle passphrase.
- Résultat : Met à jour
.encryptenvavec la nouvelle passphrase.
Partage des variables d'environnement
Le fichier .encryptenv est inclus dans le dépôt Git pour partager les variables chiffrées. Les développeurs utilisent la passphrase pour déchiffrer les variables.
Étapes pour un développeur
Installer
encrypt-dev:npm install -g encrypt-devCloner le projet :
git clone <url-du-projet> cd <projet>Obtenir la passphrase :
- QR code : Scanner le QR code partagé par l'équipe.
- Gestionnaire de secrets : Accéder à Vault, 1Password, etc.
- Messagerie chiffrée : Recevoir via Signal, Keybase, ou GPG.
Déchiffrer
.encryptenv:npx envsync decrypt- Entrez la passphrase.
- Résultat : Crée
.env.
Vérifier :
envsync status cat .env
Partage de la passphrase
- Méthodes :
- QR Code : Partagez via une réunion ou une messagerie chiffrée.
- Gestionnaire de secrets : Stockez dans Vault, AWS Secrets Manager, ou 1Password.
- Messagerie chiffrée : Utilisez Signal, Keybase, ou email GPG.
- À éviter : Ne partagez pas la passphrase dans le dépôt Git ou via des canaux non sécurisés.
Environnements multiples
Pour différents environnements :
- Créez
.encryptenv.dev,.encryptenv.prod, etc. - Configurez
envsync.config.jsonou passez des options spécifiques (si implémenté). - Utilisez des passphrases distinctes par environnement.
Gestion d'une clé compromise
En cas de compromission de la passphrase :
Changer la passphrase :
envsync rotate-key- Entrez l'ancienne et la nouvelle passphrase.
- Mise à jour de
.encryptenv.
Mettre à jour le dépôt :
git add .encryptenv git commit -m "Rotate encryption key" git pushPartager la nouvelle passphrase :
Générez un nouveau QR code :
envsync generate-keyPartagez via un canal sécurisé.
Vérifier :
npx envsync decrypt
Bonnes pratiques de sécurité
- Dépôt privé : Limitez l'accès au dépôt Git.
- Passphrase sécurisée : Utilisez
envsync generate-keypour des passphrases robustes. - Rotation régulière : Changez la passphrase tous les 3-6 mois.
- Surveillance : Vérifiez les accès au dépôt.
- Gestionnaire de secrets : Préférez Vault ou 1Password.
- Sauvegarde : Stockez la passphrase en lieu sûr.
Dépannage
- Erreur :
File not found: Vérifiez la présence de.encryptenvetenvsync.config.json. - Erreur :
Decryption failed: Passphrase incorrecte. Contactez l'équipe. - Commande
envsyncintrouvable : Installez globalement avecnpm install -g encrypt-dev. - Fichiers non synchronisés : Exécutez
envsync statuset mettez à jour avecencryptoudecrypt.
Pour plus d'aide, ouvrez une issue sur GitHub.
Contribuer
- Forkez le dépôt :
https://github.com/adandeigor/encrypt-dev. - Créez une branche :
git checkout -b feature/<nom>. - Ajoutez des tests et exécutez :
npm test. - Soumettez une pull request.
Voir CONTRIBUTING.md pour plus de détails.
Licence
MIT License. Voir LICENSE pour plus d'informations.
