kepr

@june

Modern source forge for Koh repositories

TypeScript

v3.2.5 · 270 saves · 17,225 lines · updated 5 days ago

15 files
3f94f3d4aead
back to HEAD
a16dea674709read release records into the mirror when head or releases/latest moves, and keep hidden releases, notes overrides and download and install counts in kepr.db (v3.0.20)2 weeks ago06b0512cf8aerecord kepr 2's release and compatibility routes from kepr.uk as contract fixtures, with the GET-only script that re-records them (v3.0.19)2 weeks agoc2ced00ce4c7show a change to a file's final newline as a changed last line with the no-newline marker, and record the phase 3 review fixes in continuity (v3.0.18)2 weeks ago56d982f71079key cached tarballs by the mirror's strip count so a strip never serves stale bytes even without cleanup, and write every file 0644 as kepr 2 does (v3.0.17)2 weeks agobf8f698c551badd the archives panel with HEAD and recent tarballs and nix profile add lines for flakes, drop stray test mirror files, and record phase 3 in continuity (v3.0.16)2 weeks agoaf1f70ffc57aadd deterministic source tarballs byte-identical to kepr 2's tar, cached on disk and dropped by strip events, with the HEAD redirect and its immutable link (v3.0.15)2 weeks agodec9767f3870add the save page: facts, flag reason, parent past checkpoints, files changed with line stats and highlighted unified diffs from a small Myers diff (v3.0.14)2 weeks agoa6176ba16fafgive Atlas folder panels the full history facts and make the island ignore malformed remembered folders (v3.0.13)2 weeks ago08451dd8bbb6take license headers only in their real shapes, find the README intro as the Atlas finds a first paragraph, and pin real-source headers in tests (v3.0.12)2 weeks agoffa764f54431add the Atlas browser island: hover panel, filename filter and remembered open folders, with phase 2 recorded in continuity (v3.0.11)2 weeks ago5e4eb28dcc4aadd the Atlas to the repo page: folder tree with described rows, per-file history panels and ?at= views at any save (v3.0.10)2 weeks ago532072a50935add descriptions from comments per §21.5, with license-header and shebang skips and first-sentence one-liners (v3.0.9)2 weeks ago9b2c795e05c6treat large invalid utf-8 files as binary, check event kinds against their fields, and refuse unknown mirror schema versions (v3.0.8)2 weeks agode50af6ed620add the public repo page, file viewer and raw files behind the visibility gate, with the svg timeline, shiki highlighting and kepr 2's look (v3.0.7)2 weeks agoaab0488febf0add kepr.db, the per-repo koh 3 mirror with its queries, and the two-minute sync loop that applies strip events and records the last sync (v3.0.6)2 weeks ago1972104e46afvalidate paths, ids and fields of bucket save records before use (v3.0.5)2 weeks ago3f94f3d4aeadadd agents guide, continuity and visual reference for kepr 3 (v3.0.4)2 weeks ago80ceee69d14aadd security headers, the 64 KB body cap, the budget check and the route-list test (v3.0.3)2 weeks ago62097d82837dadd the read-only bucket reader with the koh-remote format check, verified objects and a koh3-built fixture (v3.0.2)2 weeks agod9c345d0eac2scaffold kepr 3 on bun with strict typescript, biome and validated kepr.toml loading (v3.0.1)2 weeks ago

← newer

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.