项目
项目模块用于管理后端应用,支持 Go、Java、Node.js、PHP、Python、.NET 等多种语言。 项目会作为系统服务运行,支持自动重启、开机自启等功能。
项目类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
| 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 等 |
| .NET | .NET 项目 | ASP.NET Core、Blazor、gRPC |
| 通用 | 其他类型项目 | 任意可执行程序 |

项目 vs 网站
| 特性 | 项目 | 网站 |
|---|---|---|
| 运行方式 | 独立进程 | 依赖 Web 服务器 |
| 进程管理 | 自动重启、开机自启 | 由 Web 服务器管理 |
| 适用场景 | 后端服务、API | 传统 Web 应用 |
| 对外访问 | 需要反向代理 | 直接访问 |
创建项目
- 进入 项目 页面
- 点击 创建项目

配置项
- 项目名:项目标识,用作服务名称(仅支持字母、数字、下划线和连字符)
- 项目目录:项目文件所在目录。 若留空,则默认使用配置的项目路径拼接项目名称(例如
/opt/ace/projects/<项目名称>) - 运行用户:运行项目的系统用户,默认 www(你也可以选择
root/nobody,或输入自定义用户) - 启动命令:启动项目的命令
- 反向代理:是否自动创建反向代理网站
类型专属辅助字段
当你从特定语言标签页(Go、Java、Node.js、PHP、Python 或 .NET)打开创建对话框时,会出现额外的辅助字段,帮助你编写启动命令:
- 版本选择:为所选语言挑选一个已安装的运行环境版本。 仅会列出在应用 > 运行环境中实际安装的版本。
- 框架:选择一个框架预设。 选择预设(除自定义以外的任意项)会自动以
<运行环境><版本> <预设命令>的形式填入启动命令(例如python3.12 -m flask run --host=0.0.0.0)。 生成的命令仍可完全编辑。 - Go 运行模式(仅 Go):在源代码与二进制之间选择。
- 源代码:选择一个 Go 版本与一个入口文件(例如
main.go、cmd/server/main.go);启动命令将变为go<版本> run <入口文件>。 - 二进制:启动命令指向位于
<项目目录>/main的已编译二进制文件。
- 源代码:选择一个 Go 版本与一个入口文件(例如
这些辅助字段仅影响生成的启动命令;面板最终保存的是命令本身,因此你随时可以手动覆盖它。
反向代理选项
启用反向代理后,会出现两个额外的输入项:
- 域名:反向代理网站的一个或多个域名(至少需要一个)。
- 项目端口:你的应用监听的本地端口。 创建的网站监听
80端口,并代理至http://127.0.0.1:<项目端口>。
会先创建反向代理网站;如果失败,则不会创建项目。
项目管理
项目列表显示以下信息:
- 名称:项目名称
- 描述:项目描述
- 类型:项目类型(Go/Java/Node.js 等)
- 状态:服务状态 — 运行中(active)、已停止(inactive)、失败(failed)或未启用(默认/未知)之一
- 开机自启:是否开机自启(可直接从列表切换)
- 目录:项目目录
- 操作:启动、停止、重启、日志等
项目操作
- 启动:启动项目
- 停止:停止项目
- 重启:重启项目(仅在运行时显示)
- 重载:在不完全重启的情况下重载项目(仅在运行时显示)
- 日志:查看项目运行日志
- 编辑:修改项目配置
- 删除:删除项目(需要 5 秒确认倒计时)
- 批量删除:通过行复选框选择多个项目,然后使用列表上方的删除按钮一次移除它们(同样需要 5 秒确认倒计时)
编辑项目
点击项目列表中的 编辑 按钮,可以修改项目配置。 编辑对话框包含多个标签页:
基本设置
配置项目的基本信息:

- 项目名:项目标识,用作服务名称
- 描述:项目描述信息
- 项目目录:项目文件所在目录
- 工作目录:程序运行时的工作目录,默认为项目目录
- 运行用户:运行项目的系统用户
运行设置
配置项目的运行参数:

- 启动命令:启动项目的命令
- 启动前命令:启动前运行的命令(可选)
- 启动后命令:启动后运行的命令(可选)
- 停止命令:自定义停止命令(可选)
- 重载命令:自定义重载命令(可选)
- 重启策略:不重启、总是重启、失败时重启、异常时、中止时或成功时
- 重启间隔:两次重启之间的等待时间
- 最大重启次数:连续重启的最大次数
- 启动超时:等待服务启动的超时时间
- 停止超时:等待服务停止的超时时间
- 标准输出:标准输出的处理方式
- 标准错误:标准错误的处理方式
- 环境变量:设置项目运行时的环境变量
依赖
配置服务依赖关系以控制启动顺序:

- 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 进行进程管理,具有以下特性:
- 自动重启:进程异常退出后自动重启
- 开机自启:系统启动时自动启动项目
- 日志管理:自动记录标准输出和错误输出
