Introduction

What is Valt0

Valt0 is a tool for keeping application and service secrets: passwords, tokens, API keys.

There is no account to make and nothing to sign in to. The tool runs on your machine and on your servers or containers.

How does it work

Valt0 stores secrets in encrypted files called vaults.

A vault is simply an encrypted file that has the extension .valt0.

Every vault is identified by an ID and is unlocked by a vault key. The ID is public, while the key is private and must be kept secure.

Id · Public

VLT0-ID-9254C02EE8685310C76B

Key · Private

VLT0-KEY-redacted

How are vaults stored

Because a vault is encrypted, it can be stored anywhere.

prod.valt0one file
  • In your app’s repoCommitted next to the code
  • In a repo of its ownShared by several projects
  • In cloud storageA bucket or a shared folder
  • On a drive or a stickOffline, in a drawer
What has to be protected is the key, not the vault file.

How many vaults do you need

More than one. The recommended setup is a vault for each environment: dev.valt0, qa.valt0, prod.valt0 and so on.

Valt0 is not limited to a single vault. Every command that works on a vault takes its name, so valt0 store dev:STRIPE_KEY and valt0 store prod:STRIPE_KEY put two different values into two different files. An application can open more than one vault too.

Each vault has its own key, and that is the reason to split them. The whole team can hold the key to dev while the key to prod stays with the people who deploy. If the dev key leaks, nothing in production is exposed, and only the secrets in dev have to be changed.

Store a secret under the same name in every vault. Your code asks for STRIPE_KEY wherever it runs, and only the vault it reads from changes between development, QA and production.

What runs on your machine

Installing Valt0 puts two things on your machine: a command you run, and a service that runs itself.

The service starts when Valt0 is installed, and starts again at every login, so it is already running before anything asks it for a secret. valt0 status says whether it is.

  • A command line tool

    The valt0 command, for a person at a prompt: making a vault, putting secrets into it, reading them back and taking them out.

  • A local service

    For an application that needs a secret while it is running. It is what clients connect to, and it runs on the same machine they do.