kepr
Modern source forge for Koh repositories
timeline
atlas197 files
public/
scripts/
src/
describe/
mirror/
pages/
a and b are its 0-based line numbers in the old and new text.docs.tsfiles.tsfront.tshighlight.tshousekeeping.tshtml.tsMarkup that is already safe: built by html, or rendered by markdown-it with raw HTML off.kepr2.tslayout.tslibrary.tsmarkdown.tsprofile.tsreleases.tsrepo.tssave.tstimeline.tsreleases/
server/
tarball/
tests/
fixtures/
kepr2/
koh3 steals it — and later, once that machine has signed in, offers its work back to the bucket.kohupdate.test.tslinks.test.tsnavbar.test.tspages.test.tsreleases.test.tsrepotext.test.tsrepoworkspace.test.tsCovers §24's selected-repo workspace: the summary, detected and shown languages, where the description comes from, and the repo's releases.server.test.tssync.test.tstarball.test.tstimeout.tstriage.test.tsCovers §23–§24's triage: tab counts, awaiting reply, repo/type/word filters, hiding one follow-up, and pausing new issues per repo.history
details
Kepr
Kepr is a self-hosted website for your Koh projects. It reads your Koh remote and lets people browse the code and history you choose to publish. You run it on your own domain, with your own storage, and keep working in Koh from the terminal.
Visitors can read highlighted source, see file descriptions, and inspect diffs at any save. They can download source archives or published releases, with checksums and update feeds available for releases. Bug reports and questions don't require a visitor account.
Each instance has one operator. Repositories start private; you choose which ones appear on the site. Kepr is built with TypeScript, Bun, Hono, and SQLite.
See Kepr in use · Self-hosting guide
Set up an instance
You'll need Bun and a Koh 3 remote. You can use an S3-compatible bucket or try Kepr locally with a folder remote. A public instance needs a domain and an HTTPS reverse proxy.
bun install --production
bun run start
On the first run, open /setup on your instance (http://localhost:3000/setup
locally). The terminal prints a setup code. Enter it in the browser and set your
password, domain, and storage connection. Kepr saves the configuration and
starts syncing from your remote.
Sign in to select the projects you want to make public.