Skip to content

Serve the update site through a global CDN so updates work from mainland China #4558

Description

@guiyanakuang

Problem

The Conveyor update site (Sparkle appcast, metadata.properties, packages, apt repo) is served from GitHub Releases (releases/latest/download/...). From mainland China, GitHub is frequently unreachable without a proxy, so:

  • macOS users cannot fetch the Sparkle appcast — in-app updates never happen (reported in In-client software update is not available #4551);
  • the Windows installer (Conveyor) channel cannot fetch update metadata;
  • the apt repository is unreachable for Linux users;
  • new-version discovery only works thanks to the crosspaste.com/api/desktop.json fallback, but the update itself still fails.

Conveyor's app.site.base-url is a single address with no client-side mirror/failover support, so the fix must live server-side: serve the update site from a domain we control, distributed globally.

Verified facts (2026-06-11)

  • oss.crosspaste.com is already behind Alibaba Cloud CDN (CNAME *.w.cdngslb.com) and is reachable from overseas (verified from a US egress);
  • release CI already uploads all artifacts to OSS (oss://crosspaste-desktop/<version>.<revision>/);
  • appcast enclosure URLs are absolute (baked from base-url), so metadata and packages must live under the same base URL;
  • Conveyor supports S3-compatible upload targets and app.site.move-from for migrating existing installs.

Plan

  • Phase 1 — mirror the update site to OSS (zero client impact): CI uploads the complete Conveyor site to a stable site/ prefix, packages first and metadata last; confirm CDN acceleration region covers overseas; set cache policy (short TTL for metadata, immutable for packages)
  • Phase 2 — switch app.site.base-url to https://oss.crosspaste.com/site with move-from pointing at the old GitHub URL; ship with a regular release
  • Phase 3 — observe: CDN hit rate/cost, overseas installs migrating via move-from, mainland macOS users updating via Sparkle end to end
  • Phase 4 — wrap up: website guidance for existing mainland macOS users (one manual download), GitHub Releases demoted to archive/download-page role

Notes

  • Existing mainland macOS installs cannot migrate automatically (their Sparkle feed points at GitHub); they need one manual download from the website.
  • The Microsoft Store and Windows portable-zip channels are unaffected (the zip updater already downloads from oss.crosspaste.com as its second source).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions