Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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.

Build a landing page and simplify the forge chrome

074ae1605e177e99533af02d8c69ccd1a6a947bb · Keenan Nemetz · 14d ago · parent 62576fa8

Build a landing page and simplify the forge chrome

The instance root is now a landing page rather than the full activity feed:
forge identity, project cards with top language, last commit, issue/change
counts and latest release, a short activity rail, and a first-run empty state.
The full feed moves to /activity with type filters and pagination.

Feeds now cover issues, changes, comments, and releases only; commits and CI
runs already have their own pages. Configuration gains instance_name and
instance_tagline.

Navigation: the crowded global bar becomes Runners, Activity, search, and an
account menu holding Admin, Status, and Log out. Repository pages show the name
and description above the tabs at the home-page header scale, while tab-page
titles stay small. Top-level pages keep the larger header. Drop the workflow
run chip, assigned-issues strip, repository size stat, and footer Status link.

docs/configuration.md +15

@@ -45,6 +45,8 @@ vole admin user list
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 47 | `public_url` | empty | Canonical browser address; must be HTTPS to enable passkey login |
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 |
48 50 | `acme_email` | empty | Contact address given to the certificate authority |
49 51 | `acme_domains` | empty | Host names to obtain certificates for; defaults to the host in `public_url` |
50 52 | `acme_cache_dir` | `<data_dir>/acme` | Where the ACME account key and certificates are stored |
@@ -66,6 +68,19 @@ The two push limits work at different levels. `max_blob_bytes` checks each file
66 68 a push. `receive_max_bytes` caps the size of the whole push and is enforced by Git
67 69 while it receives the data, before any branch is updated.
68 70
71 ## Instance name and tagline
72
73 The landing page names the forge above its project list. Set these when the
74 instance belongs to a project or team, so a visitor knows where they are without
75 reading the URL:
76
77 ```toml
78 instance_name = "Acme Forge"
79 instance_tagline = "Code, issues, changes, and CI for the Acme team."
80 ```
81
82 Neither setting changes the `vole` wordmark in the top bar.
83
69 84 ## Public URL
70 85
71 86 Set `public_url` when people reach Vole through a different address than