Files
2026-10-12 15:24:46 +01:00

1.9 KiB

Phase 11 — SonarDesk distribution

Install patch at ABSDEV root; all paths are relative to the project root. No root-level module duplicates are included.

php artisan migrate
composer dump-autoload
php artisan optimize:clear
php artisan route:list --path=sonardesk
php artisan route:list --path=administration/sonardesk/distribution

Admin: /administration/sonardesk/distribution; public: /sonardesk/downloads; feed: /sonardesk/updates/appcast.xml.

Release and download binaries are stored on the private local disk in sonardesk-distribution/. Ensure the storage directory is persistent across deployments, backed up, and writable by PHP. Do not put it in public webroot. Public download responses use the Laravel controller.

The database schema preserves the existing legacy sonardesk_releases and download_products column names. If those tables already exist, the migration does not recreate them. Legacy files and records are not automatically imported; migrate their storage paths into sonardesk-distribution/ before enabling public downloads.

Sparkle appcast includes only stable published releases with a non-empty Sparkle signature. Generate signatures with the official Sparkle signing tool; SHA-256 is not a substitute. Configure the macOS client to point to this feed only after validating compatibility. Existing live appcast and checkout remain unchanged.

The patch includes release creation, publication toggle, separate product upload and read-only public details. Editing existing releases, deletion, detailed per-platform requirements, and automatic client-side updates are not implemented here. Uploaded files are limited to 500 MiB by Laravel validation and additionally by PHP/nginx upload limits. Review your server upload limits.

Do not apply to production before testing staging, storage persistence, URLs, signatures and permissions. No database data is deleted on rollback.