Commit Graph

2 Commits

Author SHA1 Message Date
Fredrik Johansson
264a9e1168 Add Docker deploy and Gitea Actions CI, plus a local testing guide
All checks were successful
Docker / build-and-push (push) Successful in 1m51s
Dockerfile/docker-compose.yml mirror keep's pattern — same
better-sqlite3 native-addon build story, same pull_policy: always +
named volume for the SQLite DB so redeploys don't lose captured
articles. Gitea Actions workflow builds and pushes to the Gitea
container registry on push to main (needs a TKNTKN repo secret, same
as keep/wisp/npm-statuspage).

TESTING.md is the step-by-step for running the server + loading the
extension unpacked, written up from what was actually verified
end-to-end in the previous session.

Verified: image builds, server starts and responds inside the
container, capture works, and data survives a container restart.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 23:31:19 +02:00
Fredrik Johansson
f2ebfe35d4 Initial build: stash server + browser extension
Server (Express + better-sqlite3 + FTS5, mirroring keep's stack):
/api/capture (upsert-on-url, per PROPOSAL.md's dedup decision),
/api/articles (list/search/mark-read/delete), plus a minimal
server-rendered reading list and reader view at / and /read/:id
(token passed as ?t= there since browser navigation can't set an
Authorization header). Bearer-token auth generated via `npm run
token` — no login flow, matching keep's one-time identity
registration pattern.

Extension (Manifest V3, sideloaded, no store distribution): toolbar
click or context menu "Send to stash" runs @mozilla/readability
(vendored into extension/lib/) against the current page, falling back
to raw rendered HTML when extraction comes back too thin. Options
page for one-time server URL + token entry.

Verified end-to-end with the real extension loaded in a live Chromium
instance (not just unit-tested extraction logic): capture against a
real page, dedup-on-recapture, mark-read, FTS5 search, 401 on missing
auth, and both server-rendered views all confirmed working.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 23:23:01 +02:00