Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DellDi/fastify-tools

Repository files navigation

Fastify-Tools 项目

项目概述

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 install

启动开发环境

pnpm dev

构建项目

pnpm build

运行测试

pnpm test

Docker 部署

项目支持使用 Docker Compose 进行容器化部署,包含以下服务:

  1. PostgreSQL 数据库 - 共享数据库服务,供所有子项目使用
  2. Fastify 后端服务 - 提供 API 接口
  3. Next.js 前端应用 - 提供用户界面
  4. PgAdmin - 数据库管理工具(可选)

环境配置

  1. 复制环境变量示例文件:
cp .env.template .env
  1. 根据需要修改 .env 文件中的配置。

启动 Docker 服务

# 启动所有服务
docker-compose up -d
# 仅启动数据库
docker-compose up -d postgres
# 查看服务日志
docker-compose logs -f

访问服务

子项目介绍

Fastify 服务

Fastify 服务是整个项目的核心后端服务,提供高性能的 API 接口。主要特性包括:

  • 高性能路由处理
  • 插件系统
  • Prisma ORM 数据库操作
  • 安全性
  • 数据验证
  • 异步处理
  • 接口文档生成

shadcn-next 前端应用

shadcn-next 是基于 Next.js 和 shadcn-ui 的前端应用,提供现代化的用户界面。主要特性包括:

  • 服务端渲染
  • 静态页面生成
  • 动态路由
  • 数据获取
  • AIGC 相关服务
  • 个人工作工具展示
  • React 19 支持

Tools 工具项目

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!请查看 贡献指南 了解更多信息。

部署

推荐使用 Docker 进行容器化部署。详细部署文档请参考 部署指南

About

fastify-tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /