58 lines
3.3 KiB
Markdown
58 lines
3.3 KiB
Markdown
# Doodle Store
|
|
|
|
独立于 `doodle-mini` 的 pnpm Monorepo,用于维护统一业务后端、后续管理后台和用户 Web 网站。小程序源码与 CloudBase 兼容函数仍在 `doodle-mini`,两个项目通过 HTTPS API 协作。
|
|
|
|
## 当前范围
|
|
|
|
当前完成基础工程和本地数据库环境,具体业务尚未接入:
|
|
|
|
- `apps/server`:可运行的 NestJS 服务,已接入日志、中间件、Swagger 与 JWT 基础设施;当前公开业务路由仍只有进程健康检查。
|
|
- `packages/contracts`:基础成功响应与健康检查类型,不包含业务字段或私有实现。
|
|
- `apps/admin`、`apps/web`:仅预留目录与说明,尚未选择或安装前端框架。
|
|
- 本地 PostgreSQL 18.6 Docker 开发环境已启动,10 张表及初始配置已创建;Prisma、微信登录、七牛接口、定时任务、业务接口与生产部署尚未接入。
|
|
|
|
## 本地使用
|
|
|
|
先按 [本地数据库说明](infra/README.md) 配置根 `.env`,执行 `pnpm infra:up`。默认数据库地址为 `127.0.0.1:5434`,开发库为 `doodle_dev`。图片等资源直接使用七牛,本地仅启动 PostgreSQL。生产与按需测试的安排见 [v3.5 开发与部署环境方案](docs/v3.5/开发与部署环境方案.md)。
|
|
|
|
使用 Node.js **24.20.0** 与 pnpm **11.24.0**。如使用 fnm,可在本目录执行 `fnm use --install-if-missing`。
|
|
|
|
```bash
|
|
pnpm install --frozen-lockfile
|
|
pnpm build
|
|
pnpm dev
|
|
```
|
|
|
|
默认地址为 `http://127.0.0.1:3000/api/v1/health`。该接口只证明服务进程可以处理 HTTP 请求,不代表数据库、文件存储或业务系统已经可用。
|
|
|
|
可在 `apps/server/.env` 中配置 `PORT`、`HOST`,变量示例见 `apps/server/.env.example`。未配置时使用安全的本地默认值。不要提交真实 `.env` 或密钥。
|
|
|
|
JWT_SECRET 必须配置为至少 32 字节的独立密钥,本机开发密钥已生成。Swagger 默认开发开启:`http://127.0.0.1:3000/api-docs`,生产未显式配置时关闭;其他设置与账户查询接入边界见 [Server 基础设置](docs/v3.5/Server基础设置.md)。
|
|
|
|
```bash
|
|
pnpm check # 格式、代码检查、类型检查、构建与测试
|
|
pnpm build # 按工作区依赖顺序构建
|
|
pnpm start # 运行已构建的服务端
|
|
pnpm format # 格式化源码与配置
|
|
```
|
|
|
|
## 目录
|
|
|
|
```text
|
|
apps/
|
|
server/ NestJS 服务端
|
|
admin/ 后续管理后台,当前仅占位
|
|
web/ 后续用户网站,当前仅占位
|
|
packages/
|
|
contracts/ 可公开的接口类型
|
|
deploy/ 后续部署说明,当前未部署
|
|
infra/ 本地 PostgreSQL Docker 配置
|
|
docs/ 工程初始化与接入边界说明
|
|
```
|
|
|
|
每个实际应用与包声明自己的依赖。工作区内部使用 `workspace:*`,按应用独立构建、发布;不要求后台、网站与 API 同时上线。暂不引入 Turborepo、Nx、Redis、队列或微服务。
|
|
|
|
数据库模型、密钥和未来私有生成/绘制逻辑只能由服务端持有,不能放进公共契约包供前端导入。小程序不直接依赖本仓库源码或本地工作区包。
|
|
|
|
现有功能迁移的权威方案见 [docs/云服务端迁移方案.md](docs/云服务端迁移方案.md),小程序产品规划与历史设计仍保留在 `doodle-mini`。本仓库的初始化说明见 [docs/初始化说明.md](docs/初始化说明.md)。
|