@henrycunh/ev v1.0.0
ev
a tool for versioning, securing and easily sharing environment variables
Features
- ⏱ Version control - allows for storing environment variables securely in git
- 🔑 Secure - uses a single secret to secure your variables
- 🧑💻 Easy sharing - sharing the secret means sharing your variables
- 🛠 Great DX - tools for easily managing variables
Getting started
Initializing
Install Node >= 14 and run:
npx evIt will prompt you for a new secret key and create two new files:
.ev/vars- where your environment variables are encrypted and safely stored,.ev/secret- your secret key, whose must not be version controlled
And add .ev/secret to .gitignore
You can install ev globally (so you wont have to prepend npx) by running,
npm install -g @henrycunh/evCommands
ev MY_KEY=VALUE OTHER_KEY=OTHER_VALUEThis will add the MY_KEY and OTHER_KEY variables, if the variables already exists, their value will be overrided
You can test it by running
ev TEST=123 && ev | source && echo $TESTThis should print Added 1 variables. followed by 123.
ev change-secret -e productionChanges the default secret on the production environment
Using in your project
After initializing and setting a secret, you can just load from your previous .env file with the command ev load .env and run either ev | source or eval $(ev) to export the variables into the environment.
Passing a secret through a environment variable
In a CI environment, you want your secret to be passed through an environment variable set by your CI system. You can do this by setting the EV_SECRET variable
EV_SECRET=my-secret eval $(npx ev)Javascript projects
You can add a pre script to your package.json file to load the variables into the environment before your development script runs. Here's an example:
{
"scripts": {
"predev": "eval $(ev)",
"dev": "..."
}
}You can even create different scripts for different environments
{
"scripts": {
"predev:staging": "eval $(ev -e staging)",
"dev:staging": "..."
}
}