update readme
85
README.md
Normal file
|
@ -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|
|
||||||
|
|----------------|-------------------|-------------|
|
||||||
|
|`</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/>`|`/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.
|
52
readme.md
|
@ -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)
|
|
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 10 KiB |