gophkeeper is a PoC secret storage service.
- 📦 Manage all secrets with a nice bubbletea powered UI
- 🚀 Fast secret management thanks to automatic caching
- 🔒️ High privacy with GCM encryption
- 💾 Transparent background synchronization with the server
- 💪 Async execution for improved performance
Select a secret kind
Fill new secret form
Display your secret info
- Login/Password pairs
- Arbitrary text
- Arbitrary bytes (files)
- Bank card credentials
- Git
- Docker
- Go >= 1.19
Clone the repo.
Next install dependencies
make init
Then build packages
make build
The Server supports the following settings:
env
- environment determines what the logging level and log format will bedev
- plain text coloredINFO
level logsprod
(default) - JSONWARN
level logs
address
-address:port
to listen on (defaults tolocalhost:8080
)dsn
- PostgreSQL database DSNclean
- database cleanup time interval (defaults to15m
)
All can set all the settings in the config file (-c
flag) or via env vars (overrides config file values) with the same names prefixed with GOPHKEEPER_
(e.g. GOPHKEEPER_ENV
).
Run server with:
./gs -c <your_server_config.yml>
You can also run gophkeeper server side in docker. Image will be automatically build for you.
Run gophkeeper server:
make sup
Stop gophkeeper server:
make sdown
Client settings are the following:
user
(mandatory) - your usernamepassword
(mandatory) - your passwordencrypt
(default istrue
) - if gophkeeper should encrypt your secretskey
(mandatory 32 bytes master password ifencrypt
set totrue
) - this key will be used to encrypt your secretsenv
- environment determines what the logging level and log format will bedev
- plain text coloredINFO
level logsprod
(default) - JSONWARN
level logs
address
-address:port
of the server to connect to (defaults tolocalhost:8080
)dsn
- PostgreSQL database DSNsync
- secret synchronization time interval (defaults to15s
)clean
- database cleanup time interval (defaults to1m
)
All can set all the settings in the config file (-c
flag) or via env vars (overrides config file values) with the same names prefixed with GOPHKEEPER_
(e.g. GOPHKEEPER_ENV
).
Run client with:
./gc -c <your_client_config.yml>
The client will automatically register/login (if you are an existing user) with provided credentials.
For development you will need additional tools:
Install them with
make dev
Next prepare test databases for client/server
make mkdb
make migrateup
You can refresh (purge and reinstall) your DBs with
make refreshdb
You an also renew client/server certificates with
make cert