通用部署流程
1. 准备运行环境
- Node.js:
node -v建议 ≥ 22 - 全局工具(在项目目录外执行一次即可):
sh
# 设置镜像源
npm config set registry https://registry.npmmirror.com/
# 安装需要用到的该工具
npm i -g pnpm pm2 @sugarat/easypicker2-cli- 数据库:安装并启动 MySQL、MongoDB,记录 MySQL 库名 / 用户名 / 密码。
这些工具干什么用的?
- Node.js: 服务端运行环境
- pnpm: 依赖安装
- pm2: 守护进程运行 Node.js 应用
- @sugarat/easypicker2-cli: 项目部署CLI
- MySQL: 存储核心用户数据
- MongoDB: 服务运行过程中的各种日志
环境准备好后就可以开始了,后面的就非常简单!
2. 准备部署目录
任选部署根目录(示例 /var/www/easypicker),后续:
- 前端静态:
<根目录>/dist(由ep2 deploy web生成) - 服务端:
<根目录>/easypicker2-server(由ep2 deploy server生成)
示例
sh
mkdir -p ep-tests/
cd ep-tests3. 部署
3.1 部署前端
在咱刚刚创建的目录运行
sh
ep2 deploy web默认会拉取最新的版本
选择其他版本
sh
ep2 deploy web -i资源会存储到 /dist 目录下
3.2 部署后端
sh
ep2 deploy server默认会拉取最新的版本
选择其他版本
sh
ep2 deploy server -i按提示启动后端
sh
# 进入服务端资源目录
cd easypicker2-server
# 安装依赖
pnpm install --prod
# 启动,默认3000端口监听
pm2 start npm --name ep-server -- run start
# 指定端口 3001
SERVER_PORT=3001 pm2 start npm --name ep-server -- run start
# 存储进程信息,方便机器重启后恢复
pm2 save查看启动日志
sh
pm2 log --out ep-server --lines 100记录这里打印的服务端口,管理面板账号和密码后续会用到
4. 启动 Web 服务
使用 Web Server 代理前端静态资源和反向代理后端接口
4.1 本地预览效果
在刚刚创建的根目录运行
sh
npx live-server dist --host=0.0.0.0 --port=8080 --proxy=/api:http://127.0.0.1:3001 --entry-file=index.html本地访问:http://127.0.0.1:8080/ 即可打开页面看到相关效果
4.2 使用 Nginx
下面是一份最小可用的 server 示例(请按需改 server_name、root、proxy_pass 端口;proxy_pass 端口默认按上文 PM2 的 3000,若上一节 live-server 示例用的是 3001,此处改为 3001):
nginx
server {
listen 80;
server_name _; # 或你的域名
root /var/www/easypicker/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 与 4.1 中 live-server 的 --proxy=/api:… 等价:/api/* 转发到本机后端
location ^~ /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}一般线上环境使用
5. 最后的配置
在浏览器访问 你的站点地址(本地则为 http://127.0.0.1:8080/,线上则为绑定的域名或服务器 IP,与 Nginx server_name 一致)。
使用 管理面板账号、密码 登录。
账号信息在 启动服务时终端 / pm2 log 输出 中可见,也可在服务端目录 easypicker2-server/user-config.json 中查看。
登录后进入 系统管理,配置数据库、对象存储等。系统管理能力说明见 系统管理。

