公司动态

Chirpy自托管完全教程:如何在自己的服务器上部署一个Disqus替代品

📅 2026/8/27 17:20:20
Chirpy自托管完全教程:如何在自己的服务器上部署一个Disqus替代品
Chirpy自托管完全教程如何在自己的服务器上部署一个Disqus替代品【免费下载链接】chirpy A privacy-friendly and customizable Disqus (comment system) alternate. 注重隐私保护和定制化的评论系统。项目地址: https://gitcode.com/gh_mirrors/ch/chirpyChirpy 是一个注重隐私保护和高度可定制的 Disqus 替代品评论系统基于 Next.js tRPC Prisma 构建支持富文本评论、实时通知、垃圾评论拦截和数据分析。本教程将手把手教你完成 Chirpy 自托管部署在自己的服务器上搭建一套完全可控的评论系统让评论数据、用户隐私都掌握在自己手中。一、为什么选择 Chirpy 自托管维度云托管版自托管版基础设施官方托管运维自己安装、部署、维护数据归属官方服务器完全在自己的服务器功能差异无与云版本完全相同适合人群快速上手注重数据主权的站长、开发者自托管版与官方云版本是同一个产品区别只在于你需要自己负责安装和运维。官方自托管说明文档位于 self-hosted.mdx项目采用 pnpm workspaces Turbo 的 monorepo 架构主要代码目录如下主应用Next.jsapps/main/评论组件引导脚本apps/bootstrapper/Service WorkerWeb 推送apps/service-worker/数据库模型与 tRPC 接口packages/trpc/二、部署前环境准备在服务器上准备好以下三样东西即可Node.js 18与pnpm项目使用 pnpm workspaces 管理多个子包PostgreSQL 数据库Chirpy 使用 Prisma ORM官方提供现成的 Docker Compose 配置一个已备案/可解析的域名评论组件要求嵌入页面的域名与项目域名完全一致三、克隆仓库并初始化克隆 Chirpy 代码到服务器git clone https://gitcode.com/gh_mirrors/ch/chirpy cd chirpy安装依赖并执行 bootstrap 构建该命令会构建评论引导脚本、Service Worker并生成 Prisma 客户端pnpm install pnpm run bootstrap四、启动 PostgreSQL 数据库项目自带数据库编排文件packages/trpc/docker-compose.ymlpostgres:14-alpine 镜像数据挂载到本地目录。在项目根目录执行docker compose -f packages/trpc/docker-compose.yml up -d启动后可在packages/trpc/postgres目录看到数据卷。数据库默认连接串为postgres://postgres:postgreslocalhost:5432/postgres请根据安全要求修改账号密码。数据库迁移文件位于packages/trpc/prisma/migrations/Prisma 会依据packages/trpc/prisma/schema.prisma自动管理表结构。五、配置环境变量项目提供了环境变量模板apps/main/.env.tmpl参考它创建配置文件。关键变量说明变量是否必填说明NEXT_PUBLIC_APP_URL✅你的站点访问地址如https://chirpy.example.comNEXTAUTH_URL✅与 APP_URL 保持一致GITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET✅GitHub OAuth 应用凭据用户登录用NEXT_PUBLIC_VAPID/PRIVATE_VAPID✅Web 推送密钥可用node ./node_modules/web-push/src/cli.js generate-vapid-keys生成EMAIL_API_KEY⭕ 可选配置后启用邮件通知GOOGLE_CLIENT_ID/TWITTER_*⭕ 可选更多社交登录方式另外还需在部署平台的数据库配置中设置 Prisma 的DATABASE_URL指向第四步启动的 PostgreSQL。六、构建与运行# 本地开发模式端口 3000 pnpm run dev # 生产构建 启动 pnpm run build pnpm run start浏览器访问http://服务器IP:3000能看到登录页即部署成功。⚠️ 生产环境建议用 Nginx/Caddy 做反向代理并配置 HTTPS——评论系统涉及用户会话明文 HTTP 会导致登录异常。七、创建项目并嵌入评论组件部署完成后在后台 Dashboard 点击Create project填写名称和你的博客域名例如blog.example.com即可创建项目。随后点击项目卡片上的Integrate按钮按照集成向导操作在博客页面的 HTML 中引入 bootstrapper 脚本bootstrapper.js源码见apps/bootstrapper/并给评论容器元素加上data-chirpy-comment属性。脚本源码逻辑位于apps/bootstrapper/src/index.ts。⚠️ 注意只能将组件嵌入创建项目时填写的完全一致的域名页面a.example.com与example.com不互通。八、绑定自定义域名如果你的域名托管在 Vercel按如下界面在 DNS 管理页添加 A 记录/CNAME 记录指向你的部署地址DNS 生效后NEXT_PUBLIC_APP_URL指向的域名即可访问整套自托管评论系统。九、上线后的进阶玩法部署只是起点Chirpy 的以下能力都可以直接用评论数据分析访问量、来源、设备、趋势等图表面板代码位于packages/analytics/src/主题定制评论组件颜色、字体、明暗模式均可在后台调整可参考 theme.mdx邮件 Web Push 双通道通知新回复实时推送到访客浏览器反垃圾/反毒评论内置 TensorFlow 模型做毒性内容识别见apps/main/src/pages/api/content-classifier/✍️富文本 Markdown 快捷语法评论编辑器基于 tiptap十、常见问题速查Q1启动报错找不到 bootstrapper.js先确认执行过pnpm run bootstrap该命令会构建apps/bootstrapper与apps/service-worker两个子包。Q2评论组件不显示99% 是域名不匹配——请核对后台项目填写的域名与页面实际域名完全一致含/不含 www。Q3定时任务在哪里apps/main/vercel.json中定义了每天执行的用量统计 cron/api/cron/usage自托管时需自行配置等价的定时触发器。Q4如何升级版本重新 clone 后执行pnpm install pnpm run bootstrap pnpm run buildPrisma 会按packages/trpc/prisma/migrations/中的迁移文件自动演进数据库结构。至此你已拥有了一套数据完全归自己所有、功能与官方云版本一致的Chirpy 自托管评论系统。把评论、数据、隐私都握在自己手里正是自托管最大的价值。【免费下载链接】chirpy A privacy-friendly and customizable Disqus (comment system) alternate. 注重隐私保护和定制化的评论系统。项目地址: https://gitcode.com/gh_mirrors/ch/chirpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考