Skip to content

@dotsec/plugin-pke

This plugin provides public key encryption (PKE) for the dotsec CLI.

How it works

We will encrypt our .env file with a public key. The encrypted file will be saved as .sec. We can then decrypt the .sec file with a private key. The decrypted file will be saved as .env.

Since the .env file will be encrypted with a public key, you can share it with anyone who has the private key. This is useful for sharing secrets with a CI/CD pipeline. You can also use the private key to decrypt the .sec file locally. In other words, it is safe to commit the .sec file to your repository, together with the public key. However, you should never commit the .env file to your repository, nor the private key.

Installation

npm install dotsec @dotsec/plugin-pke

Create dotsec.config.ts

npx dotsec --plugin @dotsec/plugin-pke pke init

Create a keypair

npx dotsec pke create-keypair

Add .env and dotsec-private.pem to .gitignore

echo '.env' >> .gitignore
echo 'dotsec-private.pem' >> .gitignore

Encrypt a .env file to .sec

npx dotsec encrypt

Decrypt a .sec file to.env

npx dotsec decrypt