跳转到内容

项目

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

项目类型

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

项目列表

项目 vs 网站

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

创建项目

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

创建项目

配置项

  • 项目名:项目标识,用作服务名称
  • 项目目录:项目文件所在目录
  • 运行用户:运行项目的系统用户,默认 www
  • 启动命令:启动项目的命令
  • 创建项目时开启「反向代理」,会自动创建一个反向代理网站。

项目管理

项目列表显示以下信息:

  • 名称:项目名称
  • 描述:项目描述
  • 类型:项目类型(Go/Java/Node.js 等)
  • 状态:运行状态
  • 自启动:是否开机自启
  • 目录:项目目录
  • 操作:启动、停止、重启、日志等

项目操作

  • 启动:启动项目
  • 停止:停止项目
  • 重启:重启项目
  • 查看项目日志
  • 编辑:修改项目配置
  • 删除:删除项目

编辑项目

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

基本设置

配置项目的基本信息:

基本设置

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

在「运行设置」中配置:

配置项目的运行参数:

运行设置

  • 启动命令:启动项目的命令
  • 预启动命令
  • 启动后命令:启动后运行的命令(可选)
  • 停止命令:自定义停止命令(可选)
  • 重载命令:自定义重载命令(可选)
  • 重启策略:失败时重启 / 总是重启 / 不重启
  • 重启间隔:两次重启之间的等待时间
  • 最大重启次数:防止无限重启
  • 在项目启动前执行,如安装依赖:
  • lsof -i:3000 # 查看占用端口的进程
  • 标准输出:标准输出的处理方式
  • 标准错误:标准错误的处理方式
  • 环境变量:设置项目运行时的环境变量

依赖

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

依赖

  • 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 进行进程管理,具有以下特性:

  • 项目启动失败
  • 开机自启:系统启动时自动启动项目
  • 日志管理:自动记录标准输出和错误输出

下一步