Crowdsourced App Configurations website for Obtainium.
The website is accessible at apps.obtainium.imranr.dev
Analytics: https://ln.imranr.dev/obt-apps-visits
This is an Astro project that serves as the frontend for crowdsourced Obtainium app configurations. It features:
- Browse and search available app configs
- Filter by category
- One-click install via
obtainium://protocol links - URL redirection for sharing Obtainium links (
/redirect) - Multi-language support
npm install
npm run devThe dev server will be available at http://localhost:8080.
npm run buildnpm test runs unit tests with V8 coverage and the SSR/data integration suite.
The suite validates every app config and smokes the built SSR server (pages,
API, redirect handling, and static assets). Build first:
npm ci
npm run build
npm testCoverage is measured over src/lib, src/middleware.ts, and the API routes,
with thresholds of 95% for statements, lines, functions, and branches. Astro
pages and components are covered behaviorally by the SSR tests rather than
instrumented line coverage.
To build and smoke the production image locally:
docker build -t apps.obtainium.imranr.dev .
bash scripts/smoke-image.sh apps.obtainium.imranr.devCI publishes the production image to GHCR from main:
docker pull ghcr.io/imranr98/apps.obtainium.imranr.dev:latest
docker run --rm -p 8080:8080 ghcr.io/imranr98/apps.obtainium.imranr.dev:latestImages are tagged latest and sha-<commit>; each publish records the image
digest as a workflow artifact. The old Docker Hub image
imranrdev/apps.obtainium.imranr.dev is deprecated; pull the GHCR image instead.
Renovate config lives in renovate.json. It groups non-major updates and keeps
majors separate. Minor/patch/pin/digest updates use native GitHub auto-merge
with a squash merge once the test check is required on main; major updates
remain manual. Do not rely on auto-merge until branch protection requires
test and GitHub auto-merge is enabled for the repository.
Any project can link straight to an Obtainium import without a listing in this directory, the way Delta Chat and PrivacyNotes do on their own download pages. See BADGING.md for the two link forms and a worked example.
See the contributing guidelines for how to add new app configs.
