Secret Server
The simple service to manage secrets
Overview
Secret Server helps to securely store secrets and get them back when needed.
Contents
About Secret Server
The secret server is designed to mace secret storage easier. Simple API allows to save and get back your secrets, and also set expiration time and view limit.
Requirements
If you run the app using docker-compose you only need it to start and a git to download a package.
Otherwise, you need Golang 1.11+ with modules enabled to compile the app and a Redis to store the secrets.
Usage
Here is a short manual on how to download and use the app.
Download
Create a new folder and run:
git clone https://github.com/ilyakaznacheev/secret.git
or download it from this page manually.
Run Local
You need to start Redis first. The default connection path is localhost:5050
but you can overwrite it using REDIS_URL
environment variable. Run ```go run cmd/secret/secret.go -h` for more info.
To run the app:
go run cmd/secret/secret.go
Docker Compose
To start the whole environment run
docker-compose up
It will start the service with Redis DB, and also Prometheus metrics with Grafana UI.
Service will be on localhost:8080
and Grafana will be on localhost:3000
.
Monitoring
The app is ready for Prometheus monitoring.
To start it locally, just run
docker-compose up
Also, you can monitor online deployment:
cd remote-monitoring
docker-compose up
Same as above, Grafana will start on localhost:3000
. There is a preconfigured dashboard for the app, but you can build your own.
Scalability
The service is horizontally scalable. It is lock-free and uses CAS to prevent data races. You can run as many replicas as you need to fulfill your API quota requirements.
API documentation
API is documented using Swagger. Check the swagger.yml file.
Try it in Swagger Editor!
Contributing
The application is open-sourced under the MIT license.
If you will find some error, want to add something or ask a question - feel free to create an issue and/or make a pull request.
Any contribution is welcome.