101 lines
4.1 KiB
Markdown
101 lines
4.1 KiB
Markdown
# Distribution without GitHub
|
|
|
|
SkateSpots is published from a self-hosted **Forgejo** instance. No GitHub
|
|
account is required.
|
|
|
|
## Current release source
|
|
|
|
- Forge: <https://git.skate-spots.org/skatespots/SkateSpots>
|
|
- Latest release: <https://git.skate-spots.org/skatespots/SkateSpots/releases/latest>
|
|
- Signed APK (1.7.61):
|
|
<https://git.skate-spots.org/skatespots/SkateSpots/releases/download/v1.7.61/SkateSpots-1.7.61.apk>
|
|
- SHA-256:
|
|
`db0279f759efd9fa05d9d1bed57a3f5856777e6ccb208d3ed78b15398f266fba`
|
|
|
|
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: <https://fdroid.skate-spots.org/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.
|
|
|
|
### F-Droid main and IzzyOnDroid
|
|
|
|
F-Droid main requires a public, clonable source repository (the Forgejo URL
|
|
above), an accepted `fdroiddata` recipe, a reproducible build and maintainer
|
|
review. IzzyOnDroid is the easier external submission step. Both remain
|
|
external-review processes; the self-hosted repo above is usable without waiting
|
|
for either.
|
|
|
|
Recipe draft: `distribution/fdroiddata/org.skatespots.app.yml`
|
|
Store metadata: `fastlane/metadata/android/en-US/`
|
|
|
|
The Android project is generated by Capacitor and intentionally not committed,
|
|
so the prebuild steps must be verified in the F-Droid build environment before
|
|
submitting to F-Droid main.
|
|
|
|
IzzyOnDroid submission details, when you want to send it:
|
|
|
|
- App ID: `org.skatespots.app`
|
|
- Source: `https://git.skate-spots.org/skatespots/SkateSpots`
|
|
- APK: the signed asset on the latest Forgejo release
|
|
- License: `AGPL-3.0-only`
|
|
- Category: Sports
|
|
- Summary: `Local-first skate map, crews, events and marketplace`
|
|
- Keep the developer signature; do not ask users to replace an existing install
|
|
with an F-Droid-main-signed build.
|
|
|
|
No GitHub account is used anywhere in this path.
|
|
|
|
## 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 <version>`
|
|
(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/`.
|
|
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.
|