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.
Name the configured host in the SSH clone link
268b93688db5dd045cf92f61dc0922919b074fc6 · Keenan Nemetz · 21h ago · parent 2c988ecd
Name the configured host in the SSH clone link ssh_addr is a bind address, so an instance listening on 0.0.0.0 showed ssh://git@0.0.0.0:2222/... in the clone menu. Take the host from public_url, which is the configured name, and keep ssh_addr for the port. The instance repository page reads the same helper.
docs/configuration.md +7−1
| @@ -52,7 +52,7 @@ vole admin account list | |||
| 52 | 52 | | `secrets_key` | `<data_dir>/secrets.key` | The file holding the key that seals each repository's secrets. Point it somewhere a backup of `data_dir` does not reach, so a copy of the database is a copy of ciphertext | | |
| 53 | 53 | | `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 | | |
| 54 | 54 | | `https_addr` | empty | Address for automatic HTTPS; setting it enables ACME | | |
| 55 | | `ssh_addr` | `"127.0.0.1:2222"` | Address for SSH, the authenticated Git transport | | ||
| 55 | | `ssh_addr` | `"127.0.0.1:2222"` | Address for SSH, the authenticated Git transport; its port is also the one the clone link names, while the clone host comes from `public_url` | | ||
| 56 | 56 | | `ssh_max_connections` | `64` | Simultaneous connections on that listener; past it a connection is closed before the handshake rather than queued | | |
| 57 | 57 | | `ssh_max_git_processes` | `16` | Git processes across every SSH connection; past it a command waits a short while, then is told to retry | | |
| 58 | 58 | | `ssh_handshake_timeout_seconds` | `20` | How long a connection may take to finish the SSH handshake before it is dropped | | |
| @@ -300,6 +300,12 @@ Copying a clone URL out of a page and into a terminal is normal use, so the URL | |||
| 300 | 300 | page shows should be the instance's, not the caller's. Set `public_url` on any | |
| 301 | 301 | instance other than a loopback preview. | |
| 302 | 302 | ||
| 303 | The same host is what the SSH clone link shows, with the port from `ssh_addr`: | ||
| 304 | an instance listening on `0.0.0.0:2222` with `public_url = | ||
| 305 | "https://forge.example.com"` offers `ssh://git@forge.example.com:2222/demo.git`. | ||
| 306 | A bind address is not something a person can connect to, so it is never used as | ||
| 307 | the clone host when a name is configured. | ||
| 308 | |||
| 303 | 309 | Forwarded headers (`X-Forwarded-Proto`, `X-Forwarded-For`) are believed only when | |
| 304 | 310 | `git_http_client_ip_header` is set, because that is the instance's statement that | |
| 305 | 311 | a proxy it trusts is rewriting them. Without it, a client that sets a forwarding | |