diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a4d27a --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +# VaultUI + +VaultUI is a user interface for [Hashicorp Vault](https://www.hashicorp.com/products/vault). + +## Supported Features: +### Unseal +- Can unseal using a QR code making it easier for multi-user teams to unseal vault together. +### Key Value +- Viewing of Key/Value secrets (v1 & v2) +- Managing versions of secrets in v2 mounts. +- Editing Key/Value secrets with ability to edit in JSON, JSON5, Yaml, etc. +- Search bar for easily finding a secret on mobile. +### TOTP +- Can view and delete TOTP codes. +- Ability to scan a QR code, input a URI or input a key for adding TOTP codes. +- Supports adding vault-generated TOTP keys for testing. +### Transit +- Can create transit engines and keys with all supported cyphers. +- Supports encrypt, decrypt and rewrap in browser. +### Policies +- Can view, edit and delete policies. +### Auth +- Supports limited viewing some auth methods. +#### Auth / UserPass +- Can manage userpass users and change passwords, expiry and other settings + +## How to build: + +Recommended: use direnv or just nix-shell to automatically grab nodejs and required build dependencies. + +``` +npm install --save-dev +npx webpack +``` +The resulting built files will be in `dist/` + +## How to run in development: +``` +npm install --save-dev +npx webpack serve --config webpack-dev.config.js +``` + +## How to host/use + +We host it via GitLab pages at [VaultUI](https://vaultui.owo.monster). + +Simply copy the files to root of webserver. +You will need a redirect rule to redirect any 404's or non-200's to index.html. + +Cors will need to be enabled for you to use VaultUI. +Due to vault encrypting cors config with the unseal key, you can't use VaultUI to unseal vault for the first time. + +However, you can use VaultUI to unseal vault for first unseal if you can replace without appending to the cors headers so they use the same headers when unsealed as sealed. + + +### Redirects +#### Netlify Redirect Rule: +``` +/* /index.html 200 +``` +### Nginx +```nginx +location / { + try_files $uri $uri/ /index.html; +} +``` +### AWS Amplify +|original address|Destination Address|Redirect Type| +|----------------|-------------------|-------------| +|``|`/index.html`|`200`| + + +## Translating +Make sure to keep the order of comments and tags in the translation files `src/translations` the same. + +When you want to MR an update, title it "Changed wording in..." or "Synced translations in de" or something along those lines. + +To get a list of what languages need what translations added, run `node ./checkTranslations.mjs` + +For example: +``` +Language: fr +Missing: unseal_input_btn, unseal_qr_btn +``` +Would mean those two missing translations need to be added to the french translation. \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index 257f704..0000000 --- a/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# VaultUI -[![CI Status](https://ci.phoenix.qcx.io/api/v1/teams/purringchaos/pipelines/vaultui/badge)](https://ci.phoenix.qcx.io/teams/purringchaos/pipelines/vaultui) - -This is a very simple UI for working with secrets in [Hashicorp Vault](https://www.hashicorp.com/products/vault) - -## How to build: -``` -npm install --save-dev -npx webpack -``` -The resulting built files will be in `dist/` - -## How to run in development: -Use whatever browser you want, I personally test on latest Microsoft Edge Dev build. -``` -npm install --save-dev -BROWSER=google-chrome npx webpack serve --config webpack-dev.config.js -``` - -## Translating -Make sure to keep the order of comments and tags in the translation files `src/translations` the same. - -When you want to PR an update, title it "Changed wording in..." or "Synced translations in de" or something along those lines. - -To get a list of what languages need what translations added, run `node ./checkTranslations.mjs` -Example: -``` -Language: fr -Missing: unseal_input_btn, unseal_qr_btn -``` -Means those two missing things need to be added to french. - - -f -## Screenshots -### Home -![The home page with listings for all mounted secrets engines.](screenshots/home.jpg) -### Cubbyhole Engine -![The cubbyhole page with info on how to use it.](screenshots/cubbyhole.jpg) -### K/V v1 Engine -![The view screen on the key value v1 screen with delete and edit buttons.](screenshots/kv1.jpg) -### K/V v2 Engine -![The view screen on the key value v2 screen with delete all, edit and versions buttons.](screenshots/kv2.jpg) -![Viewing a secret that can only be displayed as syntax highlighted JSON.](screenshots/kv2json.jpg) -![The versions list of a secret.](screenshots/kv2versions.jpg) -![A soft deleted secret with option to undelete.](screenshots/kv2undelete.jpg) -### TOTP Engine -We don't yet support `generate: true` TOTP secrets but probably will in the future. -![A copyable list of TOTP codes with option to add a new one.](screenshots/totp.jpg) -![A screen where you can add a new TOTP code.](screenshots/totpnew.jpg) -### Transit Engine -![Options to encrypt and decrypt using the transit engine.](screenshots/transit.jpg) diff --git a/screenshots/.git-add b/screenshots/.git-add deleted file mode 100644 index e69de29..0000000 diff --git a/screenshots/cubbyhole.jpg b/screenshots/cubbyhole.jpg deleted file mode 100644 index 5f7b9c7..0000000 Binary files a/screenshots/cubbyhole.jpg and /dev/null differ diff --git a/screenshots/home.jpg b/screenshots/home.jpg deleted file mode 100644 index 2f5f2ef..0000000 Binary files a/screenshots/home.jpg and /dev/null differ diff --git a/screenshots/kv1.jpg b/screenshots/kv1.jpg deleted file mode 100644 index 9e38699..0000000 Binary files a/screenshots/kv1.jpg and /dev/null differ diff --git a/screenshots/kv2.jpg b/screenshots/kv2.jpg deleted file mode 100644 index 1bd0c3d..0000000 Binary files a/screenshots/kv2.jpg and /dev/null differ diff --git a/screenshots/kv2json.jpg b/screenshots/kv2json.jpg deleted file mode 100644 index 435bb52..0000000 Binary files a/screenshots/kv2json.jpg and /dev/null differ diff --git a/screenshots/kv2undelete.jpg b/screenshots/kv2undelete.jpg deleted file mode 100644 index d416575..0000000 Binary files a/screenshots/kv2undelete.jpg and /dev/null differ diff --git a/screenshots/kv2versions.jpg b/screenshots/kv2versions.jpg deleted file mode 100644 index 934bfa0..0000000 Binary files a/screenshots/kv2versions.jpg and /dev/null differ diff --git a/screenshots/totp.jpg b/screenshots/totp.jpg deleted file mode 100644 index 182bc73..0000000 Binary files a/screenshots/totp.jpg and /dev/null differ diff --git a/screenshots/totpnew.jpg b/screenshots/totpnew.jpg deleted file mode 100644 index a5c523d..0000000 Binary files a/screenshots/totpnew.jpg and /dev/null differ diff --git a/screenshots/transit.jpg b/screenshots/transit.jpg deleted file mode 100644 index 38afd5c..0000000 Binary files a/screenshots/transit.jpg and /dev/null differ