非官方
本頁內容
  1. 01網頁目標
  2. 02網站專案
  3. 03編輯、推送與發佈
  4. 04發佈時的處理方式

從 Git 建立網站:每次推送都建置,並發佈到 NAS 的網頁伺服器

Bucket & Code Server IDE 將靜態網站保存在您 NAS 上的 Git 儲存庫。頁面放在 src/,Makefile 會將它們複製到 public/;每次推送都會在 NAS 自己的執行器上檢查連結。按一個按鈕即可將 public/ 複製到網頁伺服器,例如同一台 NAS 的 QTS 網頁伺服器,再讀回已發佈的頁面確認結果。

  1. 目標資料夾及其位址
  2. 專案新專案、靜態網站
  3. 推送每次推送都執行 make test
  4. 發佈將 public/ 送往目標

圖片取自 Bucket & Code Server IDE 面板,各欄位依本指南填寫。NAS 位址為 192.168.1.20,帳號名稱為 ola。

01網頁目標

網頁目標是網站的發佈位置:可以是此 NAS 上由網頁伺服器提供的資料夾,也可以是透過 SFTP、FTP、WebDAV 或 S3 連接自己伺服器的 rclone 遠端位置。QTS 網頁伺服器 (Control Panel → Applications → Web Server) 會在 http://<NAS address>/ 提供 Web 共用資料夾,因此其中的資料夾是最簡單的目標。

  1. 以管理員身分開啟 Administration 下的 發佈 頁面,在 網頁目標 卡片中按 新增目標。
  2. 選擇 此 NAS 的資料夾,填寫 名稱,並在 資料夾 輸入共用資料夾內的獨立資料夾,例如 /share/Web/mysite。它必須是空的或新建的,不可指定整個共用資料夾,且應位於資料目錄之外。
  3. 在 公開位址 填入提供該資料夾的位址,此處為 http://192.168.1.20/mysite/。位址須以 http:// 或 https:// 開頭,不得包含使用者名稱、密碼、查詢參數或片段。按 新增目標。 新增網頁目標的表單:已選此 NAS 的資料夾,名稱 My website,資料夾 /share/Web/mysite,公開位址 http://192.168.1.20/mysite/,以及新增目標按鈕
  4. 在清單中選取目標並按 測試。程式會將小檔案複製到資料夾,從公開位址讀回,再刪除該檔案。 網頁目標卡片:My website、/share/Web/mysite、http://192.168.1.20/mysite/;最近一次測試顯示檔案已複製、從公開位址讀回並刪除

rclone 目標需要指定備份設定檔 rclone.conf 中的遠端名稱、該遠端上的路徑,以及提供該路徑的公開位址。

02網站專案

從 Git 頁面或命令面板開啟 新專案。此步驟需要 developer 角色;下方的發佈步驟則需要管理員權限。

  1. 範本:在 網站 下選擇 靜態網站。 已選靜態網站卡片:頁面與資源位於 src/,Makefile 將它們複製到 public/,make test 檢查連結
  2. 名稱與可見性:名稱 (例如 mysite) 也是儲存庫與資料夾 projects/mysite 的名稱。除非所有帳號都可以讀取,否則保持 私人。 名稱 mysite、擁有者 ola,以及私人和公開兩種可見性選項
  3. 建置:保持 建立後立即建置 為開啟狀態。
  4. 發佈:開啟 發佈到我的網頁伺服器 並選取目標。此處的 新增目標 與發佈頁面上的操作相同。 已開啟發佈到我的網頁伺服器:將 public/ 複製到網頁目標,從公開位址讀回 index.html,並選取 My website
  5. 前往 檢閱,再按 建立專案。頁面依序顯示儲存庫與第一次提交、第一次建置,以及發佈的進度。 建立專案的畫面:Forgejo 儲存庫與第一次提交、第一次建置及發佈到網頁伺服器皆已完成

網站會在目標的公開位址提供服務:

瀏覽器中的範本頁面:mysite、指出 src/index.html 的說明,以及網站介紹連結

03編輯、推送與發佈

  • 在編輯器中修改 src/ 內的頁面 (專案位於 projects/ 資料夾),提交變更並推送。make 會將 src/ 複製到 public/;make test 檢查頁面中的每個本機 href= 和 src= 是否指向 public/ 內的檔案;make clean 則移除 public/。
  • CI 模組開啟時,每次推送都會在 NAS 執行器上啟動專案工作流程,於 Ubuntu 24.04 建置環境執行 make test。連結失效會使執行失敗。 Forgejo 的 Actions 分頁:第一次提交的 build.yml 第 1 次執行成功
  • 您可以在專案頁面 (專案 或編輯器側邊欄) 手動建置與發佈:建置 執行 make,重新建置 依序執行 make clean 和 make,管理員的 發佈到 My website 則將 public/ 傳送到目標。單靠推送不會自動發佈。 專案步驟:以預設目標 all 完成建置、重新建置與發佈到 My website 按鈕,以及已發佈狀態

04發佈時的處理方式

  • 複製完成後,目標資料夾只保留網站檔案:網站不再包含的檔案也會從目標刪除。bvsd 首次寫入資料夾時會放入 .bvs-web-target 標記 (測試也會放入)。如果資料夾內有其他檔案卻沒有此標記,發佈會被拒絕,因此不會清空不屬於網站的資料夾。
  • 複製後,程式會從公開位址讀回 index.html,逐位元組比較。如果該位址未提供剛複製的內容,工作會以 web_check: 錯誤結束並顯示兩個值:網頁伺服器提供的不是該資料夾,或位址設定有誤。
  • 建立 QPKG 的專案也會以相同方式發佈最新的 .qpkg 與其 .sha256,並驗證 sha256。