Files
Alfred/docs/user/deploy.md

63 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产部署
本文档说明如何构建和运行生产环境的应用。
## 生产构建和运行
```bash
bun run build
./dist/alfred config.yaml
```
启动后:
| 地址 | 行为 |
| ------------------------------ | ------------------- |
| http://127.0.0.1:3000/ | 返回前端 SPA |
| http://127.0.0.1:3000/api/meta | 返回应用元信息 JSON |
## 构建流程
scripts/build.ts 执行三步流水线:
```text
1. Vite build -> dist/web/(前端静态资源,含 code splitting
2. Code generation -> .build/static-assets.ts + .build/migrations-data.ts + .build/server-entry.ts含版本号字面量注入
3. Bun compile -> dist/alfred单可执行文件
4. Cleanup -> 清理 .build/ 临时目录
```
- Vite 构建前端资源到 dist/web/,自动 code splittingvendor-react、vendor-antd、vendor-chart
- Code generation 扫描 dist/web/ 生成 static-assets.ts读取 drizzle/\*.sql 生成 migrations-data.ts生成 server-entry.ts 串联入口
- migrations-data.ts 将 migration SQL 嵌入 binary生产部署无需额外携带 migration 文件
- Bun compile 以 .build/server-entry.ts 为入口编译最终可执行文件
- .build/ 临时目录在构建完成后自动清理
## 运行时数据存储
- 应用使用 SQLite 存储数据,数据库文件位于 `<dataDir>/alfred.db`
- 启动时自动应用 pending database migrations无需手动迁移
- 每次 migration 执行前自动备份现有数据库到 `<dataDir>/backups/`
- 数据库文件使用 WAL 模式,支持并发读写
## 产物
| 产物 | 用途 |
| ----------- | ---------------------------------------- |
| dist/alfred | 生产可执行文件(含前端资源,单文件部署) |
| dist/web/ | Vite 构建的前端资源(构建中间产物) |
## 构建参数
| 环境变量 | 说明 |
| ------------------------- | ------------------------------------ |
| BUN_TARGET / BUILD_TARGET | 交叉编译目标平台(如 bun-linux-x64 |
## 清理
```bash
bun run clean
```
清理 dist/ 构建产物和 .build/ 临时文件。