Public Distribution
This page explains how the private VILab source repo now publishes into one public distribution repository.
What the public repo is for
- GitHub Releases with installers, checksums, signatures, and
latest.json - GitHub Pages with the public website
- Public changelog pages generated from
.github/releases/*.md - Stable documentation under
/docs/
The source code stays in the private repo. Public users do not need access to the private development history.
Recommended public repo shape
- Repository name:
VILab-public - Default branch:
main - GitHub Pages source: deploy from the
mainbranch root - Custom domain:
app.<your-domain>
Required private-repo secrets
PUBLIC_RELEASE_REPO: the public repository slug, for exampleRo-In-AI/VILab-publicPUBLIC_RELEASE_PAT: a token with write access to the public repositoryPUBLIC_SITE_DOMAIN: the custom domain, for exampleapp.example.com
What the workflows now do
Sync Public Site- Builds the docs
- Generates the public homepage, download page, and changelog pages
- Syncs the generated static files to the public repo
Windows Release- Builds the Windows installers
- Generates
latest.json - Uploads release assets and notes to the public repo
macOS Release- Builds and verifies the macOS dmg
- Uploads release assets and notes to the public repo
First-time setup checklist
- Create the public repository.
- Add an initial commit on
main. - In the public repo settings, enable GitHub Pages from the
mainbranch root. - Add your custom domain in the Pages settings.
- Point your DNS to GitHub Pages for that custom domain.
- Add the three secrets in the private source repository.
- Trigger
Sync Public Siteonce to seed the public branch contents. - Trigger a tagged release to verify that release assets land in the public repo.
Local commands
- Build the public site artifact:
npm run public:site:build - Sync the built site into the public repo:
npm run public:repo:sync - Publish a Windows release:
npm run release:windows - Publish a macOS release:
npm run release:mac
Notes
- The desktop app should be built with
VITE_PUBLIC_SITE_URLset to your public site origin so the in-app docs link opens the public/docs/path. - The Tauri updater endpoint now targets the public release repository.
- The existing
.github/releases/*.mdfiles remain the single source of truth for release notes.