README.md

# SecretVault 🔒

All-in-one solution for storing your Elixir application secrets inside the repository.

## Features

* **Standalone**. No dependencies on external binaries.
* **Secure**. Uses [aes256gcm](https://en.wikipedia.org/wiki/Galois/Counter_Mode) cipher by default. Detects weak and similar passwords with `mix scr.audit` task.
* **Developer friendly**. You can use `mix scr.*` tasks to create or
  edit secrets in your favourit editor. Or you can use simple
  coreutils like `mv`, `rm`, `cp`.
* **Easy to use**. Documatation is rich, errors are descriptive and
  tutorials take no more than 5 minutes to read.
* **VCS friendly**. `SecretVault` stores secrets in separate files,
  thus makes it easily to track in VCS.
* **Mix friendly**. `SecretVault` enforces separation of secrets for
  different environments.
* **Extensible**. You can connect your own ciphers, vaults or key
  derivation functions.
* **OTP Compatible**. Uses modern OTP 24 key derivation functions, or
  fallbacks to elixir implementation on lower OTP versions.

## Usage

Check out this 5 minutes [usage tutorial](usage.md) for basics and useful links.

## Installation

Just add it to the list of dependencies like

```elixir
def deps do
  [
    {:secret_vault, "~> 1.0"}
  ]
end
```

## Hacking

If you want to contribute to the project or just want to test it
localy (not as a dependency), you'll need to create `config/config.exs`
file with following content.

```elixir
config :secret_vault, :secret_vault,
  default: [password: "Some super secret"]
```