# 上传到服务器 — 使用说明 本目录仅含**生产部署所需**文件,不含测试、文档、开发脚本、`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`) 若库已建错校对规则,先执行: ```sql ALTER DATABASE email_forecast CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 再导入。包内含本机完整业务数据;若只想空库,可跳过导入,首次 `install` 会 `db push` + seed。 --- ## 第二步:上传代码 将 **`代码/`** 内全部内容上传到服务器 `/home/project/yubao/`。 **重要:不要覆盖服务器上已有的 `.env` 文件。** --- ## 第三步:配置与启动 ### 首次部署 ```bash 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) ```bash 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+ 可用内存) ```powershell cd X:\work\yx powershell -ExecutionPolicy Bypass -File deploy\pack-server-upload.ps1 ``` ### 方案 C:开发机构镜像(推荐,服务器不编译) ```powershell 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,各自独立库与用户,互不影响。