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

+16 -69
View File
@@ -29,7 +29,7 @@
## 技术栈
- Next.js 15(前端:页面、静态资源、SSR)
- Next.js 15(构建期静态导出,生产由 Nginx 托管)
- Go 1.21(生产后端:独占 `/api`、`/uploads`、`/generated-results`,内嵌 WorkerLoop,见 `backend/` 与 [`docs/DEPLOYMENT.md`](./docs/DEPLOYMENT.md))
- React 19
- TypeScript
@@ -54,77 +54,27 @@ npm run dev -- --hostname 127.0.0.1 --port 3000
http://127.0.0.1:3000
```
生产模式:
静态生产构建:
```bash
npm start
```
`npm start` 会先执行 `next build`,再启动 `127.0.0.1:3000`。
## 服务器一键部署
服务器推荐使用 Docker Compose:
```bash
git clone <你的仓库地址>
cd NianAIGC
bash scripts/deploy.sh
```
脚本会自动完成:
- 创建 `.env.local`
- 创建 `.runtime/data`、`.runtime/uploads`、`.runtime/generated-results`
- 创建 `.runtime/logs`
- 构建 Docker 镜像
- 使用 `docker compose up -d --build` 后台启动 Web 服务和 Worker 服务
默认访问:
```text
http://服务器IP:3000
```
如果要换端口,可以编辑 `.env.local`:
```env
APP_PORT=8080
NEXT_PUBLIC_APP_URL=http://你的服务器IP:8080
```
然后重新执行:
```bash
bash scripts/deploy.sh
```
常用 Docker 命令:
```bash
docker compose ps
docker compose logs -f zhinian-aigc
docker compose logs -f zhinian-worker
docker compose restart
docker compose down
```
如果服务器不用 Docker,也可以用 Node 直接部署:
```bash
npm ci
npm run build
npm run start:server
```
另开一个进程运行任务 Worker:
构建结果位于 `out/`。生产不运行 Node Web 进程;仓库 Dockerfile
使用非 root Nginx 托管静态文件,浏览器通过同域 `/api` 调用 Go。
## 生产部署
生产推荐使用 ACK 路径分流:
```bash
npm run worker
docker build -t REGISTRY/PROJECT/zhinian-aigc:TAG .
npm run deploy:check
```
生产环境建议把 `NEXT_PUBLIC_APP_URL` 设置成真实域名或公网地址,配置 `ZHINIAN_INTERNAL_WORKER_TOKEN`,并把 `.runtime/` 做定期备份。
部署后如果页面或接口报错,登录后台访问 `/logs` 查看最近错误、请求路径、状态码和错误栈。日志文件默认在 `.runtime/logs/server-events.jsonl`。
Ingress 将 `/api`、`/uploads`、`/generated-results` 转发给 Go,其余请求转发给
静态 Web。Web 不接收数据库、会话密钥或其他运行时配置。完整的 RDS、Secret、迁移和
发布步骤见 [`docs/DEPLOYMENT.md`](./docs/DEPLOYMENT.md)。
## 常用命令
@@ -132,8 +82,6 @@ npm run worker
npm run dev -- --hostname 127.0.0.1 --port 3000
npm test
npm run build
npm run health
npm run worker:once
npm run info
```
@@ -336,9 +284,10 @@ cp .env.example .env.local
## 项目结构
```text
app/ Next.js App Router 页面与 API
app/ Next.js App Router 静态页面
backend/ Go API、持久化与内嵌 WorkerLoop
components/ 前端组件
lib/ 业务逻辑、服务端适配器、接口客户端
lib/ 前端共享逻辑与浏览器接口客户端
lib/ui/motion.ts GSAP 动效工具层
public/logo/ 品牌 Logo
scripts/ 启动、健康检查与信息脚本
@@ -355,8 +304,6 @@ docker-compose.yml 服务器部署编排
```bash
npm test
npm run build
npm run health
npm run worker:once
```
如果本地 dev server 正在运行,建议先停止后再执行生产构建,避免 Next.js dev 缓存与生产构建互相影响。