- 移除 Dockerfile 第一行的 syntax=docker/dockerfile:1 - 该指令会导致 BuildKit 尝试从 Docker Hub 拉取镜像 - 修复无法访问 Docker Hub 导致的构建失败问题 - 对于标准 Dockerfile 特性,此指令非必需
Seclusion
基于 Next.js + NestJS 的 Monorepo 项目模板,使用 pnpm workspace + Turborepo 管理。
技术栈
- 前端: Next.js 15 + React 19 + TypeScript
- 后端: NestJS 10 + Prisma + Swagger + JWT
- 工具链: pnpm + Turborepo + ESLint + Prettier
项目结构
seclusion/
├── apps/
│ ├── web/ # Next.js 前端应用
│ └── api/ # NestJS 后端应用
├── packages/
│ ├── shared/ # 共享代码(类型、工具函数)
│ ├── eslint-config/ # ESLint 配置
│ └── typescript-config/ # TypeScript 配置
├── package.json
├── pnpm-workspace.yaml
└── turbo.json
快速开始
环境要求
- Node.js >= 20.0.0
- pnpm >= 9.0.0
安装依赖
pnpm install
配置环境变量
# 后端
cp apps/api/.env.example apps/api/.env
# 前端
cp apps/web/.env.example apps/web/.env.local
初始化数据库
# 生成 Prisma Client
pnpm db:generate
# 推送数据库 schema
pnpm db:push
启动开发服务器
# 同时启动前端和后端
pnpm dev
- 前端: http://localhost:3000
- 后端: http://localhost:4000
- API 文档: http://localhost:4000/api/docs
常用命令
# 开发
pnpm dev # 启动所有应用的开发服务器
# 构建
pnpm build # 构建所有应用
# 代码质量
pnpm lint # 运行 ESLint
pnpm format # 格式化代码
# 数据库
pnpm db:generate # 生成 Prisma Client
pnpm db:push # 推送 schema 到数据库
pnpm db:migrate # 运行数据库迁移
# 清理
pnpm clean # 清理所有构建产物和 node_modules
API 接口
认证相关
POST /auth/register- 用户注册POST /auth/login- 用户登录GET /auth/me- 获取当前用户信息(需认证)
用户管理
GET /users- 获取所有用户(需认证)GET /users/:id- 获取指定用户(需认证)PATCH /users/:id- 更新用户信息(需认证)DELETE /users/:id- 删除用户(需认证)
共享包使用
// 导入类型
import type { User, ApiResponse } from '@seclusion/shared';
// 导入工具函数
import { formatDate, generateId } from '@seclusion/shared';
Description
Languages
TypeScript
93.2%
Handlebars
5.5%
Dockerfile
0.6%
CSS
0.4%
JavaScript
0.3%