kepr

@june

Modern source forge for Koh repositories

TypeScript

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

185 files
7da960f87946
back to HEAD
public/41.6 KB · 2 weeks ago
scripts/10.1 KB · 2 weeks ago
src/224.3 KB · 2 weeks ago
admin/25.5 KB · 2 weeks ago
bucket/18.3 KB · 2 weeks ago
describe/7.8 KB · 2 weeks ago
issues/20.9 KB · 2 weeks ago
mirror/22.7 KB · 2 weeks ago
pages/69.9 KB · 2 weeks ago
releases/19.2 KB · 2 weeks ago
server/32.1 KB · 2 weeks ago
tarball/7.0 KB · 2 weeks ago
main.ts940 B · 2 weeks ago
tests/337.1 KB · 2 weeks ago
fixtures/93.2 KB · 2 weeks ago
kepr2/93.2 KB · 2 weeks ago
api_haven_releases_history.body352 B · 2 weeks agoapi_haven_releases_history.headers89 B · 2 weeks agoapi_haven_releases_latest.body908 B · 2 weeks agoapi_haven_releases_latest.headers89 B · 2 weeks agoapi_kepr_releases_history.body2.8 KB · 2 weeks agoapi_kepr_releases_history.headers89 B · 2 weeks agoapi_kepr_releases_latest.body889 B · 2 weeks agoapi_kepr_releases_latest.headers89 B · 2 weeks agoapi_koh_releases_2.1.0_linux-x86_64.headers99 B · 2 weeks agoapi_koh_releases_2.1.0_macos-aarch64.headers99 B · 2 weeks agoapi_koh_releases_2.1.16_linux-x86_64.body51 B · 2 weeks agoapi_koh_releases_2.1.16_linux-x86_64.headers58 B · 2 weeks agoapi_koh_releases_history.body9 B · 2 weeks agoapi_koh_releases_history.headers12 B · 2 weeks agoapi_koh_releases_latest.body2.1 KB · 2 weeks agoapi_koh_releases_latest.headers58 B · 2 weeks agoapi_nina_releases_history.body13.9 KB · 2 weeks agoapi_nina_releases_history.headers89 B · 2 weeks agoapi_nina_releases_latest.body1.8 KB · 2 weeks agoapi_nina_releases_latest.headers89 B · 2 weeks agoapi_nowhere_releases_latest.body53 B · 2 weeks agoapi_nowhere_releases_latest.headers58 B · 2 weeks agoapi_peach-android_releases_history.body27.1 KB · 2 weeks agoapi_peach-android_releases_history.headers89 B · 2 weeks agoapi_peach-android_releases_latest.body1.6 KB · 2 weeks agoapi_peach-android_releases_latest.headers89 B · 2 weeks agoapi_peach-relay_releases_history.body45 B · 2 weeks agoapi_peach-relay_releases_history.headers58 B · 2 weeks agoapi_peach-relay_releases_latest.body45 B · 2 weeks agoapi_peach-relay_releases_latest.headers58 B · 2 weeks agohaven_meta.body334 B · 2 weeks agohaven_meta.headers58 B · 2 weeks agohaven_releases_0.6.1_checksums.txt.body401 B · 2 weeks agohaven_releases_0.6.1_checksums.txt.headers52 B · 2 weeks agohaven_releases_0.6.1_haven-macos-aarch64.headers109 B · 2 weeks agohaven_releases_0.6.1_macos-aarch64.headers109 B · 2 weeks agohaven_releases_latest_version.txt.body5 B · 2 weeks agohaven_releases_latest_version.txt.headers52 B · 2 weeks agohaven_releases_latest.body0 B · 2 weeks agohaven_releases_latest.headers44 B · 2 weeks agohaven_update-info.body378 B · 2 weeks agohaven_update-info.headers58 B · 2 weeks agokepr_meta.body479 B · 2 weeks agokepr_meta.headers58 B · 2 weeks agokepr_releases_2.0.16_checksums.txt.body397 B · 2 weeks agokepr_releases_2.0.16_checksums.txt.headers52 B · 2 weeks agokepr_releases_2.0.16_kepr-linux-aarch64.headers114 B · 2 weeks agokepr_releases_2.0.16_linux-aarch64.headers114 B · 2 weeks agokepr_releases_latest_version.txt.body6 B · 2 weeks agokepr_releases_latest_version.txt.headers52 B · 2 weeks agokepr_releases_latest.body0 B · 2 weeks agokepr_releases_latest.headers44 B · 2 weeks agokepr_update-info.body377 B · 2 weeks agokepr_update-info.headers58 B · 2 weeks agokoh_meta.body491 B · 2 weeks agokoh_meta.headers58 B · 2 weeks agokoh_releases_2.1.0_checksums.txt.body753 B · 2 weeks agokoh_releases_2.1.0_checksums.txt.headers52 B · 2 weeks agokoh_releases_2.1.0_koh-linux-x86_64.headers112 B · 2 weeks agokoh_releases_2.1.0_linux-x86_64.headers112 B · 2 weeks agokoh_releases_latest_version.txt.body5 B · 2 weeks agokoh_releases_latest_version.txt.headers52 B · 2 weeks agokoh_releases_latest.body0 B · 2 weeks agokoh_releases_latest.headers42 B · 2 weeks agokoh_update-info.body678 B · 2 weeks agokoh_update-info.headers58 B · 2 weeks agonina_meta.body415 B · 2 weeks agonina_meta.headers58 B · 2 weeks agonina_releases_3.4.14_checksums.txt.body763 B · 2 weeks agonina_releases_3.4.14_checksums.txt.headers52 B · 2 weeks agonina_releases_3.4.14_linux-aarch64.headers114 B · 2 weeks agonina_releases_3.4.14_nina-linux-aarch64.headers114 B · 2 weeks agonina_releases_latest_version.txt.body6 B · 2 weeks agonina_releases_latest_version.txt.headers52 B · 2 weeks agonina_releases_latest.body0 B · 2 weeks agonina_releases_latest.headers44 B · 2 weeks agonina_update-info.body691 B · 2 weeks agonina_update-info.headers58 B · 2 weeks agopeach-android_meta.body362 B · 2 weeks agopeach-android_meta.headers58 B · 2 weeks agopeach-android_releases_2.17.43_android-arm64.headers135 B · 2 weeks agopeach-android_releases_2.17.43_checksums.txt.body441 B · 2 weeks agopeach-android_releases_2.17.43_checksums.txt.headers52 B · 2 weeks agopeach-android_releases_2.17.43_peach-android-android-arm64.headers135 B · 2 weeks agopeach-android_releases_latest_version.txt.body7 B · 2 weeks agopeach-android_releases_latest_version.txt.headers52 B · 2 weeks agopeach-android_releases_latest.body0 B · 2 weeks agopeach-android_releases_latest.headers54 B · 2 weeks agopeach-android_update-info.body414 B · 2 weeks agopeach-android_update-info.headers58 B · 2 weeks agopeach-relay_meta.body311 B · 2 weeks agopeach-relay_meta.headers58 B · 2 weeks agopeach-relay_update-info.body33 B · 2 weeks agopeach-relay_update-info.headers58 B · 2 weeks agorecord.shRecords Kepr 2's §22.4 compatibility routes from kepr.uk, GET only, into this folder: <slug>.headers (status line plus the headers the contract tests read) and <slug>.body.2.0 KB · 2 weeks agoschema.sql28.4 KB · 2 weeks ago
admin.test.ts6.2 KB · 2 weeks agobackup.test.ts6.4 KB · 2 weeks agobrowser.ts3.1 KB · 2 weeks agobucket.test.ts8.7 KB · 2 weeks agoconfig.test.ts2.9 KB · 2 weeks agoconnect.test.tsCovers connect setup, validation, one-time redemption, rate limits, admin history, and secrecy.15.9 KB · 2 weeks agoconsole.test.ts17.8 KB · 2 weeks agocontract.test.ts14.2 KB · 2 weeks agodescribe.test.ts9.8 KB · 2 weeks agodiff.test.ts2.9 KB · 2 weeks agofake-s3.tsA bucket in memory, served over HTTP for the joint public-steal test: koh3's own S3 backend and Bun's S3Client both talk to it, so Kepr and the two koh3 machines share one bucket.2.4 KB · 2 weeks agofixture.ts8.4 KB · 2 weeks agofront.test.ts10.4 KB · 2 weeks agoimport.test.ts15.6 KB · 2 weeks agoinstall.test.ts4.6 KB · 2 weeks agoissues.test.ts12.4 KB · 2 weeks agokepr2.test.ts4.2 KB · 2 weeks agokoh-version.txt6 B · 2 weeks agokohrelease.test.ts5.4 KB · 2 weeks agokohremote.test.tsCovers addendum A2 part 2: Koh's own remote layout, served read-only from a public repo's mirror.7.0 KB · 2 weeks agokohsteal.test.tsThe joint public-steal contract (addendum A2, item 8d): one machine publishes a repo to a bucket, Kepr serves it read-only over HTTP in Koh's own layout, a second koh3 steals it — and later, once that machine has signed in, offers its work back to the bucket.13.5 KB · 2 weeks agokohupdate.test.ts11.0 KB · 2 weeks agopages.test.ts20.0 KB · 2 weeks agoreleases.test.ts17.2 KB · 2 weeks agoserver.test.ts2.3 KB · 2 weeks agosync.test.ts9.2 KB · 2 weeks agotarball.test.ts12.1 KB · 2 weeks agotimeout.ts359 B · 2 weeks ago
biome.json361 B · 2 weeks agobun.lock20.6 KB · 2 weeks agobunfig.toml40 B · 2 weeks agokepr.example.tomlCopy to kepr.toml (never saved: it holds the admin password hash and the bucket key).775 B · 2 weeks agopackage.json497 B · 2 weeks agotsconfig.json441 B · 2 weeks ago
a4e1f5407345record the finished operator console in continuity (v3.0.167)1 week agof47afb6afc01draw the download day bars in the theme's colours and centre console row buttons (v3.0.166)1 week agoeb54516e9dc9split the repo workspace into overview, settings, builds and archives tabs (v3.0.165)1 week ago5487c6f1524aclose, reopen, hide or unhide ticked issues together from the console list (v3.0.164)1 week ago1440b2ee584cblock a reporter's address from filing and following up, listed and lifted in the console (v3.0.163)1 week ago0c5812ee878ashow bucket storage by repo at /admin/storage, with per-tarball delete and cleanup of Kepr's orphaned files (v3.0.162)1 week ago850a5062b8fecount downloads per repo and day, shown at /admin/downloads with totals and top files (v3.0.161)1 week ago1a625426812fdelete one file of a build, rewriting its release record first (v3.0.160)1 week ago0fb42c17ed78record the operator console's first part and what comes next in continuity (v3.0.159)2 weeks ago53796355d42eset Kepr up in the browser on first run with a one-time code from the terminal, then hand over without a restart (v3.0.158)2 weeks ago3be930495fbcswitch the bucket source between S3 and a folder remote either way from the console (v3.0.157)2 weeks agoa602ee4ac891change the admin password, sign out other sessions and set the domain from a new Account section, applied without a restart (v3.0.156)2 weeks ago9288dbfe8a4fcopy each backup to an optional backup bucket set in the console, keeping the newest 14 there (v3.0.155)2 weeks agode3f4637e3efraise the TypeScript ceiling to 12,600 with admin 2,800, server 2,000, issues 1,200 and CSS 3,400 (v3.0.154)2 weeks ago2d05e7661d88record the codex review fixes and June's operator-console asks in continuity (v3.0.153)2 weeks agoba443d076bcedelete builds one at a time, moving latest first and the record last, so a failed delete retries cleanly (v3.0.152)2 weeks ago2b4b50250d6dkey kept tarballs by strips, hidden paths and mirror epoch, recheck after every await, and rebuild mirrors in place so held handles stay usable (v3.0.151)2 weeks agodf02ac46afcenote the connect-test timeout flake and gating on bun test's exit code (v3.0.150)2 weeks ago756506893ff9record that Kepr may delete builds in AGENTS.md, and the session's state in continuity (v3.0.149)2 weeks ago1305a0bb9d6dhide files and folders per repo from every page, the stats and tarballs, handing the list to Koh under .kepr/hidden (v3.0.148)2 weeks ago3c2984c576fcfix the one-settings-form test that v3.0.146 saved red after adding the tarball form (v3.0.147)2 weeks agob967d82d724edelete a repo's kept tarballs from the bucket on its admin page (v3.0.146)2 weeks ago02702253e7aekeep built tarballs in the bucket under .kepr/tarballs instead of the data directory (v3.0.145)2 weeks ago9a44722de6e7delete a build from the bucket on its repo's admin page, moving releases/latest to the newest left (v3.0.144)2 weeks ago528bcf043cacedit each build's notes and visibility on its repo's admin page, replacing the releases section (v3.0.143)2 weeks ago086289d5af85edit a repo's description and details from its admin page (v3.0.142)2 weeks ago71860b49096flet a folder instance switch to S3 from the bucket section (v3.0.141)2 weeks ago4ffd21d3611bremove install lines and card order; repos sort by name and old kepr.db columns are dropped (v3.0.140)2 weeks ago3c4ab82be15caccept plain-http admin forms when the domain is localhost, so local saves stop being refused (v3.0.139)2 weeks ago58d7fe07cda0list and download every backup, back up now, and show the last failure and restore steps (v3.0.138)2 weeks ago301147eeaa38email notifications over SMTP with a test send and a retrying delivery queue (v3.0.137)2 weeks ago2d3ee7d12177raise the TypeScript ceiling to 10,500 for email and backups (v3.0.136)2 weeks agoeb098609196dadd in-app operator notifications with unread count and per-kind switches (v3.0.135)2 weeks ago987482f17e06add issue triage tabs, filters, follow-up hiding and a per-repo pause on new issues (v3.0.134)2 weeks ago364bcfc8c156turn the repo section into a selected-repo workspace with shown languages (v3.0.133)2 weeks ago3559470a0d0eallocate the last 200 reserve lines to the server area (v3.0.132)2 weeks ago63e55f152976edit, test and live-apply S3 bucket settings from the admin console (v3.0.131)2 weeks ago55425ebd763cwip: record operator rebuild handoff; 8 sandbox test failures (v3.0.130)2 weeks ago29a59bb8b319give backups their own operator sidebar section (v3.0.129)2 weeks ago88d31110724callocate approved admin and server headroom (v3.0.128)2 weeks ago0cfcf6b2b220remove signature image controls from profile settings (v3.0.127)2 weeks ago419974952a84remove unnecessary repository search (v3.0.126)2 weeks ago68cf65f02c26edit descriptions through direct click and keyboard activation (v3.0.125)2 weeks agodc1ad7f95d01show six scrollable profile activity rows (v3.0.124)2 weeks ago51905dc98553align the issue form action row (v3.0.123)2 weeks ago61dc281fbb19keep island template markup readable (v3.0.122)2 weeks ago9ca245205729raise the approved CSS allowance to 3000 lines (v3.0.121)2 weeks ago73424a9e6ac2restore Kepr 2 hierarchy and actions in repo islands (v3.0.120)2 weeks ago9af784d30135give the operator a focused workspace with separate profile editing (v3.0.119)2 weeks ago52bd51d09124show admin beside log out for signed-in operators (v3.0.118)2 weeks ago

← newerolder →

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.