Fastify-Tools 是一个基于 Pnpm 的 Monorepo 项目,旨在提供一个高性能、可扩展的全栈开发框架。项目包含多个子项目,分别负责后端服务、前端应用和工具开发。通过使用 Fastify、Next.js 和 shadcn-ui 等技术栈,项目能够快速构建现代化的 Web 应用。
- 后端: Fastify, TypeScript, Prisma ORM
- 前端: Next.js, shadcn-ui, React 19
- 数据库: PostgreSQL
- 包管理: Pnpm
- 代码规范: ESLint, Prettier
- 容器化: Docker, Docker Compose
- API 文档: Swagger, Scalar
- 测试: Tap
fastify-tools/
├── packages/ # 前端相关项目
│ └── shadcn-next/ # 基于 Next.js 和 shadcn-ui 的前端应用
├── services/ # 后端服务
│ ├── fastify/ # 基于 Fastify 的后端服务
│ │ └── prisma/ # Prisma ORM 配置和迁移
│ └── tools/ # 工具类项目
├── docker-compose.yml # Docker 容器化配置
├── .env.example # 环境变量示例
├── pnpm-workspace.yaml # Pnpm 工作区配置
└── README.md # 项目说明文档
- Node.js 18+
- Pnpm 8+
- Docker (可选)
- PostgreSQL (可选,如果不使用 Docker)
pnpm installpnpm devpnpm buildpnpm test项目支持使用 Docker Compose 进行容器化部署,包含以下服务:
- PostgreSQL 数据库 - 共享数据库服务,供所有子项目使用
- Fastify 后端服务 - 提供 API 接口
- Next.js 前端应用 - 提供用户界面
- PgAdmin - 数据库管理工具(可选)
- 复制环境变量示例文件:
cp .env.template .env- 根据需要修改
.env文件中的配置。
# 启动所有服务
docker-compose up -d
# 仅启动数据库
docker-compose up -d postgres
# 查看服务日志
docker-compose logs -f- Fastify API: http://localhost:4000
- Next.js 前端: http://localhost:4001
- PgAdmin: http://localhost:5050
Fastify 服务是整个项目的核心后端服务,提供高性能的 API 接口。主要特性包括:
- 高性能路由处理
- 插件系统
- Prisma ORM 数据库操作
- 安全性
- 数据验证
- 异步处理
- 接口文档生成
shadcn-next 是基于 Next.js 和 shadcn-ui 的前端应用,提供现代化的用户界面。主要特性包括:
- 服务端渲染
- 静态页面生成
- 动态路由
- 数据获取
- AIGC 相关服务
- 个人工作工具展示
- React 19 支持
Tools 项目包含一些实用的工具脚本,如 Excel 数据处理、自动化脚本等。
项目使用 PostgreSQL 作为数据库,并通过 Prisma ORM 进行管理。
# 生成 Prisma 客户端(所有服务)
pnpm prisma:generate:all
# 创建并应用新的迁移(开发环境)
pnpm -F fastify-service prisma:migrate:dev --name <迁移名称>
# 应用迁移到生产环境
pnpm prisma:deploy:all# 启动 Prisma Studio
pnpm -F fastify-service prisma:studio访问 http://localhost:5555 查看和管理数据库内容。
完整的数据库迁移和管理指南请参考:数据库迁移文档
项目使用 pnpm 工作区管理多个子包,并解决了 React 19 与其他依赖的兼容性问题:
- 通过
resolutions字段覆盖依赖版本 - 显式安装缺失的依赖
- 使用
update:deps脚本更新依赖
欢迎提交 Pull Requests 和 Issues!请查看 贡献指南 了解更多信息。