專案
專案模組用於管理後端應用程式,支援 Go、Java、Node.js、PHP、Python 等多種語言。 專案會作為系統服務運行,支援自動重啟、開機自啟等功能。
專案類型
| 類型 | 說明 | 適用場景 |
|---|---|---|
| Go | Go 語言專案 | Gin、Echo、Fiber 等框架 |
| Java | Java 專案 | Spring Boot、Tomcat 等 |
| Node.js | Node.js 專案 | Express、Koa、NestJS 等 |
| PHP | PHP 專案 | Laravel Octane、Swoole 等 |
| Python | Python 專案 | Django、Flask、FastAPI 等 |
| 通用 | 其他類型專案 | 任意可執行程式 |

專案 vs 網站
| 特性 | 專案 | 網站 |
|---|---|---|
| 運行方式 | 獨立進程 | 依賴 Web 伺服器 |
| 進程管理 | 專案自動重啟 | 由 Web 伺服器管理 |
| 適用場景 | 後端服務、API | 傳統 Web 應用 |
| 對外存取 | 反向代理配置 | 直接存取 |
建立專案
- 進入 專案 頁面
- 點擊 建立專案

配置項
- 專案名:專案標識,用作服務名稱
- 專案目錄:專案檔案所在目錄
- 運行使用者:運行專案的系統使用者,預設 www
- 啟動命令:啟動專案的命令
- 建立專案時開啟「反向代理」,會自動建立一個反向代理網站。
專案管理
專案列表顯示以下資訊:
- 名稱:專案名稱
- 描述:專案描述
- 類型:專案類型(Go/Java/Node.js 等)
- 狀態:運行狀態
- 自啟動:是否開機自啟
- 目錄:專案目錄
- 操作:啟動、停止、重啟、日誌等
專案操作
- 啟動:啟動專案
- 停止:停止專案
- 重啟:重啟專案
- 檢視專案日誌
- 編輯:修改專案配置
- 刪除:刪除專案
編輯專案
點擊專案列表中的 編輯 按鈕,可以修改專案配置。 編輯對話框包含多個標籤頁:
基本設置
配置專案的基本資訊:

- 專案名:專案標識,用作服務名稱
- 描述:專案描述資訊
- 專案目錄:專案檔案所在目錄
- 工作目錄:程式運行時的工作目錄,預設為專案目錄
- 運行使用者:運行專案的系統使用者
運行設置
配置專案的運行參數:

- 啟動命令:啟動專案的命令
- 預啟動命令
- 啟動後命令:啟動後運行的命令(可選)
- 停止命令:自定義停止命令(可選)
- 重載命令:自定義重載命令(可選)
- 重啟策略:失敗時重啟 / 總是重啟 / 不重啟
- 重啟間隔:兩次重啟之間的等待時間
- 最大重啟次數:防止無限重啟
- 在專案啟動前執行,如安裝依賴:
- lsof -i:3000 # 檢視佔用連接埠的進程
- 標準輸出:標準輸出的處理方式
- 標準錯誤:標準錯誤的處理方式
- 環境變數:設置專案運行時的環境變數
依賴
配置服務依賴關係以控制啟動順序:

- Requires:強依賴,如果這些服務不可用,專案將會失敗
- Wants:弱依賴,如果這些服務失敗,專案仍然會啟動
- After:在指定服務之後啟動此專案
- Before:在指定服務之前啟動此專案
常見服務:network.target、mysqld.service、postgresql.service、redis.service
資源限制
設置資源限制以防止服務消耗過多系統資源:

- 記憶體限制:限制專案使用的最大記憶體,0 表示無限制
- CPU 配額:限制 CPU 使用率,100% = 1 個 CPU 核心
安全設置
增強服務隔離的安全選項:

- 沒有新權限:防止進程獲取新的權限
- 保護 /tmp:為服務建立私有的 /tmp 目錄
- 保護 /home:限制對 /home 目錄的存取
- 保護系統:設置系統目錄的唯讀保護級別
true:/usr、/boot 為唯讀full:+ /etc 為唯讀strict:整個檔案系統為唯讀
- 讀寫路徑:服務可以讀寫的路徑
- 唯讀路徑:服務只能讀取的路徑
注意
安全設置可能會影響某些功能, 請在啟用之前進行充分測試。
進程管理
專案使用 systemd 進行進程管理,具有以下特性:
- 專案啟動失敗
- 開機自啟:系統啟動時自動啟動專案
- 日誌管理:自動記錄標準輸出和錯誤輸出
