You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.1 KiB

上传到服务器 — 使用说明

本目录仅含生产部署所需文件,不含测试、文档、开发脚本、node_modules 等。

上传到服务器/
├── README.md          ← 本说明
├── RELEASE-NOTES.md   ← 部署步骤摘要
├── 代码/              ← 上传到服务器项目目录 /home/project/yubao
└── 数据库/            ← 宝塔 MySQL 导入用
    ├── email_forecast.sql
    ├── email_forecast.sql.gz
    └── README.md

第一步:导入数据库(宝塔)

  1. 宝塔创建数据库 email_forecast
    • 字符集:utf8mb4
    • 校对规则:utf8mb4_unicode_ci(必须一致,否则会提示「字符集不一致可能导致恢复失败」)
  2. 创建用户 email_forecast,授权主机 172.%(Docker 容器访问)
  3. 进入该库 → 导入 → 上传 数据库/email_forecast.sql(或 .sql.gz)

若库已建错校对规则,先执行:

ALTER DATABASE email_forecast CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

再导入。包内含本机完整业务数据;若只想空库,可跳过导入,首次 install 会 db push + seed。


第二步:上传代码

将 代码/ 内全部内容上传到服务器 /home/project/yubao/。

重要:不要覆盖服务器上已有的 .env 文件。


第三步:配置与启动

首次部署

cd /home/project/yubao
cp deploy/.env.bt-host-mysql.example .env
nano .env   # 改密码、SESSION_SECRET、CC/IMAP 等
chmod +x deploy/install-bt-host-mysql.sh
bash deploy/install-bt-host-mysql.sh

更新代码(已有 .env)

cd /home/project/yubao
cp .env .env.backup.$(date +%Y%m%d)
# 用新「代码/」覆盖本目录(勿覆盖 .env)
chmod +x deploy/update-code-only-bt-host-mysql.sh
bash deploy/update-code-only-bt-host-mysql.sh
# schema 有变更时:
bash deploy/update-code-only-bt-host-mysql.sh --db-push

访问地址

用途 地址
登录 http://192.168.2.14:30327/login
邮件列表 http://192.168.2.14:30327/mails
设置(Admin) http://192.168.2.14:30327/settings

默认账号由 .env 中 APP_ADMIN_USER / APP_OPS_PASS 决定;生产勿用 admin123。


重新打包(开发机 Windows)

方案 A:服务器编译(需 4GB+ 可用内存)

cd X:\work\yx
powershell -ExecutionPolicy Bypass -File deploy\pack-server-upload.ps1

方案 C:开发机构镜像(推荐,服务器不编译)

cd X:\work\yx
# 需 Docker Desktop 已启动;本机内存建议 ≥ 8GB
powershell -ExecutionPolicy Bypass -File deploy\pack-prebuilt-upload.ps1

产出含 镜像/yubao-app-image.tar(约 800MB~1.5GB),服务器执行 bash deploy/install-prebuilt-image.sh。


与查价项目(chajia)同机部署

项目 端口 库名 目录
chajia 30325 chajia /home/project/chajia
邮件预报(本项) 30327 email_forecast /home/project/yubao

二者共用宝塔 MySQL,各自独立库与用户,互不影响。