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.
Add automatic HTTPS with ACME
642e599466fe4f5066afdc9a24775694a52c9749 · Keenan Nemetz · 15d ago · parent 91e6a33a
packaging/vole.toml +15−3
| @@ -3,11 +3,23 @@ | |||
| 3 | 3 | # to create the repository tree and user database it names. | |
| 4 | 4 | data_dir = "/var/lib/vole/data" | |
| 5 | 5 | ||
| 6 | # Read-only: the web UI and anonymous git clone. | ||
| 7 | # TLS is not Vole's job: terminate it in a proxy in front of this address and keep | ||
| 8 | # the Host header intact, because site requests are routed by hostname. | ||
| 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. | ||
| 9 | 9 | http_addr = "127.0.0.1:8080" | |
| 10 | 10 | ||
| 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 | |||
| 11 | 23 | # The only write transport. Identity is the SSH key presented at handshake. | |
| 12 | 24 | # 2222 keeps this listener off sshd's port; open it in the firewall. | |
| 13 | 25 | ssh_addr = "0.0.0.0:2222" | |