refactor: serve static frontend with Go APIs

This commit is contained in:
brother7 committed 2026-08-16 20:47:45 +08:00
1 parent 763d2f0648
commit b14b4fced7
101 files changed
+963 -3928

No files matched your search

+10 -18
View File
@@ -16,12 +16,6 @@ Use `/api/health` for process liveness and `/api/ready` for database-backed read
## 启动
服务器一键部署:
```bash
bash scripts/deploy.sh
```
开发环境:
```bash
@@ -39,18 +33,14 @@ http://127.0.0.1:3000
常用命令:
```bash
npm start
npm run start:server
npm run worker
npm run build
npm test
npm run health
npm run info
npm run deploy:check
```
`npm start` 会自动先执行一次生产构建,再启动 `http://127.0.0.1:3000`;开发调试建议继续使用 `npm run dev`。
Docker 部署默认使用 `docker-compose.yml` 同时启动 Web 服务和 `zhinian-worker` 任务 Worker,访问 `http://服务器IP:3000`。如需修改端口,调整 `.env.local` 中的 `APP_PORT` 和 `NEXT_PUBLIC_APP_URL` 后重新执行 `bash scripts/deploy.sh`。
`npm run build` 输出纯静态 `out/`。生产镜像使用非 root Nginx 托管该目录,不运行
Next.js 服务端;浏览器通过同域 `/api` 调用 Go 后端。ACK 发布步骤见
[`docs/DEPLOYMENT.md`](./docs/DEPLOYMENT.md)。
## Web MVP 信息架构
@@ -237,7 +227,7 @@ cp .env.example .env.local
- `DATABASE_URL`:仅服务端读取的 PostgreSQL 连接串
- `DATABASE_URL` 的 `sslmode` / `sslrootcert`:在同一个连接串中配置 RDS TLS;默认使用 `sslmode=verify-full`
当 `ZHINIAN_DATA_BACKEND=local` 时,应用使用 `.runtime/data/web-app-state.json` 作为单实例开发数据层。生产 `postgres` 模式缺少连接配置会直接失败,不会静默写入本地 JSON。如果 OSS 未配置,上传和 mock 结果会保存到 `.runtime/uploads` 和 `.runtime/generated-results`,并通过 Web 路由提供访问。
当 `ZHINIAN_DATA_BACKEND=local` 时,应用使用 `.runtime/data/web-app-state.json` 作为单实例开发数据层。生产 `postgres` 模式缺少连接配置会直接失败,不会静默写入本地 JSON。如果 OSS 未配置,上传和 mock 结果会保存到 `.runtime/uploads` 和 `.runtime/generated-results`,并通过 Go 路由提供访问。
## 数据库
@@ -260,7 +250,9 @@ database/migrations/
## 任务管理与开放 API
平台支持服务端任务管理:页面和 `/api/v1` 创建任务后只入队,Worker 统一提交供应商、轮询、转存结果、失败重试和 Webhook 回调。生产部署使用 PostgreSQL;本地开发可继续使用 `.runtime/data/web-app-state.json`。
平台支持服务端任务管理:页面和 `/api/v1` 创建任务后只入队,由 Go 内嵌 WorkerLoop
统一提交供应商、轮询、转存结果、失败重试和 Webhook 回调。生产部署使用 PostgreSQL;
本地开发可继续使用 `.runtime/data/web-app-state.json`。
开放 API 使用 API Key:
@@ -282,7 +274,8 @@ ZHINIAN_INTERNAL_WORKER_TOKEN=change-me-worker-token
- `POST /api/v1/jobs/[id]/cancel`
- `GET /api/v1/openapi.json`
任务创建支持 `Idempotency-Key` 幂等键和 `webhookUrl` 完成回调。Worker 可用 `npm run worker` 常驻运行,或 `npm run worker:once` 单次处理。
任务创建支持 `Idempotency-Key` 幂等键和 `webhookUrl` 完成回调。后台任务由 Go API
内嵌的 WorkerLoop 处理,不再启动独立 Node Worker。
## API
@@ -319,7 +312,6 @@ ZHINIAN_INTERNAL_WORKER_TOKEN=change-me-worker-token
```bash
npm test
npm run build
npm run health
npm run go:test
npm run go:build
```