vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0: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/configuration.md +11−11
| @@ -44,9 +44,9 @@ vole admin user list | |||
| 44 | 44 | | `http_addr` | `"127.0.0.1:8080"` | Address for the web interface and anonymous Git clone; with `https_addr`, the ACME challenge and redirect address | | |
| 45 | 45 | | `https_addr` | empty | Address for automatic HTTPS; setting it enables ACME | | |
| 46 | 46 | | `ssh_addr` | `"127.0.0.1:2222"` | Address for SSH, the authenticated Git transport | | |
| 47 | | `public_url` | empty | Canonical browser address; must be HTTPS to enable passkey login | | ||
| 47 | | `public_url` | empty | Canonical browser address; must be HTTPS to enable passkey sign-in | | ||
| 48 | 48 | | `instance_name` | `"Vole"` | Name the landing page shows for this forge | | |
| 49 | | `instance_tagline` | `"Code, issues, changes, and CI, hosted here."` | One line under the name on the landing page | | ||
| 49 | | `instance_tagline` | `"Code, issues, change requests, and CI, hosted here."` | One line under the name on the landing page | | ||
| 50 | 50 | | `acme_email` | empty | Contact address given to the certificate authority | | |
| 51 | 51 | | `acme_domains` | empty | Host names to obtain certificates for; defaults to the host in `public_url` | | |
| 52 | 52 | | `acme_cache_dir` | `<data_dir>/acme` | Where the ACME account key and certificates are stored | | |
| @@ -71,13 +71,13 @@ while it receives the data, before any branch is updated. | |||
| 71 | 71 | ||
| 72 | 72 | ## Instance name and tagline | |
| 73 | 73 | ||
| 74 | The landing page names the forge above its project list. Set these when the | ||
| 75 | instance belongs to a project or team, so a visitor knows where they are without | ||
| 76 | reading the URL: | ||
| 74 | The landing page names the forge above its repository list. Set these when the | ||
| 75 | instance belongs to a team, so a visitor knows where they are without reading | ||
| 76 | the URL: | ||
| 77 | 77 | ||
| 78 | 78 | ```toml | |
| 79 | 79 | instance_name = "Acme Forge" | |
| 80 | instance_tagline = "Code, issues, changes, and CI for the Acme team." | ||
| 80 | instance_tagline = "Code, issues, change requests, and CI for the Acme team." | ||
| 81 | 81 | ``` | |
| 82 | 82 | ||
| 83 | 83 | Neither setting changes the `vole` wordmark in the top bar. | |
| @@ -92,7 +92,7 @@ public_url = "https://forge.example.com" | |||
| 92 | 92 | ``` | |
| 93 | 93 | ||
| 94 | 94 | The CLI uses this to print a link to an issue, comment, or release it just | |
| 95 | created. It is also the WebAuthn relying-party origin: browser login is enabled | ||
| 95 | created. It is also the WebAuthn relying-party origin: browser sign-in is enabled | ||
| 96 | 96 | only when `public_url` is an `https://` URL. Vole does not change how it routes | |
| 97 | 97 | requests based on this setting. | |
| 98 | 98 | ||
| @@ -148,7 +148,7 @@ per-domain rate limit. | |||
| 148 | 148 | ||
| 149 | 149 | ## Open registration | |
| 150 | 150 | ||
| 151 | By default only an administrator can create an account. Set | ||
| 151 | By default only an instance admin can create an account. Set | ||
| 152 | 152 | `open_registration = true` to let anyone create one by registering a passkey: | |
| 153 | 153 | ||
| 154 | 154 | ```toml | |
| @@ -172,7 +172,7 @@ A repository can still be published for anonymous readers with: | |||
| 172 | 172 | vole admin acl default demo read | |
| 173 | 173 | ``` | |
| 174 | 174 | ||
| 175 | ## Development login | ||
| 175 | ## Development sign-in | ||
| 176 | 176 | ||
| 177 | 177 | Browsers require HTTPS for passkeys, which makes a local `http://127.0.0.1:8080` | |
| 178 | 178 | preview awkward to use for write testing. `dev_login` is an explicit escape hatch: | |
| @@ -188,7 +188,7 @@ address, and logs a warning when the setting is active. The session cookie is | |||
| 188 | 188 | deliberately not named `__Host-` so a browser will store it over plain HTTP. | |
| 189 | 189 | Never enable this on an instance other people can reach. | |
| 190 | 190 | ||
| 191 | Logging out opts the browser out of automatic dev login; visit `/dev/login` to | ||
| 191 | Signing out opts the browser out of automatic dev sign-in; visit `/dev/login` to | ||
| 192 | 192 | sign back in. Remove `dev_login` and restart to turn it off entirely. | |
| 193 | 193 | ||
| 194 | 194 | ## Running behind a proxy | |
| @@ -216,7 +216,7 @@ connection intact. | |||
| 216 | 216 | ||
| 217 | 217 | | Path | What it is | | |
| 218 | 218 | |---|---| | |
| 219 | | `data/users.db` | Accounts, names, instance roles, SSH keys, passkeys, enrollment invites, browser sessions, access rules, and locks. This is the main user database. Session and invite tokens are stored only as hashes. | | ||
| 219 | | `data/users.db` | Accounts, names, instance roles, SSH keys, passkeys, enrollment links, browser sessions, access rules, and locks. This is the main account database. Session and enrollment-link tokens are stored only as hashes. | | ||
| 220 | 220 | | `data/repos/` | Your Git repositories. | | |
| 221 | 221 | | `data/index.db` | A rebuildable search index. | | |
| 222 | 222 | | `data/runs.db` | The CI queue, finished-run index, and contributor-branch CI approvals. Partly rebuildable; deleting it loses pending work and approvals. | | |