mirror of
https://github.com/acepanel/acepanel.github.io.git
synced 2026-02-04 10:17:13 +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) - 部署其他类型应用
|