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
|
||||
[](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
|
||||

|
||||
### Cubbyhole Engine
|
||||

|
||||
### K/V v1 Engine
|
||||

|
||||
### K/V v2 Engine
|
||||

|
||||

|
||||

|
||||

|
||||
### TOTP Engine
|
||||
We don't yet support `generate: true` TOTP secrets but probably will in the future.
|
||||

|
||||

|
||||
### Transit Engine
|
||||

|
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 |