Skip to content

Encrypted and versioned configuration store built with collaboration in mind

License

Notifications You must be signed in to change notification settings

marmelab/comfygure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm version CLI dependencies API dependencies npm downloads docker pulls Build Status

comfygure

Encrypted and versioned configuration storage built with collaboration in mind.

Source - Releases - Stack Overflow

asciicast

Features

  • Simple CLI
  • End-to-end AES-256 encryption
  • Multiple formats support (JSON, YAML, environment variables)
  • Git-like Versioning
  • Easy to host on your own

Comfygure is great to manage application configurations for multiple environments, toggle feature flags quickly, manage A/B testing based on configuration files.

It is not a Secret Management Tool, it focus on configurations files, their history, and how teams collaborate with them.

Get Started

On every server that needs access to the settings of an app, install the comfy CLI using npm:

npm install -g comfygure
comfy help

Usage

Initialize comfygure in a project directory with comfy init:

> cd myproject
> comfy init

Initializing project configuration...
Project created on comfy server https://comfy.marmelab.com
Configuration saved locally in .comfy/config
comfy project successfully created

This creates a unique key to access the settings for myproject, and stores the key in .comfy/config. You can copy this file to share the credentials with co-workers or other computers.

Note: By default, the comfy command stores encrypted settings in the comfy.marmelab.com server. To host your own comfy server, see the related documentation.

Import an existing settings file to comfygure using comfy setall:

> echo '{"login": "admin", "password": "S3cr3T"}' > config.json
> comfy setall development config.json
Great! Your configuration was successfully saved.

From any computer sharing the same credentials, grab these settings using comfy get:

> comfy get development
{"login": "admin", "password": "S3cr3T"}
> comfy get development --envvars
export LOGIN='admin';
export PASSWORD='S3cr3T';

To turn settings grabbed from comfygure into environment variables, use the following:

> comfy get development --envvars | source /dev/stdin
> echo $LOGIN
admin

See the documentation to know more about how it works and the remote usage.

License

Comfygure is licensed under the MIT License, sponsored and supported by marmelab.