refactor: serve static frontend with Go APIs
This commit is contained in:
1 parent
763d2f0648
commit
b14b4fced7
101 files changed
+963
-3928
No files matched your search
@@ -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
|
||||
```
|
||||
Reference in new issue
Block a user