项目
项目模块用于管理后端应用程序,支持 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 进行进程管理,具有以下特性:
- 项目启动失败
- 开机自启:系统启动时自动启动项目
- 日志管理:自动记录标准输出和错误输出
