This repository publishes the official iPhone and iPad app source at sidestore.opentubex.org. It contains the stable beta app and a separately installable nightly app, each with its own settings and library.
Set up SideStore, then scan the QR code or open Browse → Sources → + in SideStore and add this URL:
https://sidestore.opentubex.org/source.json
The main source includes both apps. To see only one channel, use stable.json or nightly.json instead.
The app requires iOS or iPadOS 17.4 or newer. SideStore signs the unsigned IPA with your Apple Account. See the iOS installation guide for device setup and signing requirements.
The publish workflow downloads the unsigned iOS IPAs for the latest stable and
nightly releases in OpenTubeX/OpenTubeX. It reads their app identity, version,
build number, minimum OS version, and privacy permission descriptions, then
generates the combined source and both channel-only sources. Each source links
directly to the original IPA in the application repository's GitHub release.
Stable uses org.opentubex.app; nightly uses org.opentubex.app.nightly so both
can be installed on the same device. If the latest nightly still uses the
stable app identity, publishing reports that it is waiting for a compatible
nightly and skips deployment, keeping the existing source intact. Missing
channels or other unexpected identities fail validation before deployment.
The workflow does not modify IPAs or create GitHub releases.
The sources and landing page are deployed to GitHub Pages. Publishing runs on
pushes to main, manual runs, and opentubex-release or opentubex-nightly
repository dispatch events.
Stable and nightly release workflows in OpenTubeX/OpenTubeX notify this
repository after release metadata and the unsigned IPA's public download become
available. The readiness checks retry while metadata or downloads are missing.
Nightly notifications run independently for each package repository, so an
unavailable package for another platform does not delay SideStore.
The catalog icons live in static/stable.png and static/nightly.png. Keep
both PNGs in sync with the app's branding, including the nightly wrench badge.
Configure GitHub Pages to use GitHub Actions, set sidestore.opentubex.org as
the custom domain, and add a DNS CNAME from that name to opentubex.github.io.
The workflow uses the automatic GITHUB_TOKEN to read releases and deploy
Pages; no Apple signing credentials or additional Actions secrets are required.
The PUSH_TOKEN used by the OpenTubeX application repository must have write
access to this repository so it can send release dispatches.
For local checks, install Python 3.11 or newer and GitHub CLI, authenticate
with gh auth login, then run:
python -m unittest discover -s tests -v
python scripts/publish.pyDownloaded IPAs go into incoming/; the generated site goes into site/.
Both directories are ignored by Git.