Coder Social home page Coder Social logo

sylvek / leeloo Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 329 KB

collaborative password manager

License: GNU General Public License v3.0

Ruby 90.05% Shell 9.95%
password-manager password-generator password-vault password gpg keystore zsh-completions secret gpg-key gpg-encryption

leeloo's Introduction

leeloo Gem Version

collaborative password manager

multi pass

Leeloo known as the 5th element is a humble clone of password-store (and compatible with it) written in Ruby with ambition to offer a powerful collaborative password manager.

Leeloo is based on GPG and Git. (you need a private GPG key ! - more details here)

How to install leeloo ?

On Linux

$> sudo apt install ruby ruby-dev ruby-gpgme
$> sudo gem install leeloo

On Macos

$> brew tap sylvek/leeloo-brew
$> brew install leeloo
# on Intel
$> echo "pinentry-program /usr/local/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf
# on Apple M1
# ensure `/opt/homebrew/opt/ruby/bin` is set at the begining of your $PATH
# ruby3 is mandatory
$> echo "pinentry-program /opt/homebrew/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf
$> gem install leeloo

if some troubles with gpgme => gem install gpgme -- --use-system-libraries

How to setup it ?

# if necessary, configure GIT
$> git config --global user.email "[email protected]"
$> git config --global user.name "Your Name"

# if necessary, create a private GPG key
$> gpg2 --gen-key

How to use it ?

$> leeloo
# will create your first keystore (stored in ~/.leeloo/private)

$> leeloo keystore
# will display all your keystores
+-------+------------------------------+-------+
|Name   |Path                          |Default|
+-------+------------------------------+-------+
|private|/Users/sylvek/.leeloo/private |*      |
+-------+------------------------------+-------+

$> leeloo keystore add test ~/test
# will add test keystore
+-------+------------------------------+-------+
|Name   |Path                          |Default|
+-------+------------------------------+-------+
|private|/Users/sylvek/.leeloo/private |*      |
|test   |/Users/sylvek/test            |       |
+-------+------------------------------+-------+

$> leeloo keystore default test
# will change the default keystore
+-------+------------------------------+-------+
|Name   |Path                          |Default|
+-------+------------------------------+-------+
|private|/Users/sylvek/.leeloo/private |       |
|test   |/Users/sylvek/test            |*      |
+-------+------------------------------+-------+

$> leeloo key
# will display available keys and which are set to this keystore
+-------------------------+--------+
|Email                    |Selected|
+-------------------------+--------+
|[email protected]          |        |
|[email protected]          |        |
+-------------------------+--------+

(if nothing is displayed, have a look on your gpg's configuration)

$> leeloo key add [email protected]
# will add [email protected] to this keystore
+-------------------------+--------+
|Email                    |Selected|
+-------------------------+--------+
|[email protected]          |*       |
|[email protected]          |        |
+-------------------------+--------+

$> leeloo key sync
# will update all secrets to be readable by selected users

$> leeloo write my_secret
# will add a secret

$> leeloo write my_secret --generate 5
# will add a randomized secret

$> echo "my secret" | leeloo write my_secret --stdin
# will add a secret from STDIN

$> leeloo write my_secret --keystore test
# will add a secret to "test"

$> leeloo read my_secret
# display it

$> leeloo sync
# will synchronize keystore

$> leeloo translate < file.in > file.out
# will replace ${my_secret} by the current secret and will return file translated

$> leeloo share my_secret
# will generate an url with an access token allowing to retrieve the secret

$> leeloo token my_secret
# will generate an access token for accessing my_secret

$> leeloo server
# will launch a server instance allowing to retrieve a secret by a given access token

How to share a keystore ?

Each action is commited in Git. To share your keystore, create a remote repository and share it.

By default, a new created keystore comes with no registered public keys on your system. So you have to explicitly add them by using key add function before writing new secrets.

ZSH completion support !

installed with brew on Macos

To use zsh-completion with leeloo you just have to copy _leeloo file into $HOME/.oh-my-zsh/completions/_leeloo

demo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.