基于 Next.js 16 + React 19 + Prisma + PostgreSQL 的现代社区系统
适合搭建兴趣社区、知识社区、会员论坛、品牌用户社区和内部讨论平台。
Rhex 是一套面向正式部署和长期维护的论坛/社区底座。项目当前基于 Next.js App Router、React 19、Prisma、PostgreSQL 和 Redis 构建,已经包含:
@用户 提及通知| 应用 | 说明 |
|---|---|
AI 助手 | 配置 AI 开关、模型接口、提示词、代理账号,并在帖子/评论中被 @ 后自动异步回复 |
RSS 抓取中心 | 支持 RSS/Atom 源管理、统一 worker 调度、Redis 队列快照、失败重试、日志追踪 |
五子棋 | 人机对战、免费次数、门票积分、AI 难度、胜利奖励 |
阴阳契 | 双选项积分挑战、税率配置、战绩统计 |
自助广告位 | 首页广告位购买、订单审核、广告展示 |
首页与社区导航
帖子详情
后台管理
站点设置
| 类别 | 技术 |
|---|---|
| 前端框架 | Next.js 16.2 + React 19 |
| UI / 样式 | Tailwind CSS 4.2、Base UI、Radix UI |
| 数据库 | PostgreSQL |
| ORM | Prisma |
| 缓存 / 队列 / 锁 | Redis + ioredis |
| 鉴权 | Session Cookie、GitHub OAuth、Google OAuth、Passkey |
| 内容渲染 | markdown-it、highlight.js、KaTeX、Mermaid |
| 文件处理 | 本地存储、S3/OSS 兼容对象存储、Jimp |
| 运行环境 | Node.js 20+ |
标准部署至少包含 4 个部分:
Web / API:Next.js 服务PostgreSQL:主数据库Redis:异步任务、消费锁、运行时队列Worker:统一后台进程,负责异步任务和 RSS 抓取如果你使用本地上传,还需要为 uploads/ 准备持久化存储。
cp .env.example .env
必填:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/bbs?schema=public"
SESSION_SECRET="replace-with-a-long-random-secret"
CAPTCHA_SECRET_KEY="replace-with-a-long-random-secret"
REDIS_URL="redis://127.0.0.1:6379"
如果 Redis 有密码或需要使用非 0 分库,可以二选一配置:
# 推荐:直接写进连接串
REDIS_URL="redis://:your-password@127.0.0.1:6379/2"
# 或者保持 REDIS_URL 不含认证信息,额外设置:
REDIS_PASSWORD="your-password"
REDIS_DB="2"
多程序共用同一个 Redis 时,建议设置不同的 REDIS_KEY_PREFIX;如果使用 Docker Compose 内置 Redis,REDIS_PASSWORD 也会自动启用 Redis requirepass。建议同时设置 SITE_URL / APP_URL。其他配置按需修改 .env.example 里的注释即可。
前置条件:Docker Engine / Docker Desktop、Docker Compose Plugin。直接拉镜像运行,不需要本地 docker build。
git clone https://github.com/lovedevpanda/Rhex.git
cd Rhex
cp .env.example .env
改完 .env 后启动:
docker compose up -d
完成后访问 http://localhost:3000。
docker compose pull
docker compose up -d --remove-orphans
备份:
docker compose --profile backup run --rm postgres-backup
tar -czf backups/rhex-files-$(date +%Y%m%d-%H%M%S).tar.gz uploads addons .env docker-compose.yml
前置条件:Node.js 20+、PostgreSQL 16+、Redis 6+、pnpm。
git clone https://github.com/lovedevpanda/Rhex.git
cd Rhex
pnpm install
cp .env.example .env
修改 .env 后启动:
pnpm run setup
pnpm run build
pnpm run start
另开进程启动 worker:
pnpm run worker
git pull
pnpm install --frozen-lockfile
NODE_ENV=production pnpm run setup
pnpm run build
构建完成后,按你的进程管理方式重启 pnpm run start 和 pnpm run worker。
pnpm run setup
pnpm run dev
默认种子管理员账号通常是:
adminChangeMe_123456首次登录后请立即修改密码。
| 命令 | 说明 |
|---|---|
pnpm run dev | 启动开发环境 |
pnpm run build | 构建生产包 |
pnpm run start | 启动生产 Web 服务 |
pnpm run start:prod | 构建并启动生产 Web 服务 |
pnpm run setup | 同步数据库结构并按需写入基础数据 |
pnpm run setup:prod | 以 NODE_ENV=production 执行 pnpm run setup |
pnpm run worker | 启动统一 worker(默认 NODE_ENV=production),处理后台任务、延迟任务、RSS 抓取、拍卖结算、AI 回复等所有异步消费 |
pnpm run worker:debug | 以更详细的堆栈信息启动 worker,方便排查 |
pnpm run prisma:generate | 生成 Prisma Client |
pnpm run prisma:push | 同步数据库结构 |
pnpm run prisma:seed | 执行种子脚本 |
pnpm run lint | 运行 ESLint |
/admin/admin?tab=users/admin?tab=posts/admin?tab=comments/admin?tab=structure/admin?tab=levels/admin?tab=badges/admin?tab=verifications/admin?tab=announcements/admin?tab=reports/admin?tab=logs/admin?tab=security/admin/apps/ai-reply/admin/apps/rss-harvest/admin/apps/gobang/admin/apps/yinyang-contract/admin/apps/self-serve-adsRhex/
├── src/
│ ├── app/ # 页面、路由、API Route
│ ├── components/ # UI 组件和页面组件
│ ├── db/ # Prisma 查询与数据访问层
│ ├── hooks/ # 前端复用 Hook
│ ├── lib/ # 业务服务、运行时、领域逻辑
│ └── types/ # TS 类型声明
├── prisma/
│ ├── migrations/ # 数据库迁移
│ ├── schema.prisma # Prisma 数据模型
│ └── seed.ts # 初始化种子脚本
├── Dockerfile
├── docker-compose.yml
├── .dockerignore
├── .env.example
├── scripts/ # setup、worker 等脚本
├── public/ # 静态资源
├── uploads/ # 本地上传目录
├── docs/ # 项目文档和截图
├── package.json
└── README.md
学 AI,上 L 站
本项目在 LINUX DO 社区发布与交流,感谢佬友们的支持与反馈。
欢迎提交 Issue 和 Pull Request。
推荐流程:
本项目基于 MIT License 开源。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务