image

介绍

comit.sh 是一个 MIT 协议开源的自托管写作社区,作者 Travisun 把它定位成「技术人的个人主页」——长文和短动态住在同一条时间线上,带关注、评论、私信、徽章这些社交件,但数据全在你自己手里。【写了十几年博客的人大概都会心动:终于不是「发在别人家平台、哪天下架就全没了」的那种。】

技术栈是 Next.js 16(App Router + RSC)、React 19、TypeScript strict、Tailwind CSS v4、Drizzle ORM + PostgreSQL,队列用 pg-boss,内容管道是 unified + GFM + KaTeX + Shiki + Mermaid。写得蛮认真的一处是架构:core 层自建了服务容器、事件总线、队列门面、扩展点注册表,功能模块全以「扩展」形式挂在 extensions/ 下,思路明显借鉴了 Laravel。作者在公开发布前专门做了一轮安全审计——CSP 用 nonce + strict-dynamic 去掉了 unsafe-inline,出站请求有 SSRF 守卫,上传走 MIME 白名单加 sharp 转 WebP,还强制 2FA。项目很新,2026 年 9 月才开源,star 数还很少,但代码量和文档厚度不像玩具。

部署有几条路:全容器 compose、宝塔 nginx 反代复用宿主机 PG + Redis、或者裸进程多 worker 集群。生产环境有几条硬线:应用端口只能绑回环、公网必须经 nginx 或 CDN、TRUST_PROXY 要和真实拓扑对齐,否则限流能被伪造头绕过。这些坑作者都写进了 SECURITY.md,不用自己摸。

特征

📝 长文与短动态共用一条时间线,主页自动分流到动态 / 文章 / 收藏 / 合集
🧮 Markdown 渲染很全:GFM、KaTeX 公式、Shiki 高亮、Mermaid 图表与思维导图,公式图表是正文不是截图
🗂 一键导出 Markdown + 按日期归档的媒体 ZIP,内容随时打包带走
🤖 /api/mcp 支持用 Bearer 令牌让 AI 读写自己的内容,Webhook 走 HMAC-SHA256 签名投递
🌐 支持用户子域名、单用户 / 多用户双模式,RSS / Atom 覆盖主站和子域名
🔒 强制 2FA(TOTP + 恢复码)、Passkey / WebAuthn,GitHub / Google / X / Linux.do 等登录自动注册
🧩 扩展化架构,可挂通知频道、MCP 工具、侧边栏组件、队列作业和各种渲染钩子
🐳 三种部署形态:全容器 Compose、宝塔反代复用宿主机 PG + Redis、裸进程多 worker 集群

开源地址