Skip to content

peter-szrnka/give-my-secret

Repository files navigation

Give My Secret

Give My Secret is a super simple credential storage application that stores secrets, passwords and other text based credentials in a secure and reliable way by encrypting them with keystores that you provide - or you can generate if you need. It's easy to configure, numerous ready-to-go configurations available for all supported databases.

Getting started

Give My Secret is available as a Docker image, you can pull it from GitHub Container Registry(ghcr.io) by running the following command:

docker pull ghcr.io/peter-szrnka/give-my-secret:latest

To start a new container instance, you have to set up a bunch of environment properties. I recommend to not utilize the Docker image from scratch, if you open the "batch-files" sub folder, you can find many configurations for all available database providers written in Docker Compose format.

Features

Databases

For further information & sample configurations, please check the sub folders under the "db" folder.

Caching

2 types of caches are provided:

  • Built-in cache
  • Redis

Authentication

Sample configurations can be found under "batch-files" folder.

Two Factor Authentication

The following authenticator applications are supported:

  • Google Authenticator
  • Microsoft Authenticator

Encryption

Currently only AES encryption is supported. In the future this will be configured by an environment property.

Logging

Observation

Client code samples

You can find client code examples for Java, Go, Python and Node.js here.

Code quality metrics

CodeQL Code coverage Sonarcloud
CodeQL Backend:    Code coverage
Frontend:   Coverage
Backend:    Quality Gate Status
Frontend:   Quality Gate Status

Tech stack

  • Java 21 (Microsoft OpenJDK)
  • Maven
  • Spring Boot 3.3.3
  • Angular 18
  • Docker
  • Flyway (DB migration)

Donate

paypal