開發者文件
想做自己的 app?把這段話交給 AI。
貼給能執行終端機指令的 AI 開發助手,例如 Claude Code、Codex 或 Cursor。它會建立專案、打包成套件,並告訴你怎麼安裝。
幫我做-NAS-app.txt
請用 Syno Package Land CLI 幫我把一個 app 做成 Synology NAS 的 DSM 套件(.spk)。 用 `npx @synopackageland/cli@latest <指令>` 執行 CLI。需要 Node.js 22 以上;模板另外需要什麼(例如 Go),以 CLI 指南為準。先檢查我的電腦裝了什麼,缺什麼就告訴我。 1. 動手前先讀 CLI 內建的指南:`npx @synopackageland/cli@latest skill list`,再 `npx @synopackageland/cli@latest skill show orchestrator`,照它的步驟走,每一步讀它指向的那一頁。指令和參數以指南和 `--help` 為準,不要憑記憶,也不要自己發明。 2. 建立任何東西之前,先問我這個 app 要做什麼。 3. 照指南開發,再用 CLI 驗證專案、打包並檢查 .spk。所有錯誤都修好才算完成。 4. 告訴我怎麼安裝:套件中心 →「手動安裝」選這個 .spk;SPK 未簽章,安裝前 DSM 可能會顯示警告。沒有我的同意,不要在我的 NAS 上安裝任何東西,也不要發布任何東西。 文件:https://synopkgland.com/zh-tw/docs/
你的電腦需要 Node.js 22 以上(預設模板另需 Go 1.25 以上),AI 會先幫你檢查。
synopkgland CLI 會把專案資料夾轉成未簽章的 SPK,讓你安裝到 Synology NAS。你可以建置含 Go 後端與 DSM 視窗介面的原生 App、封裝現成的靜態 Linux CGI、包裝 Docker Compose App,或封裝既有的原生產品。
先從快速開始入手,它帶你從空資料夾走到已安裝的套件。閱讀能力,了解你的程式碼能在 NAS 上做什麼,以及哪些動作需要管理員核准。
| 你想要 | 模板 | 建立指令 | 你需要 |
|---|---|---|---|
| 建立含 Go 後端與 Vue 介面的新 App,在 DSM 視窗中執行 | native-go 搭配 Vue(預設) | synopkgland init -t native-go | Go、Node.js |
| 建立相同的 App,但介面自行手寫 | native-go 搭配 plain 介面 | synopkgland init -t native-go --ui plain | Go。plain 介面不能使用登入。 |
| 封裝自行處理驗證的靜態 Linux CGI | binary | synopkgland init -t binary | Go,用來建置範例 CGI |
| 封裝上游容器 | compose | synopkgland init -t compose | compose.yaml,或產生的範例 |
| 封裝已有自己 payload 與 DSM 視窗的產品 | 既有原生產品 | 沒有模板。撰寫含 backend: {kind: native} 的 dsm-package.yaml。 | 你自己的建置腳本 |
建立 native-go 專案時,可加上 --with files,jobs,login(以及 delegate、root-ops)。之後可用 synopkgland add 補上。各項能力的作用請見能力。
| 我想要… | 閱讀 |
|---|---|
| 從零開始到安裝好套件 | 快速開始 |
| 決定我的程式碼能在 NAS 上做什麼 | 能力 |
| 撰寫原生 App 的後端與處理常式 | 原生 App |
| 建置視窗介面 | 介面 |
| 從登入入口網站的位址開啟我的 App | 入口網站 |
| 封裝已存在的產品 | 既有原生產品 |
| 交付 shell、Node.js、Python、Bun 或 Deno 程式 | 指令碼與直譯式語言 |
| 封裝 Docker Compose App | 容器 App |
| 瀏覽並傳輸已登入使用者的 NAS 檔案 | 檔案 |
| 在 DSM 桌面之外,用 Synology 帳號讓使用者登入 | 登入 |
| 給我的 App 一個共用資料夾 | 共用資料夾 |
| 在瀏覽器關閉後繼續處理資料 | 背景工作 |
| 使用者離線時把檔案寫入他的資料夾 | Delegate |
| 替管理員以 root 執行固定操作 | Root 操作 |
| 建置、部署、編訂版本並散布套件 | 交付 |
| 了解資料存放位置、備份與移除 App | 資料與移除 |
| 查詢指令、欄位、API 方法、錯誤碼或平台限制 | CLI、Manifest、Compose manifest、API、錯誤碼、平台 |
| 快速得到答案 | 常見問題 |
原始碼 repository
Section titled “原始碼 repository”開發工具分成四個 repository。CLI 為 0.10.12,SDK 為 0.10.12,模板為 0.10.13;UI 函式庫有自己的版本 0.9.10。CLI 套件另外匯出 @synopackageland/cli/e2e:在真實 NAS 上跑套件端對端測試用的 DSM 登入、App 視窗與 SSH tunnel 輔助函式,並在執行輸出中遮蔽 DSM 的 session cookie 與 token。
| Repository | 內容 | 安裝方式 |
|---|---|---|
| syno-pkg-land-cli | synopkgland CLI:init、check、build、inspect、deploy、status | npm @synopackageland/cli |
| syno-pkg-land-templates | init 與 add 複製到專案中、屬於 App 自己的檔案 | npm @synopackageland/templates,CLI 的相依套件 |
| syno-pkg-land-sdk | Executor 協定規格、executor、Go client 套件,以及 TypeScript 與 Vue client | Go module github.com/synopackageland/syno-pkg-land-sdk、npm @synopackageland/sdk |
| syno-pkg-land-ui | DSM 樣式的 Vue 元件 | npm @synopackageland/ui |
產生的 native-go 專案只在 backend/go.mod 記錄一次 SDK 版本。CLI 會從該版本建置 executor。