Skip to content

Add third-party F-Droid repos as app sources#16

Merged
gavdevs merged 1 commit into
mainfrom
feat/third-party-fdroid-repos
Jul 5, 2026
Merged

Add third-party F-Droid repos as app sources#16
gavdevs merged 1 commit into
mainfrom
feat/third-party-fdroid-repos

Conversation

@gavdevs

@gavdevs gavdevs commented Jul 5, 2026

Copy link
Copy Markdown
Member

What

Adds 11 developer-run F-Droid-format repos as app sources, driven by a single registry file (db/seed/data/fdroid-repos.ts): Guardian Project, microG, Molly, Cromite, Bitwarden, Threema Libre, Session, Briar, SimpleX, NewPipe, Calyx Institute.

  • seed:fetch downloads each repo's index-v2.json best-effort — a down repo (Cromite is 502 right now) is skipped with a warning instead of failing the whole fetch
  • The existing F-Droid parser handles them; third-party sources link to the repo's human-facing page and store a full Obtainium FDroidRepo config in metadata, so the existing deep-link generator produces working install links with zero changes
  • Each repo is its own source type, so an app can carry several repo sources without colliding on the (app_id, source) unique constraint
  • New source badges + Obtainium dropdown labels; new repo hosts added to the icon proxy allowlist
  • Obtainium dropdown entries now always show a source-specific label ("via Molly repo") instead of a generic "Obtainium config" for every config-backed source

Why

Verified via dry-run parse: brings in ~19 apps not on F-Droid/IzzyOnDroid at all — Signal, Orbot, Tor Browser, microG (all 3 components), Molly, Bitwarden, Session, Firefox Klar — and adds official developer repos as additional install sources for existing apps (Briar, SimpleX, Threema Libre, NewPipe).

Also in here

Import upserts previously set updated_at = excluded.updated_at unconditionally, so every reseed bumped every row and made sitemap <lastmod> dishonest. Now updated_at only moves when a field actually changes (SQLite IS NOT comparisons on the effective post-COALESCE values).

After merge

Deploy the worker first (icon allowlist + badges), then run seed:fetch && seed:import, then seed:embeddings so the new apps appear in search.

🤖 Generated with Claude Code

https://claude.ai/code/session_019KKBeXoo8rQv8oRiA6GJnv

Adds a registry (db/seed/data/fdroid-repos.ts) of 11 developer-run
F-Droid-format repos: Guardian Project, microG, Molly, Cromite,
Bitwarden, Threema Libre, Session, Briar, SimpleX, NewPipe, Calyx.
fetch.ts downloads each index-v2.json best-effort (a down repo is
skipped, not fatal), and the existing F-Droid parser handles them —
third-party sources link to the repo's human-facing page and carry a
full Obtainium FDroidRepo config so install deep links work.

Brings in ~19 apps not on F-Droid/IzzyOnDroid (Signal, Orbot, Tor
Browser, microG, Molly, Bitwarden, Session, Firefox Klar) and adds
official developer repos as install sources for existing apps.

Also stops import upserts from bumping updated_at when nothing
actually changed, so sitemap <lastmod> stays honest across reseeds.

Claude-Session: https://claude.ai/code/session_019KKBeXoo8rQv8oRiA6GJnv
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
unclouded 043098f Commit Preview URL

Branch Preview URL
Jul 05 2026, 02:37 AM

@gavdevs gavdevs merged commit bbfa1fe into main Jul 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant