Desktop App Status
| Component | apps/desktop — Electron shell |
Packaging targets
| Platform | Format | Script | CI job |
| macOS | .dmg (+ .zip) | pnpm --filter @anoobot/desktop package:mac | desktop-package.yml → macOS |
| Windows | Portable .exe (+ NSIS installer) | pnpm --filter @anoobot/desktop package:win | desktop-package.yml → Windows |
| Ubuntu / Debian | .deb (+ AppImage) | pnpm --filter @anoobot/desktop package:linux | desktop-package.yml → Linux |
Customer download (cloud)
On tag desktop-v* (e.g. desktop-v0.0.1):
- CI builds all three platforms
- Manifest points to Cloudflare R2 at
https://download.anoobot.com/desktop/
upload-r2 syncs installers + desktop/latest/desktop-manifest.json
- GitHub Release created with same artifacts (fallback)
- Optional AWS S3 if
AWS_DESKTOP_BUCKET is set (legacy)
GitHub secrets (R2 — primary)
| Name | Purpose |
R2_ACCOUNT_ID | Cloudflare account ID |
R2_ACCESS_KEY_ID | R2 API token access key |
R2_SECRET_ACCESS_KEY | R2 API token secret |
R2_DESKTOP_BUCKET | e.g. anoobot-desktop |
GitHub variable
| Name | Default |
DESKTOP_CDN_BASE | https://download.anoobot.com/desktop |
Setup guide: infrastructure/cloudflare/r2-desktop-downloads/README.md
Optional AWS S3 (legacy)
| Secret | Purpose |
AWS_DESKTOP_BUCKET | S3 bucket |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY | Upload creds |
Website
- Manifest URL:
https://download.anoobot.com/desktop/latest/desktop-manifest.json
desktop-download.js — fetch manifest → R2 CDN fallback → GitHub Releases fallback
CI
Desktop packaging workflows exist under .github/workflows/ but require an approved GitHub remote. Do not push tags or enable CI until repository hosting is re-approved (see docs/developer-guide.md#repository-hosting).
Local
bash tools/scripts/upload-desktop-release.sh prepare artifacts/desktop
R2_ACCOUNT_ID=... R2_DESKTOP_BUCKET=... bash tools/scripts/upload-desktop-release.sh upload-r2 artifacts/desktop
Notes
- Desktop client loads
ANOOBOT_FRONTEND_URL — not the full mail server stack.
- R2: zero egress fees on downloads vs AWS S3.
- Builds unsigned until Apple/Windows code signing is configured.