# 上传到服务器 — 使用说明 本目录仅含**生产部署所需**文件,不含测试、文档、开发脚本、`node_modules` 等。 ``` 上传到服务器/ ├── README.md ← 本说明 ├── 代码/ ← 上传到服务器项目目录(如 /home/project/chajia) └── 数据库/ ← 宝塔 MySQL 导入用 ├── chajia.sql ├── chajia.sql.gz └── README.md ``` --- ## 第一步:导入数据库(宝塔) 1. 宝塔创建数据库 **`chajia`**,字符集 **`utf8mb4`** 2. 进入该库 → **导入** → 上传 **`数据库/chajia.sql`** 3. 数据库用户 **`chajia`** 须授权主机 **`172.%`**(Docker 容器访问) 默认管理员:`admin_demo` / `kj123456`(上线后请改密) 嵌入演示 `/embed-demo`:客户编号登录;密码在**客户管理**中为每个客户单独设置(新建默认 `123456`)。 --- ## 第二步:上传代码 将 **`代码/`** 内全部内容上传到服务器 `/home/project/chajia/`。 **重要:不要覆盖服务器上已有的 `.env` 文件。** 上传包**不含**根目录 `.env`,避免数据库密码被旧模板覆盖。 --- ## 第三步:配置与启动 ### 首次部署(服务器尚无查价项目) ```bash cd /home/project/chajia cp deploy/.env.bt-host-mysql.example .env # 核对 .env 中 MYSQL_PASSWORD / DATABASE_URL 与宝塔一致 nano .env chmod +x deploy/install-bt-host-mysql.sh bash deploy/install-bt-host-mysql.sh ``` ### 更新代码(已有 .env)— 推荐 DataGrip 方式 ```bash cd /home/project/chajia # 1. 备份 .env cp .env .env.backup.$(date +%Y%m%d) # 2. 用新「代码/」覆盖本目录(勿覆盖 .env) # 3. DataGrip 执行 deploy/datagrip-manual-migrate-20260716.sql # 4. 串行更新镜像(不自动 migrate): chmod +x deploy/update-code-only-bt-host-mysql.sh bash deploy/update-code-only-bt-host-mysql.sh # 5. 标记 migration 已应用 + 清 Redis(见 RELEASE-NOTES 方式 B) ``` **勿再跑** `install-bt-host-mysql.sh`(会自动 `migrate deploy`)。详细见同目录 `RELEASE-NOTES.md`。 --- ## 访问地址 | 用途 | 地址 | |------|------| | 管理端 | http://192.168.2.14:30325/admin/alerts | | 嵌入演示 | http://192.168.2.14:30325/embed-demo | | API 基址 | http://192.168.2.14:30325 | **API 鉴权(第三方对接):** ```http Authorization: Bearer <客户 API Key> X-Customer-Id: CUST_002 ``` 嵌入演示页使用 Cookie 会话,无需在浏览器配置 Token。 --- ## 重新打包(开发机) ```powershell powershell -ExecutionPolicy Bypass -File deploy/pack-server-upload.ps1 ``` --- ## 未打包内容 | 不打包 | 原因 | |--------|------| | 根目录 `.env` | 防止覆盖服务器密码与 Token | | `node_modules` / `.next` | 服务器 Docker 构建生成 | | `__tests__` / `e2e` / `scripts/` | 非生产必需 | API 文档:`代码/deploy/API.md`