跳转到内容

项目

项目模块用于管理后端应用,支持 Go、Java、Node.js、PHP、Python、.NET 等多种语言。 项目会作为系统服务运行,支持自动重启、开机自启等功能。

项目类型

类型说明适用场景
GoGo 语言项目Gin、Echo、Fiber 等框架
JavaJava 项目Spring Boot、Tomcat 等
Node.jsNode.js 项目Express、Koa、NestJS 等
PHPPHP 项目Laravel Octane、Swoole 等
PythonPython 项目Django、Flask、FastAPI 等
.NET.NET 项目ASP.NET Core、Blazor、gRPC
通用其他类型项目任意可执行程序

项目列表

项目 vs 网站

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

创建项目

  1. 进入 项目 页面
  2. 点击 创建项目

创建项目

配置项

  • 项目名:项目标识,用作服务名称(仅支持字母、数字、下划线和连字符)
  • 项目目录:项目文件所在目录。 若留空,则默认使用配置的项目路径拼接项目名称(例如 /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.gocmd/server/main.go);启动命令将变为 go<版本> run <入口文件>
    • 二进制:启动命令指向位于 <项目目录>/main 的已编译二进制文件。

这些辅助字段仅影响生成的启动命令;面板最终保存的是命令本身,因此你随时可以手动覆盖它。

反向代理选项

启用反向代理后,会出现两个额外的输入项:

  • 域名:反向代理网站的一个或多个域名(至少需要一个)。
  • 项目端口:你的应用监听的本地端口。 创建的网站监听 80 端口,并代理至 http://127.0.0.1:<项目端口>

会先创建反向代理网站;如果失败,则不会创建项目。

项目管理

项目列表显示以下信息:

  • 名称:项目名称
  • 描述:项目描述
  • 类型:项目类型(Go/Java/Node.js 等)
  • 状态:服务状态 — 运行中(active)、已停止(inactive)、失败(failed)或未启用(默认/未知)之一
  • 开机自启:是否开机自启(可直接从列表切换)
  • 目录:项目目录
  • 操作:启动、停止、重启、日志等

项目操作

  • 启动:启动项目
  • 停止:停止项目
  • 重启:重启项目(仅在运行时显示)
  • 重载:在不完全重启的情况下重载项目(仅在运行时显示)
  • 日志:查看项目运行日志
  • 编辑:修改项目配置
  • 删除:删除项目(需要 5 秒确认倒计时)
  • 批量删除:通过行复选框选择多个项目,然后使用列表上方的删除按钮一次移除它们(同样需要 5 秒确认倒计时)

编辑项目

点击项目列表中的 编辑 按钮,可以修改项目配置。 编辑对话框包含多个标签页:

基本设置

配置项目的基本信息:

基本设置

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

运行设置

配置项目的运行参数:

运行设置

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

依赖

配置服务依赖关系以控制启动顺序:

依赖

  • Requires:强依赖,如果这些服务不可用,项目将会失败
  • Wants:弱依赖,如果这些服务失败,项目仍然会启动
  • After:在指定服务之后启动此项目
  • Before:在指定服务之前启动此项目

常见服务:network.targetmysqld.servicepostgresql.serviceredis.service

资源限制

设置资源限制以防止服务消耗过多系统资源:

资源限制

  • 内存限制:限制项目使用的最大内存,0 表示无限制
  • CPU 配额:限制 CPU 使用率,100% = 1 个 CPU 核心

安全设置

增强服务隔离的安全选项:

安全设置

  • 没有新权限:防止进程获取新的权限
  • 保护 /tmp:为服务创建私有的 /tmp 目录
  • 保护 /home:限制对 /home 目录的访问
  • 保护系统:设置系统目录的只读保护级别
    • true:/usr、/boot 为只读
    • full:+ /etc 为只读
    • strict:整个文件系统为只读
  • 读写路径:服务可以读写的路径
  • 只读路径:服务只能读取的路径

注意

安全设置可能会影响某些功能, 请在启用之前进行充分测试。

进程管理

项目使用 systemd 进行进程管理,具有以下特性:

  • 自动重启:进程异常退出后自动重启
  • 开机自启:系统启动时自动启动项目
  • 日志管理:自动记录标准输出和错误输出

下一步