Skip to content
Syno Package Land
Language: English

Platforms and limits

Choose a template and features that match your NAS architecture.

Project typeArchitecturesLimits
native-go with plain or Vue UIx86_64, aarch64, armv7Default manifest: x86_64, aarch64; armv7 executor, jobs and daemon are built but not yet verified on a NAS.
binaryx86_64, aarch64, armv7Static CGI executable for each declared family.
composex86_64, aarch64Requires Container Manager; a project without a gateway produces an architecture-independent SPK.
Native layoutx86_64, aarch64, armv8, armv7Uses your payload layout and build hooks; check, build, and inspect only.
x86_64, aarch64 NAS platformsEvery DSM platform of the familyINFO arch lists them all, the same set the package source matches; it includes broadwellntb, coffeelake, skylaked and rtd1619.
armv7 NAS platformsalpine, alpine4k, armada38x, monacoDSM 7.2 or later platforms; other armv7 models are not included in the generated SPK.
Native capability or featurex86_64aarch64armv7Backend requirement
files: sessionYesYesYesGo
identity: standalone (login)YesYesYesGo with Vue UI build
jobsYesYesYesGo
delegateYesYesYesGo; administrator approval
rootOpsYesYesYesRoot scripts and administrator approval; binary manifest permits the declaration
daemonYesYesYesGo or binary
install.sharedFolderYesYesYes with GoGo or binary; CLI init option is native-go only
entryYesYesYesGo with entry gate
portalYesYesYesGo, Rust, Python, Node or binary with rootOps or delegate; portal DSM floor applies

Template defaults and feature floors apply together.

Template or featureMinimum DSMValidation
native-go, binary template default7.1-42661Base manifest validates version/build syntax; this is the template default.
Listed armv7 platformsDSM 7.2Generated platform list excludes models confined to DSM 7.0/7.1.
Compose / Container Manager7.2.1-69057Enforced by init and build; check does not enforce the container floor.
Native Application Portal7.1-42661Declaration and build.
Root operations7.1-42661Enforced by manifest validation and capability addition.
--min-dsm shorthandFull version/build
7.07.0-41890
7.17.1-42661
7.27.2-64570
7.2.17.2.1-69057
Full DSM 7 version/build7.<minor>[.<patch>]-<build>; feature floors still apply

Install the tools needed by your project on the development machine.

Tool or buildRequirementNotes
Node.js for the CLIMinimum not declared by the CLI packageRepository CI uses Node.js 22.19.0; a CLI minimum cannot be inferred from that alone.
Node.js for this website22.19.0 or laterWebsite package requirement.
Native-go backend and jobsGo 1.25.0 module; selected toolchain 1.26.9Toolchain selection may download Go 1.26.9; make it available for offline builds.
Compose DSM authentication gatewayGo 1.21 or later; builds with exactly Go 1.26.9Required for DSM-authenticated web Apps; headless/public Compose packages do not build a gateway.
Daemon buildGo 1.21 or later; builds with exactly Go 1.26.9In addition to tools needed for your payload.
Root operations / delegate buildGo 1.21 or later; builds with exactly Go 1.26.9Native-go projects also require their backend toolchain.

The CLI compiles the executor, lifecycle helper, daemon controller and gateway with exactly Go 1.26.9 (GOTOOLCHAIN=go1.26.9, ignoring your GOTOOLCHAIN, GOFLAGS and GOAMD64/GOARM64), so every builder produces the same bytes and the same executor digest. Go downloads that release when your go is a different version. Offline, or when the download is blocked, the build fails and names Go 1.26.9; install go1.26.9 on PATH or allow GOPROXY to serve golang.org/toolchain. The build also refuses a binary whose build info names another Go release. The executor and lifecycle helper come from the SDK version that backend/go.mod requires (Go module github.com/synopackageland/syno-pkg-land-sdk/executor). build checks their SHA-256 against the digests the CLI ships for that version and stops with EXECUTOR_DIGEST_MISMATCH when they differ.

Build your own Go code for armv7, such as a native-go backend, a daemon payload or a binary CGI, with Go 1.26.9 too. On a DS416 (alpine4k, DSM 7.1.1, kernel 3.10.108), an armv7 program built with Go 1.26.0 crashed at start with futexwakeup ... returned -22 and SIGSEGV; the same program built with Go 1.26.9 ran. Other Go 1.26 releases were not tested. The CLI does not check the Go release of your own binaries. | Binary template creation | Go command | init -t binary builds the sample CGI binaries; packaging your own prebuilts needs no backend compilation. | | Vue frontend | Node.js and npm; project dependencies installed | Run npm install in frontend/ before build; build does not install dependencies. | | Local Compose dev / test | Docker with docker compose | Needed to start and check local containers. | | Native layout | Tools required by your build hooks | Supply them for each declared architecture. |

Catalog filenames use locale tags; DSM uses the language codes below.

LocaleLanguageDSM codeCatalog file
enEnglishenuen.json (required fallback)
zh-TWTraditional Chinesechtzh-TW.json
zh-CNSimplified Chinesechszh-CN.json
jaJapanesejpnja.json
koKoreankrnko.json
deGermangerde.json
frFrenchfrefr.json
esSpanishspnes.json
itItalianitait.json
Other DSM languagesEnglish fallback—en.json
i18n ruleLimit
CatalogsEvery shipped locale has exactly the English keys and placeholders.
Package Center translationsi18n.info accepts supported locales except en; English text comes from top-level fields.
GlossaryEach listed message uses its locale’s term, ignoring case.

Keep root scripts short and within the output limit.

FeatureLimit
Root operation scriptAt most 16 KiB; fixed root/<name>.sh, with no caller-supplied command arguments
Root operation executionAt most 20 seconds
Root operation outputAt most 1 MiB combined stdout and stderr
Binary CGIAt most 256 MiB per executable
Daemon payloadAt most 512 MiB per architecture; no symlinks or setuid/setgid files
Delegate destination keys1–64 unique keys, each at most 64 characters
ReferenceUse
CLIArchitecture flags and build commands
Native manifestCapability combinations and validation rules
Compose manifestContainer configuration
ErrorsValidation failures and fixes