2
0
mirror of https://github.com/acepanel/acepanel.github.io.git synced 2026-02-04 10:17:13 +08:00
Files
acepanel.github.io/zh_CN/advanced/project.md
github-actions[bot] 612a7cd5ec New Crowdin translations by GitHub Action (#75)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-01-27 01:38:03 +08:00

157 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目
项目模块用于管理后端应用程序,支持 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) | 其他类型项目 | 任意可执行程序 |
![项目列表](/images/project/project-list.png)
## 项目 vs 网站
| 特性 | 项目 | 网站 |
| ---- | -------- | ----------- |
| 运行方式 | 独立进程 | 依赖 Web 服务器 |
| 进程管理 | 项目自动重启 | 由 Web 服务器管理 |
| 适用场景 | 后端服务、API | 传统 Web 应用 |
| 对外访问 | 反向代理配置 | 直接访问 |
## 创建项目
1. 进入 **项目** 页面
2. 点击 **创建项目**
![创建项目](/images/project/project-create.png)
### 配置项
- **项目名**:项目标识,用作服务名称
- **项目目录**:项目文件所在目录
- **运行用户**:运行项目的系统用户,默认 www
- **启动命令**:启动项目的命令
- 创建项目时开启「反向代理」,会自动创建一个反向代理网站。
## 项目管理
项目列表显示以下信息:
- **名称**:项目名称
- **描述**:项目描述
- **类型**项目类型Go/Java/Node.js 等)
- **状态**:运行状态
- **自启动**:是否开机自启
- **目录**:项目目录
- **操作**:启动、停止、重启、日志等
### 项目操作
- **启动**:启动项目
- **停止**:停止项目
- **重启**:重启项目
- 查看项目日志
- **编辑**:修改项目配置
- **删除**:删除项目
## 编辑项目
点击项目列表中的 **编辑** 按钮,可以修改项目配置。 编辑对话框包含多个标签页:
### 基本设置
配置项目的基本信息:
![基本设置](/images/project/project-edit-basic.png)
- **项目名**:项目标识,用作服务名称
- **描述**:项目描述信息
- **项目目录**:项目文件所在目录
- **工作目录**:程序运行时的工作目录,默认为项目目录
- **运行用户**:运行项目的系统用户
### 在「运行设置」中配置:
配置项目的运行参数:
![运行设置](/images/project/project-edit-run.png)
- **启动命令**:启动项目的命令
- 预启动命令
- **启动后命令**:启动后运行的命令(可选)
- **停止命令**:自定义停止命令(可选)
- **重载命令**:自定义重载命令(可选)
- **重启策略**:失败时重启 / 总是重启 / 不重启
- **重启间隔**:两次重启之间的等待时间
- **最大重启次数**:防止无限重启
- 在项目启动前执行,如安装依赖:
- lsof -i:3000 # 查看占用端口的进程
- **标准输出**:标准输出的处理方式
- **标准错误**:标准错误的处理方式
- **环境变量**:设置项目运行时的环境变量
### 依赖
配置服务依赖关系以控制启动顺序:
![依赖](/images/project/project-edit-deps.png)
- **Requires**:强依赖,如果这些服务不可用,项目将会失败
- **Wants**:弱依赖,如果这些服务失败,项目仍然会启动
- **After**:在指定服务之后启动此项目
- **Before**:在指定服务之前启动此项目
常见服务:`network.target``mysqld.service``postgresql.service``redis.service`
### 资源限制
设置资源限制以防止服务消耗过多系统资源:
![资源限制](/images/project/project-edit-resource.png)
- **内存限制**限制项目使用的最大内存0 表示无限制
- **CPU 配额**:限制 CPU 使用率100% = 1 个 CPU 核心
### 安全设置
增强服务隔离的安全选项:
![安全设置](/images/project/project-edit-security.png)
- **没有新权限**:防止进程获取新的权限
- **保护 /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) - 部署其他类型应用