No description
Find a file
2026-05-05 11:21:39 +02:00
backend Remove unused route 2026-04-27 14:49:38 +02:00
frontend Add password generator 2026-05-05 11:21:39 +02:00
.gitignore Work on frontend 2026-04-25 11:28:41 +02:00
Cargo.lock Add file serving on root 2026-04-27 13:52:14 +02:00
Cargo.toml Add file serving on root 2026-04-27 13:52:14 +02:00
configure.sh Add a configure script 2026-04-27 14:00:36 +02:00
prepare.sql Delete feature 2026-04-24 21:51:11 +02:00
README.md Add create account screen 2026-04-27 15:07:19 +02:00

secrets-vault

Secrets vault is a project for self hosted vault access

Principle

Baiscally, the project will work like so :

  1. Connect to the website, using credentials
  2. Enter the vault phrase, which should be different from the password
  3. Get your secrets

Encryption

The idea for encryption is :

  • Passwords are stored in hashed form
  • The vault phrase is absolutely not stored anywhere
  • The vault phrase is not transferred through http request, and lives only locally. It decrypts whatever the API sends. If the vault phrase does not match, it is still decrypted, but it will probably not be the expected result.

Usage

You will need few tools to build the project :

It is recommended to have a daemon to automatically launch the server

Setup

  1. Create a database in your database service ; I will call it secrets_vault
  2. Create a local user with all permissions on this database, with a password ; Mine will be guardian
  3. Get the port where the database server lives, usually 3306
  4. Fill the .env file (at the root of the project), with this :
DATABASE_URL=mysql://user:password@host/databasename

So it gives something like this for me : mysql://guardian:123456@localhost/secrets_vault

  1. Create the tables for MySQL (the backend won't compile otherwise)
  • Copy the content of prepare.sql
  • mariadb -u username -p and then enter password
  • > use database_name;
  • Paste the content of the file
  • > exit;
  1. Configure the url ; go in frontend/App.tsx, find the line api_base_url: "http://127.47.47.1:30003",, and replace the url by the actual url

Installation

You can either run the install script, or do it by hand

Automatic configuration

  1. Clone the repo : git clone https://github.com/Greensky-gs/secrets-vault && cd secrets-vault
  2. If you have yarn installed, you can use the ./configure.sh script : ./configure.sh
  3. Launch using ./target/release/backend

Manual installation

  1. Get the repo : git clone https://github.com/Greensky-gs/secrets-vault && cd secrets-vault
Build the front end
  1. Go to frontend : cd frontend
  2. Install dependencies : yarn install, or your favorite packages manager for nodejs
  3. Build the static files : yarn build (or npm run build)
  4. Optionnaly delete the node_modules rm -rf node_modules

Leave the build folder where it is

Setup the backend
  1. Create the binary with cargo build --release