vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Create accounts with a key and find the instance config
c36d507302c0f7fb24af6eba390c4121d67318c3 · Keenan Nemetz · 16d ago · parent 3abbe749
Create accounts with a key and find the instance config An account is now written with its first key in one transaction, so a name cannot be claimed without a credential. add-key remains for additional keys, and remote user create forwards the key on stdin. Local commands now resolve the config from --config, VOLE_CONFIG, ./vole.toml, or ~/.vole/vole.toml before falling back to defaults. init prints --config in its next steps when the instance will not be discovered automatically.
docs/users-and-access.md +7−4
| @@ -19,8 +19,8 @@ file locks. Nothing in the file is secret. Vole reloads it every few seconds, so | |||
| 19 | 19 | key changes and retirements take effect without restarting the server. | |
| 20 | 20 | ||
| 21 | 21 | ```sh | |
| 22 | vole admin user create alice | ||
| 23 | vole admin user add-key alice --key ~/.ssh/id_ed25519.pub | ||
| 22 | vole admin user create alice --key ~/.ssh/id_ed25519.pub | ||
| 23 | vole admin user add-key alice --key ~/.ssh/id_ed25519_work.pub | ||
| 24 | 24 | vole admin user list | |
| 25 | 25 | vole admin user rm-key alice SHA256:... | |
| 26 | 26 | vole admin user rename alice a-alice | |
| @@ -28,6 +28,10 @@ vole admin user retire alice | |||
| 28 | 28 | vole admin user backup backup/users.db | |
| 29 | 29 | ``` | |
| 30 | 30 | ||
| 31 | `user create` requires the first key and writes the account and key together. | ||
| 32 | `user add-key` adds another key; use it to rotate credentials without changing | ||
| 33 | the account id that access rules and approvals refer to. | ||
| 34 | |||
| 31 | 35 | To see which account the current remote's key belongs to: | |
| 32 | 36 | ||
| 33 | 37 | ```sh | |
| @@ -42,8 +46,7 @@ machine, mark an account as an **instance admin** and pass `--remote`: | |||
| 42 | 46 | ||
| 43 | 47 | ```sh | |
| 44 | 48 | vole admin user grant-admin alice | |
| 45 | vole admin --remote ssh://git@forge.example.com:2222 user create bob | ||
| 46 | vole admin --remote origin user add-key bob --key bob.pub | ||
| 49 | vole admin --remote ssh://git@forge.example.com:2222 user create bob --key bob.pub | ||
| 47 | 50 | vole admin --remote origin repo create demo --owner bob | |
| 48 | 51 | vole admin --remote origin acl default demo read | |
| 49 | 52 | ``` | |