Portable build
設定
在 Linux 或 Windows 上,把 HolyArrs 當成一般程式執行,不用 Docker。Docker 仍然是主要的執行方式。
開始之前
連結到「開始之前」- 建置用的電腦上要有 Python 3、Git 和 Docker。
- 正常專案建置留下的 Go module cache,以及從
app/frontend/package-lock.json安裝好的前端相依套件。 - 已建置好的 Web App 已提交。建置只會使用已提交的原始碼;還沒提交的修改不會包含在內。
建置與執行
連結到「建置與執行」-
在 checkout 的資料夾中,建立壓縮檔:
Terminal window python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod請使用 checkout 之外的新輸出資料夾。你應該會看到每個目標一個壓縮檔,以及一個
SHA256SUMS檔案。 -
用
SHA256SUMS檢查壓縮檔。 -
把它解壓縮到新的資料夾。程式和設定要放在不同的資料夾。
-
用你自己的設定路徑啟動:
Terminal window ./holyarrs -config /srv/holyarrs/config -addr :6262在 Windows PowerShell 上:
Terminal window .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262' -
開啟
http://your-server:6262。你應該會看到首次執行的精靈。馬上建立擁有者帳號;第一個進來的人會成為擁有者。
選項
連結到「選項」由哪個使用者執行
連結到「由哪個使用者執行」用它自己專屬的帳號執行 HolyArrs,並且只給這個帳號設定資料夾和你媒體的寫入權限。
- 在 container 之外以 root 執行、又沒有設定
PUID和PGID時,它會停止,並顯示「started as root outside a container」。 - 設定了
PUID和PGID時,它會把設定資料夾交給那個使用者,並切換成該使用者。 - 在 Windows 上,用那個帳號的 NTFS 權限來保護設定資料夾。
重新啟動與限制
連結到「重新啟動與限制」壓縮檔不會安裝服務。請在你自己的服務管理工具(systemd、NSSM、工作排程器)中,設定自動重新啟動和嚴格的記憶體上限。在 App 內重新啟動和還原 backup 都會結束程式,並期待它被再次啟動。
更新與退回舊版
連結到「更新與退回舊版」- 在停止 App 之前,先檢查新的壓縮檔。
- 停止 HolyArrs,並複製整個設定資料夾,包括主金鑰。或是在 App 內建立 backup,並另外保管它的金鑰。
- 把新程式解壓縮到不同的資料夾。保留舊程式和舊設定的副本。
- 用你的設定啟動新程式。你應該可以登入,而且
/health應該顯示 running。
請見 Backups。
如果沒有成功
連結到「如果沒有成功」| 症狀 | 原因 | 解決方式 |
|---|---|---|
| 「started as root outside a container」 | 以 root 啟動 | 用它自己的使用者執行,或設定 PUID 和 PGID。 |
| 還原之後 App 結束了 | 還原會先暫存資料,然後以代碼 75 結束 | 再啟動一次來套用。把你的服務管理工具設為會重新啟動它。 |
| 在 Linux 上 HTTPS 呼叫失敗 | 沒有系統 CA 憑證 | 安裝它們。 |
| 建置時說輸出已存在 | 已存在的輸出資料夾會被拒絕 | 選一個新的資料夾。 |
給進階使用者
連結到「給進階使用者」建置選項
| 選項 | 作用 | 預設 |
|---|---|---|
--targets |
用逗號分隔的要建置的子集 | linux-amd64, |
--low-resource |
每個建置用的 container 得到 1 顆 CPU、2 GiB 和 256 個處理程序;Go 一次只建置一個套件。打包仍在主機上執行,不受這些限制。 | 關閉 |
建置在專案固定版本的 Go builder image 中執行,並關閉網路,所以不會下載任何東西。module cache 以唯讀方式掛載。只要有任何一個目標失敗,就不會留下輸出資料夾。commit 會加到版本號碼上,並編進程式裡;App 和它的 backup 都會回報它。
壓縮檔裡有什麼
程式、授權條款、第三方聲明、指南、原始碼清單和套件識別資訊。另有一個獨立的原始碼壓縮檔,包含專案原始碼和 Go 相依套件;請把它和執行檔放在一起。
SHA256SUMS 可以證明檔案相符。它不是簽章。相同的 commit、版本和輸入會得到相同的壓縮檔,所以你可以重新建置來驗證。
執行時的注意事項
| 主題 | 詳細資訊 |
|---|---|
| 設定路徑 | 預設為 /config。一律要傳入 -config,並放在本機磁碟上。 |
| 記憶體目標 | 沒有 GOMEMLIMIT 時為 384 MiB。設為你提供的記憶體的約 80%。這是目標,不是硬性上限。 |
| 低記憶體模式 | 在 Linux 上,約 2.5 GiB 以下時自動開啟;目標降到記憶體的四分之一,介於 192 到 384 MiB 之間。由 HOLYARRS_LOW_MEMORY=1 或 0 決定。 |
| Node | 執行時不需要。 |
| Hardlink | 讓下載和媒體庫資料夾保持在同一個檔案系統上。 |
相關頁面
連結到「相關頁面」HolyArrs 是免費的。如果它幫你省下了時間,歡迎在 GitHub 上給顆星、贊助專案,或請我喝杯咖啡。