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.
|
3b39a84c
Keenan Nemetz
14d ago
|
1 | # Configuration for a packaged instance. The package installs this at |
| 2 | # /etc/vole/vole.toml, and `vole admin init --config /etc/vole/vole.toml` uses it | |
| 3 | # to create the repository tree and user database it names. | |
| 4 | data_dir = "/var/lib/vole/data" | |
| 5 | ||
|
642e5994
Keenan Nemetz
14d ago
|
6 | # Read-only: the web UI and anonymous git clone. Leave HTTPS off and terminate |
| 7 | # TLS in a proxy in front of this address, keeping the Host header intact because | |
| 8 | # site requests are routed by hostname. | |
|
3b39a84c
Keenan Nemetz
14d ago
|
9 | http_addr = "127.0.0.1:8080" |
| 10 | ||
|
642e5994
Keenan Nemetz
14d ago
|
11 | # Or let Vole obtain and renew its own certificates with ACME. Setting https_addr |
| 12 | # enables it; http_addr then answers ACME challenges and redirects to HTTPS, so it | |
| 13 | # must be reachable on port 80. public_url below (or acme_domains) must name a | |
| 14 | # host that resolves to this server. Ports 80 and 443 need the service unit to | |
| 15 | # grant CAP_NET_BIND_SERVICE. | |
| 16 | # https_addr = ":443" | |
| 17 | # http_addr = ":80" | |
| 18 | # acme_email = "admin@example.com" | |
| 19 | # acme_domains = ["forge.example.com"] | |
| 20 | # acme_cache_dir = "/var/lib/vole/data/acme" | |
| 21 | # acme_directory_url = "https://acme-staging-v02.api.letsencrypt.org/directory" | |
| 22 | ||
|
3b39a84c
Keenan Nemetz
14d ago
|
23 | # The only write transport. Identity is the SSH key presented at handshake. |
| 24 | # 2222 keeps this listener off sshd's port; open it in the firewall. | |
| 25 | ssh_addr = "0.0.0.0:2222" | |
| 26 | ||
| 27 | # Where a browser reads this instance. Set it to the canonical https URL to | |
| 28 | # enable passkey login; WebAuthn is bound to this origin. The CLI also uses it to | |
| 29 | # print the page for something it just created. Trailing slash is ignored. | |
| 30 | # public_url = "https://forge.example.com" | |
| 31 | ||
|
ed181212
Keenan Nemetz
13d ago
|
32 | # Development only: sign loopback browser requests in as this account without a |
| 33 | # passkey. dev_only acknowledges that this instance is a development instance; | |
| 34 | # without it dev_login is refused, as it is with https_addr or a non-loopback | |
| 35 | # public_url. | |
| 36 | # dev_only = true | |
| 37 | # dev_login = "you" | |
| 38 | ||
|
3b39a84c
Keenan Nemetz
14d ago
|
39 | # Let anyone create an account by registering a passkey. New accounts have no |
| 40 | # repository-specific access; each repository's default role still applies. | |
| 41 | # Off unless you are running an instance that wants public contributions. | |
| 42 | # open_registration = true | |
|
5b814e99
Keenan Nemetz
14d ago
|
43 | |
| 44 | # The instance-wide role a self-registered account gets. It applies to public | |
| 45 | # repositories only; an instance admin still has admin access to every | |
| 46 | # repository. Use "contribute" for an open-source instance. "admin" is refused. | |
| 47 | # open_registration_role = "contribute" |