Skip to content

feat(synology): add Synology DSM 7 SPK package builder and deployment support - #41

Open
erseco wants to merge 18 commits into
mainfrom
feature/add-synology-package
Open

feat(synology): add Synology DSM 7 SPK package builder and deployment support#41
erseco wants to merge 18 commits into
mainfrom
feature/add-synology-package

Conversation

@erseco

@erseco erseco commented Aug 23, 2026

Copy link
Copy Markdown
Member

Summary

This PR adds official packaging support for Synology NAS DiskStation Manager (DSM 7.0 / 7.1 / 7.2+) via an official lightweight SPK package (packaging/synology/).

The SPK acts as a native wrapper that integrates eXeLearning into Synology DSM, orchestrating the official multi-architecture Docker image via Synology's Container Manager (docker-project resource).

Key Features & Changes

  1. Lightweight SPK Builder (packaging/synology/build-spk.sh):

    • Builds a clean POSIX ustar .spk package archive.
    • Pinned versioning linking the package to the matching official Docker image tag.
    • Unit tests covering the build script and structure in packaging/synology/build-spk.spec.ts.
  2. DSM Desktop & Package Center Integration:

    • Adds ui/config and INFO metadata (dsmuidir="ui", dsmappname="SYNO.SDS.eXeLearning", adminport="8085").
    • Enables native DSM desktop launcher and the Package Center "Open" button to access the web UI directly.
    • Package icons (64x64 and 256x256) for DSM menu.
  3. Storage & Port Configuration:

    • Uses standard Docker named volume (exelearning_data:/mnt/data) for automatic directory and permission provisioning, ensuring full data persistence across container updates and volume neutrality (volume1, volume2, etc.).
    • Default external port mapped to 8085:8080 to avoid conflicts on common Synology NAS services.
  4. Automation & Documentation:

    • Added make package-synology VERSION=x.y.z target in Makefile.
    • Added GitHub Actions workflow in .github/workflows/synology-release.yml.
    • Comprehensive deployment and SSO federation guide in doc/deploy/synology.md and integrated into mkdocs.yml.

Verification

  • make fix passed cleanly.
  • bun test ./packaging/synology/build-spk.spec.ts passed (100% assertions green).
  • Tested and verified on physical Synology NAS (DSM 7.2.2 on DS918+).

@codecov

codecov Bot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@codecov

codecov Bot commented Aug 23, 2026

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant