Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 2.17 KB

README.md

File metadata and controls

65 lines (40 loc) · 2.17 KB

Keywhiz

license maven build

Keywhiz is a system for distributing and managing secrets. For more information, see the website.

Our Protecting infrastructure secrets with Keywhiz blog post is worth reading, as it provides some useful context.

Develop

See CONTRIBUTING for details on submitting patches.

Build keywhiz:

# Build keywhiz for H2
mvn install -P h2

# Build keywhiz for MySQL
mvn install -P mysql

Run Keywhiz:

java -jar server/target/keywhiz-server-*-shaded.jar [COMMAND] [OPTIONS] 

Useful commands to get started are migrate, db-seed and server. Use with --help for a list of all available commands. Use with [COMMAND] --help to get help on a particular command.

For example, to run Keywhiz with an H2 database in development mode:

export SERVER_JAR=server/target/keywhiz-server-*-shaded.jar
export KEYWHIZ_CONFIG=server/target/classes/keywhiz-development.yaml.h2

# Initialize dev database (H2)
java -jar $SERVER_JAR migrate $KEYWHIZ_CONFIG

# Seed database with development data
java -jar $SERVER_JAR db-seed $KEYWHIZ_CONFIG

# Run server
java -jar $SERVER_JAR server $KEYWHIZ_CONFIG

Keywhiz uses jOOQ to talk to its database.

If you made changes to the database model and want to regenerate sources:

mvn install -pl model/ -Pgenerate-jooq-sources

We recommend IntelliJ IDEA for development.

Docker

We ship a Dockerfile for building a Docker container for keywhiz. Please see the Dockerfile for extra instructions.

License

Keywhiz is under the Apache 2.0 license. See the LICENSE file for details.