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.
Unify terminology across the web UI and docs
ab326d3ac1fd947a9df45f31f6dc10ab38627882 · Keenan Nemetz · 14d ago · parent 5b814e99
Unify terminology across the web UI and docs Use account, repository, change request, enrollment link, instance admin, and sign in/out consistently. Rename the access guide to accounts-and-access.md, update its links, and record the canonical terms and retained command/URL spellings in the documentation index.
docs/architecture.md +5−5
| @@ -57,15 +57,15 @@ auditable. | |||
| 57 | 57 | |---|---|---| | |
| 58 | 58 | | Repositories | `data/repos/<name>.git` | It is the source | | |
| 59 | 59 | | Issues, requests, approvals, release pointers, CI records | The `vole` branch in each repository | It is the source | | |
| 60 | | Accounts, instance roles, SSH keys, passkeys, invites, sessions, access rules, locks | `data/users.db` | No; back it up | | ||
| 60 | | Accounts, instance roles, SSH keys, passkeys, enrollment links, sessions, access rules, locks | `data/users.db` | No; back it up | | ||
| 61 | 61 | | Web/search index | `data/index.db` | Yes, with `vole admin index rebuild` | | |
| 62 | 62 | | CI queue, run index, contributor CI approvals | `data/runs.db` | Partly; in-progress work and approvals are lost | | |
| 63 | 63 | | LFS files, CI logs, build artifacts | `data/lfs/` | No; stored by content | | |
| 64 | 64 | | Privileged-action history | `data/audit.log` | It is the record | | |
| 65 | 65 | | SSH host key | `data/ssh_host_ed25519_key` | No; it is the secret | | |
| 66 | 66 | ||
| 67 | Git holds the project history. SQLite holds the user database, the CI queue, and | ||
| 68 | generated indexes. Anything that can be rebuilt comes from Git or stored files. | ||
| 67 | Git holds the repository history. SQLite holds the account database, the CI queue, | ||
| 68 | and generated indexes. Anything that can be rebuilt comes from Git or stored files. | ||
| 69 | 69 | Anything that cannot be rebuilt is small and easy to back up. | |
| 70 | 70 | ||
| 71 | 71 | The `vole` branch contains: | |
| @@ -90,8 +90,8 @@ is checked when it is pushed. | |||
| 90 | 90 | | Use the Git command-line tool | Full push behavior and hooks without reimplementing Git | | |
| 91 | 91 | | SSH for Git writes, passkeys for the browser | Each transport gets the credential it can actually use, and both resolve to one account | | |
| 92 | 92 | | Check everything before accepting a change | The push boundary and the narrow web writers share the same metadata validation | | |
| 93 | | Store metadata in Git, rules in SQLite | Project content travels with clones; local settings stay local | | ||
| 94 | | Passkeys, not passwords | No shared secret to phish, reset, or store; recovery is an administrator-issued enrollment link | | ||
| 93 | | Store metadata in Git, rules in SQLite | Repository content travels with clones; local settings stay local | | ||
| 94 | | Passkeys, not passwords | No shared secret to phish, reset, or store; recovery is an instance-admin-issued enrollment link | | ||
| 95 | 95 | | One program with separate serve and runner modes | Easy to deploy anywhere | | |
| 96 | 96 | | Keep the host key as the only secret | No signing key to manage or leak | | |
| 97 | 97 | ||