Skip to content

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.

  • Repository name: VILab-public
  • Default branch: main
  • GitHub Pages source: deploy from the main branch root
  • Custom domain: app.<your-domain>

Required private-repo secrets

  • PUBLIC_RELEASE_REPO: the public repository slug, for example Ro-In-AI/VILab-public
  • PUBLIC_RELEASE_PAT: a token with write access to the public repository
  • PUBLIC_SITE_DOMAIN: the custom domain, for example app.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

  1. Create the public repository.
  2. Add an initial commit on main.
  3. In the public repo settings, enable GitHub Pages from the main branch root.
  4. Add your custom domain in the Pages settings.
  5. Point your DNS to GitHub Pages for that custom domain.
  6. Add the three secrets in the private source repository.
  7. Trigger Sync Public Site once to seed the public branch contents.
  8. 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_URL set 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/*.md files remain the single source of truth for release notes.

Public release docs and self-hosted deployment guidance.