一个基于 Turborepo 单体仓库架构构建的现代化、高性能论坛平台。
简体中文 | English
| 服务 | 技术 | 端口 | 说明 |
|---|---|---|---|
| web | Next.js 16 | 3100 | 前端应用 |
| api | Fastify | 7100 | 后端 API 服务 |
| postgres | PostgreSQL 16 | 5432 | 主数据库 |
| redis | Redis 7 | 6379 | 缓存服务 |
- Docker: Docker Engine 20.10+
- Docker Compose: 2.0+
- Node.js: 22+
# 运行交互式部署工具
# 前置提醒:请先安装 CLI 工具
# npm install -g nodebbs (或者使用 npx nodebbs)
# 详情: https://www.npmjs.com/nodebbs
npx nodebbs脚本支持三种环境选择:
- 标准生产环境 (2C4G+)
- 低配环境 (1C1G/1C2G)
- 基础环境 - 无资源限制
$ nodebbs
? 选择命令:
❯ start 启动服务
stop 停止服务
restart 重启服务
upgrade 升级服务
status 查看服务状态
logs 查看服务日志 [+]
shell 进入容器终端 [+]
db 数据库操作 (备份, 迁移, 种子数据等) [+]
pack 生成离线部署包
clean 清理 Docker 缓存和残留资源
help 显示帮助信息
❌ 退出
↑↓ navigate • ⏎ select更多命令和详细说明,请访问 NodeBBS 命令行项目主页: https://www.npmjs.com/nodebbs
|
论坛首页 - 话题列表、分类导航 |
话题详情 - Markdown 支持、评论互动 |
|
个人设置 - 资料编辑、头像上传 |
管理后台 - 数据统计、内容管理 |
|
注册设置 - 注册模式配置 |
OAuth 登录 - 第三方登录集成 |
- 框架: Fastify - 高性能 Node.js Web 框架
- 数据库: PostgreSQL 16 + Drizzle ORM
- 身份验证: JWT + OAuth2
- 缓存: Redis 7
- 邮件服务: Nodemailer
- API 文档: Swagger/OpenAPI
- 进程管理: PM2
- 框架: Next.js 16 (支持 Turbopack)
- UI 库: React 19
- 样式: Tailwind CSS 4
- 组件库: Radix UI
- 表单处理: React Hook Form
- Markdown: React Markdown (支持 GitHub 风格)
- 主题: next-themes (支持深色/浅色模式)
- 单体仓库: Turborepo
- 包管理器: pnpm 10+
- 环境变量: dotenvx
- 容器化: Docker + Docker Compose
- 反向代理: Nginx (生产环境)
- Node.js >= 22
- pnpm >= 10.0.0
- PostgreSQL
- Redis
# 1. 安装依赖
pnpm install
# 2. 配置环境变量
cd apps/api && cp .env.example .env
cd ../web && cp .env.example .env
# 3. 设置数据库
cd ../api
pnpm db:push
pnpm seed
# 4. 启动开发服务器
cd ../..
pnpm dev
# API: 7100 端口 | Web: 3100 端口欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个 Pull Request
MIT
如有问题:
- 在 GitHub 上提交 issue