The Docusaurus site behind https://ister.app: a bilingual (EN/NL) documentation portal for the Ister media server.
The documentation content itself lives in the source repos and is not committed here. Each repo attaches a docs zip to its GitHub releases:
| Section | Route | Source repo | Release asset |
|---|---|---|---|
| Player guide | /player |
ister-app/player | player-docs-<version>.zip (doc/user/) |
| Server administration | /server |
ister-app/server | server-docs-<version>.zip (doc/admin/) |
| Helm installation | /server/installation-helm |
ister-app/chart | ister-chart-docs-<version>.zip (doc/admin/), merged into the server section |
| Development | /development |
player + server | doc/architecture/ from both zips |
scripts/fetch-releases.sh stages those trees under downloads/, and
scripts/sync-docs.sh places them into the (gitignored) content directories
docs-* and i18n/nl/docusaurus-plugin-content-docs-*, rewriting links that
don't survive the move.
Requires the sibling checkouts ../player, ../server and ../chart (or gh auth
for sync:release).
npm install
npm run sync:local # stage ../{player,server,chart}/doc and place it
npm start # English dev server
npm start -- --locale nl # Dutch dev serverA production build of both locales (also validates all links):
npm run build
npm run servenpm run sync:release uses the real release zips instead of the local checkouts.
.github/workflows/deploy.yml runs nightly at 05:00 UTC (after the source repos'
nightly releases), on push to main, and via Run workflow. It downloads the three
docs zips, syncs, builds and deploys to GitHub Pages on the custom domain
ister.app (static/CNAME).
One-time repo setup:
- Settings → Pages → Source: GitHub Actions; custom domain
ister.app; enforce HTTPS. - DNS for the apex domain: A records
185.199.108.153,185.199.109.153,185.199.110.153,185.199.111.153and AAAA2606:50c0:8000::153…2606:50c0:8003::153. Optionally awwwCNAME toister-app.github.io. - Only needed if the source repos go private: add a
DOCS_SYNC_TOKENsecret (fine-grained PAT with Contents:read on player/server/chart).
- Landing page:
src/pages/index.tsx,src/components/HomepageFeatures/. - Navbar/footer/config:
docusaurus.config.ts; sidebars are autogenerated (sidebars/*.ts) from the synced content. - Dutch UI strings:
i18n/nl/code.jsonandi18n/nl/docusaurus-theme-classic/. - Documentation content: edit in the source repo (
doc/in player/server/chart); it lands here on the next nightly build.