# easyhub_server **Repository Path**: fourzkw/easyhub_server ## Basic Information - **Project Name**: easyhub_server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-09 - **Last Updated**: 2026-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyHub Backend Android 应用内更新的构建、签名、服务器配置与发布步骤见 [APP_UPDATES.md](./APP_UPDATES.md)。 部署仓:Go API + Vite/React 网页端。生产环境将前端构建产物嵌入 Go 二进制,一次进程同时提供页面与 API。 ## 结构 ``` backend/ ├── DESIGN.md # UI 设计规范 ├── web/ # Vite + React + TypeScript └── server/ # Go API + SQLite └── internal/webui/dist/ # web build 产物(go:embed) ``` ## 开发 ### 后端 ```powershell cd server copy .env.example .env # 按需填写 DEEPSEEK_API_KEY .\scripts\run.dev.ps1 ``` 默认仅监听本机 `http://127.0.0.1:3200`(`HOST` / `PORT`,见 `.env.example`)。健康检查:`GET /healthz` 或 `GET /api/healthz`。域名反代时 Nginx 指到 `127.0.0.1:3200` 即可。 在 `server/.env` 填写 `ADMIN_USERNAME` 和 `ADMIN_PASSWORD`。服务启动时如果还没有管理员,会用这两项创建初始账号;之后再改环境变量不会覆盖已有密码。忘记密码时执行 `go run ./cmd/admin reset-password`。网页右上角登录后可以发布 APK 和查看运维数据;库存等原有功能保持免登录。 ### 网页端(热更新) 另开终端: ```powershell cd web npm install npm run dev ``` 开发服务器 `http://127.0.0.1:5173`,`/api` 代理到 Go `:3200`。 ## 生产构建 ```powershell cd web npm install npm run build cd ..\server go build -o bin/api.exe ./cmd/api .\bin\api.exe ``` 编译顺序:先 `web` 的 `npm run build`(写入 `server/internal/webui/dist/`),再 `go build`。 - 网页:`http://127.0.0.1:3200/` - API(Android / 直连):`/v1/...`、`/healthz` - API(网页同源):`/api/v1/...`、`/api/healthz` ## 设计 产品 UI 遵循 [DESIGN.md](./DESIGN.md)。识别类能力仅在服务端调用 DeepSeek。 ## 入库可靠性 启动时会自动执行数据库迁移。此次新增物品创建的可选 request_id 幂等键,请先更新后端,再更新网页和 Android 客户端。同一次入库重试必须保持键不变;创建新物品使用新键。旧客户端可继续调用。 扫盒采用逐格保存:已成功的格子不会再次提交,失败时保留剩余格子;响应丢失后用原键重试也不会重复创建。页面刷新或 App 进程结束后的草稿恢复尚未实现。 库存通过分页读取完整列表,再执行本地搜索与筛选;大量库存场景后续可改为服务端分页搜索。