Feed
JSON packages
Shape: { packages: [{ kind, version, os, arch, url, sha256, installer }] }.
Kind is controller, service, or client. A suite installer is cloned as all three.
Updates and reports
Keep the GitHub repo private. Publish installers here. The Controller reads the JSON feed, and the apps can send crash reports to the error endpoint.
Controller
Default feed is /api/updates/latest on this host.
Publish a suite build in Admin → Releases before clients can update.
In the console you can also paste the feed URL under the package feed setting.
Feed
Shape: { packages: [{ kind, version, os, arch, url, sha256, installer }] }.
Kind is controller, service, or client. A suite installer is cloned as all three.
Errors
Apps send app, version, message, and optional stack.
Operators read them under Admin → Errors. Activation still does not phone home.
Environment override for desktop apps: NEXUS_PORTAL_URL pointing at this site.