kv2

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2025 License: BSD-3-Clause

README ΒΆ

πŸ” kv2

kv2 is an encrypted & versioned secrets manager for tailnets, built for homelab secrets management. This repository contains the server and client components, as well as the reference client implementation in the form of a CLI.

✨ Features

  • Simple: deployed as a single binary or Docker container, with a flexible API for management.
  • Encrypted: secrets are encrypted at rest using age and user-controlled keys.
  • Versioned: up to nine versions of each secret are stored to provide basic change history.
  • Secure: built with the Tailscale client library to provide secure access to the API.
  • External KMS: optionally integrates with cloud key management systems for securely retrieving age keys.
  • Cloud Storage: optionally leverage cloud storage system for backup and recovery of the secrets database.

These features makes kv2 the perfect secrets management solution for my homelab, but it may not be suitable for production environments.

πŸš€ Quickstart

If you are just looking to move fast and break things, here is the server container running in development mode. No Tailscale, no persistence, and no encryption.

docker run --rm --name kv2 -p 8081:8081 -e KV2_DEV_MODE=true ghcr.io/hugginsio/kv2:latest

You can interact with the server using the API or the provided CLI. You can download the CLI executable from the Releases page or install it with Homebrew:

brew install hugginsio/tap/kv2

πŸ“š Documentation

Additional documentation can be found in the docs directory.

🀝🏻 Thanks


"Tailscale" is a registered trademark of Tailscale Inc. The kv2 project is not endorsed by, sponsored by, or affiliated with Tailscale Inc.

Directories ΒΆ

Path Synopsis
api
cmd
kv2 command
server command
internal
cli
cli-docgen command
crypto/nocrypto
Package nocrypto provides a no-op implementation of the crypto interface for development mode.
Package nocrypto provides a no-op implementation of the crypto interface for development mode.
kms
Package kms provides an interface to retrieve secrets from external key management systems.
Package kms provides an interface to retrieve secrets from external key management systems.
kms/gsm
Package gsm provides integration with Google Cloud's Secret Manager.
Package gsm provides integration with Google Cloud's Secret Manager.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL