mirror of
https://github.com/acepanel/acepanel.github.io.git
synced 2026-02-04 14:07:16 +08:00
157 lines
5.5 KiB
Markdown
157 lines
5.5 KiB
Markdown
# 專案
|
||
|
||
專案模組用於管理後端應用程式,支援 Go、Java、Node.js、PHP、Python 等多種語言。 專案會作為系統服務運行,支援自動重啟、開機自啟等功能。
|
||
|
||
## 專案類型
|
||
|
||
| 類型 | 說明 | 適用場景 |
|
||
| ------------------------------------------- | -------------------------- | ----------------------- |
|
||
| [Go](./project/go) | Go 語言專案 | Gin、Echo、Fiber 等框架 |
|
||
| [Java](./project/java) | Java 專案 | Spring Boot、Tomcat 等 |
|
||
| [Node.js](./project/nodejs) | Node.js 專案 | Express、Koa、NestJS 等 |
|
||
| [PHP](./project/php) | PHP 專案 | Laravel Octane、Swoole 等 |
|
||
| [Python](./project/python) | Python 專案 | Django、Flask、FastAPI 等 |
|
||
| [通用](./project/general) | 其他類型專案 | 任意可執行程式 |
|
||
|
||

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

|
||
|
||
### 配置項
|
||
|
||
- **專案名**:專案標識,用作服務名稱
|
||
- **專案目錄**:專案檔案所在目錄
|
||
- **運行使用者**:運行專案的系統使用者,預設 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`:整個檔案系統為唯讀
|
||
- **讀寫路徑**:服務可以讀寫的路徑
|
||
- **唯讀路徑**:服務只能讀取的路徑
|
||
|
||
:::warning 注意
|
||
安全設置可能會影響某些功能, 請在啟用之前進行充分測試。
|
||
:::
|
||
|
||
## 進程管理
|
||
|
||
專案使用 systemd 進行進程管理,具有以下特性:
|
||
|
||
- 專案啟動失敗
|
||
- **開機自啟**:系統啟動時自動啟動專案
|
||
- **日誌管理**:自動記錄標準輸出和錯誤輸出
|
||
|
||
## 下一步
|
||
|
||
- [Go 專案](./project/go) - 部署 Go 應用
|
||
- [Java 專案](./project/java) - 部署 Java 應用
|
||
- [Node.js 專案](./project/nodejs) - 部署 Node.js 應用
|
||
- [PHP 專案](./project/php) - 部署 PHP 應用
|
||
- [Python 專案](./project/python) - 部署 Python 應用
|
||
- [通用專案](./project/general) - 部署其他類型應用
|