26 Commits
Author SHA1 Message Date
germondai 242caac97d docs: clarify published image tags 2026-08-10 19:21:10 +02:00
germondai c0769af181 fix(browser): bound memory with rolling recycling 2026-08-09 18:15:48 +02:00
germondai 5d19afc6e9 docs: add NAS app catalog links 2026-08-02 17:00:33 +02:00
germondai 0fb4097388 docs: refresh feature overview and project contact addresses 2026-08-02 02:46:53 +02:00
germondai 01b911d2e8 docs(proxy): document residential proxy setup 2026-07-27 03:27:57 +02:00
germondai c528b45c98 docs(readme): document transparent proxy usage 2026-07-26 14:06:38 +02:00
germondai 23fd733c16 docs(readme): document all MITM proxy env vars + host/maxTier defaults 2026-07-23 00:45:03 +02:00
aziz66andClaude Fable 5 aa719dd1fa feat(proxy): browser-backed MITM forward-proxy mode
The FlareSolverr /v1 contract only returns cookies + user-agent. Clients like
Prowlarr take those and re-fetch the target with their own HTTP stack, which is
re-challenged on sites whose Cloudflare clearance is bound to the solving
browser's connection fingerprint (e.g. 1337x) — no cookie is portable to a
plain HTTP client, so those indexers can't be used at all.

Add an optional HTTP(S) forward proxy (MITM_PROXY_ENABLED). Point such a client's
proxy at it (per-indexer HTTP proxy in Prowlarr) and every request — search and
the .torrent/magnet grab — is transparently re-issued through the browser pool,
returning the RAW response bytes so binary downloads pass through intact.

- ca.ts: self-generated CA (persisted) + on-demand per-host leaf certs
- server.ts: per-host loopback-TLS termination (Bun's node:tls can't drive a
  handshake via emit("connection") or honor SNICallback, so one listening TLS
  server per host is the reliable path); raw-byte capture via page.goto response
  body, with the download-event path for binaries; scrape() fallback solves CF
- /proxy-ca.crt route to fetch the CA for the client's trust store
- New env: MITM_PROXY_{ENABLED,PORT,CA_DIR,MAX_TIER,DEBUG}

Off by default; localhost-only by design (a MITM proxy can impersonate any host
to a client that trusts its CA).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 01:13:45 +04:00
GermondandGitHub 21ef01ac37 docs(readme): updated sponsor section 2026-07-15 04:19:01 +02:00
Guil. Sperb MachadoandGitHub c0e423df51 docs: minor git clone README change 2026-07-13 20:31:48 +00:00
GermondandGitHub 1c949f90d8 docs(readme): tighten features for github line width and unify sponsors 2026-07-13 20:17:05 +02:00
GermondandGitHub 2cfa262b8d docs(readme): refresh marketing copy and add sponsor section 2026-07-13 20:08:49 +02:00
germondai 438326f584 docs: add Releases & versioning section to README
Explains the SemVer tag -> publish.yml -> Docker tag flow for issue #24,
and how to publish a specific past commit without waiting for main's tip.
2026-07-10 21:12:39 +02:00
germondai 4c46f61b8d docs: update README and changelog for the Redis 8.8 revert 2026-07-10 16:11:24 +02:00
germondai 09bdd18b30 docs: update docs and README for Dragonfly and new structure 2026-07-10 08:31:54 +02:00
germondai 444df08d00 docs: update CHANGELOG, README, and docs for recycle-on-blocked and content-processes 2026-07-06 20:11:08 +02:00
dot 171f673f28 Table formatting 2026-07-06 01:15:16 -07:00
CoolDotty 68ad2e0f1a Recycle browsers after temporary contexts 2026-07-06 00:47:32 -07:00
germondai 9261d5d92f docs: update references to renamed PORT env var 2026-07-05 18:06:12 +02:00
germondai c2b328d841 docs: mention bun kernel version requirements for :baseline vs :latest 2026-07-01 19:04:43 +02:00
germondai a6ee080d44 docs(readme): confirm :baseline works on synology per issue #1 2026-07-01 18:55:04 +02:00
germondai f9a3a0314c ci: use semver-baseline tag pattern (1.0.0-baseline) 2026-06-30 23:30:48 +02:00
germondai 0a32a05cff ci: publish baseline to same ghcr package as :latest (:baseline tag) 2026-06-30 23:05:12 +02:00
germondai 64e1c1ec8a docs: document two-image setup (latest + baseline, no legacy) 2026-06-30 16:04:49 +02:00
germondai 83c30c69f7 docs(readme): fix BROWSER_POOL_SIZE default and document BROWSER_ACQUIRE_TIMEOUT_MS 2026-06-30 00:33:31 +02:00
germondai 2d314f7703 docs: write comprehensive project README 2026-06-24 11:30:00 +02:00