# Distribution without GitHub SkateSpots is published from a self-hosted **Forgejo** instance. No GitHub account is required. ## Current release source - Forge: - Latest release: - Signed APK (1.7.64): - SHA-256: `32d5cd358aaedd8bff8d128035bb6ad30f553d84779d4e5a3f72ee89cabce7fe` The APK is signed with the same key as the Zapstore build. Installing an F-Droid-signed build over it would require uninstalling SkateSpots and losing the local key/settings. Obtanium and direct APK updates keep the install. ## Obtanium Obtanium cannot use a Zapstore URL as a source. Use the self-hosted Forgejo release page instead: 1. Open Obtanium → **Add App**. 2. Paste: `https://git.skate-spots.org/skatespots/SkateSpots/releases/latest` 3. If Obtanium does not recognise the self-hosted host, select **Override Source → HTML**. 4. Set version extraction if desired: `SkateSpots-([0-9.]+)\.apk`, match group `1`. The release page contains exactly one `.apk`, so Obtanium can follow the latest release without a custom store listing. ## F-Droid family ### Self-hosted F-Droid repo (live now) A signed third-party F-Droid repository is published here: - Repo: - App ID: `org.skatespots.app` - Repo signing fingerprint: `88:B1:71:1C:24:02:89:FB:B2:A7:FC:C1:B3:1F:BB:9D:60:F5:7F:19:18:E0:3D:62:2D:35:F2:3D:E1:84:46:75` Users can add this URL in F-Droid, or add it in Obtanium as an **F-Droid Third Party Repo**. This is not F-Droid main: it is a self-hosted, signed repository of the developer-signed APK. It keeps the existing install and signing key. The repository metadata and APK are served from the relay host. The repo index is signed with a repository key stored on that host; the APK itself keeps the SkateSpots developer signature. ### No external store identities **Owner decision:** distribution stays self-hosted and Nostr-based. No GitLab, Codeberg, GitHub, email or F-Droid-main accounts are created or requested. F-Droid main and IzzyOnDroid both require external identities and review, so they are intentionally out of scope. The self-hosted repo above is the supported F-Droid-family channel. `distribution/fdroiddata/` and `fastlane/` are kept as an unused technical reference only. A fresh local clone at `5ebf741` built the unsigned APK through the recipe's `npm ci → android:init → android:sync → assembleRelease` path, but the recipe must not be submitted. ## Release checklist 1. `npm test` 2. `scripts/release.sh patch --yes --deploy` (Zapstore + web) 3. Push the release tag and `main` to Forgejo. 4. Upload the APK through the helper: `FORGEJO_TOKEN=... scripts/publish-forgejo.sh ` (or set `FORGEJO_TOKEN` before `release.sh`; the APK upload is then automatic) 5. Copy the signed APK into the F-Droid repo on the relay host, add a `metadata/org.skatespots.app.yml` changelog entry, run `fdroid update`, and sync `repo/` to `/var/www/fdroid/repo/`: ```bash cd /home/ubuntu/fdroid cp /path/to/SkateSpots-.apk repo/ . /home/ubuntu/fdroid-venv/bin/activate fdroid update sudo rsync -a --delete repo/ /var/www/fdroid/repo/ sudo chown -R caddy:caddy /var/www/fdroid ``` 6. Verify the public latest-release page contains the new `.apk`, and that `https://fdroid.skate-spots.org/repo/index-v2.json` lists the new `versionCode`. 7. Update the static download page if the displayed version/checksum changes: `public/download/index.html`. The Forgejo instance runs on the same host as the relay. It exposes public read access and HTTPS through Caddy; registration is disabled and administrative credentials are kept on the host, not in this repository.