Skip to content

An open source, key management system. Written in GO.

License

Notifications You must be signed in to change notification settings

luminos-company/secretary

Repository files navigation

Secretary

Luminos Open CodeQL Go Report Card Go Reference Swagger doc

An open source, key management system. Written in GO.

What is Secretary?

Secretary is a key management system that allows you to store and manage your keys.

You would be able to generate various types of keys, such as RSA(READY), ECDSA(WIP), and Ed25519(WIP), rotating them or keeping them persistent.

Why Secretary?

There are many key management systems out there, but none of them are open source. This is a problem, because you can't trust a closed source system with your keys.

Why Go?

Go is a great language for writing systems like this. It's fast, easy to use, and has a great community (And we love it ❤️).

How do I use it?

You can use the docker image or build it yourself.

To run the docker image execute the following command:

docker run -p 8080:8080 -p 50051:50051 -v /persistent/keys:/keys ghcr.io/luminos-company/secretary:main

By default the private keys are never sent to the client, but you can change this by setting the SECRETARY_INSECURE environment variable to true.

Name Description Default
SECRETARY_INSECURE If set to true, the private keys will be sent to the client. false

You can set those environment variables to change the default database (BE AWARE THAT THIS IS NOT SECURE):

Variable Required Default Description
PG_ENABLE No false Enables the postgres database
PG_HOST No localhost The host of the postgres database
PG_PORT No 5432 The port of the postgres database
PG_USER No postgres The user of the postgres database
PG_PASSWORD No postgres The password of the postgres database
PG_DATABASE No postgres The database of the postgres database
PG_SSL_MODE No disable The ssl mode of the postgres database
PG_TIME_ZONE No UTC The time zone of the postgres database

Documentation

Swagger docs

There is not an official documentation, just import the sdk specific language and use it following the grpc client standard implementation.

We are deploying a github page with a swagger who will let you knwo all the available methods.

How do I contribute?

You can contribute by opening a pull request, or by opening an issue. Or if you don't have the time, you can support us by donating.

License

This project is licensed under the GNU General Public License v3.0. You can read more about it here.

Technologies and Libraries

About

An open source, key management system. Written in GO.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages