sitepins/sitepins
GitHub: sitepins/sitepins
Sitepins 是一款基于 Git 的开源无头 CMS,能自动读取仓库内容结构并生成可视化编辑器,让非技术人员无需接触 Git 即可编辑静态网站内容。
Stars: 70 | Forks: 8
# Sitepins
**开源的、基于 Git 的 headless CMS,适用于使用 Astro、Hugo、Next.js 和 AI 网站构建器搭建的网站。**
连接你的 GitHub 或 GitLab 仓库并开始编辑。Sitepins 会读取你的内容结构并为你构建编辑器。无需定义 schema。无需编写配置文件。每次保存都是一次真正的 Git commit。
[**在线演示**](https://demo.sitepins.com) · [**开发者文档**](https://developer.sitepins.com/) · [**免费试用云版本**](https://sitepins.com/pricing?ref=github)



## 目录
- [为什么选择 Sitepins](#why-sitepins)
- [它的与众不同之处](#what-makes-sitepins-different)
- [工作原理](#how-sitepins-works)
- [适用人群](#who-sitepins-is-for)
- [不适用场景](#what-sitepins-is-not)
- [用 AI 构建器建好了网站?](#built-your-site-with-an-ai-builder)
- [功能](#key-features-of-sitepins)
- [支持的静态站点生成器](#supported-static-site-generators)
- [开始使用](#get-started-with-sitepins)
- [Sitepins 云版本](#sitepins-cloud-fastest)
- [自托管](#self-host-sitepins)
- [项目结构](#project-structure)
- [文档](#documentation)
- [贡献](#contributing)
- [许可证](#license)
## 为什么选择 Sitepins
静态网站速度快、安全性高且托管成本低。但对于非技术人员来说,管理其内容却是一件头疼的事。
你的营销团队中不应有人为了修改一个标题或替换一张图片,而需要使用 Git、Markdown 或代码编辑器。去年交付了网站的客户也不应如此。因此,他们会直接发消息找你。在你接触的每一个网站上,你成了每一次小修改的瓶颈。
Sitepins 在你已有的仓库之上提供了一个可视化编辑器。他们负责编辑内容,Sitepins 负责将其 commit 回 Git。你可以保留你的工作流、你的 pipeline 以及完整的版本历史记录。
## Sitepins 的与众不同之处
**自动检测 schema,无需手动配置。** 将 Sitepins 指向一个仓库。它会读取你的 Markdown 文件和 frontmatter,并根据现有内容构建编辑界面。大多数基于 Git 的 CMS 都要求你先描述每一个集合和字段。当你需要更精细的控制时,仍然可以打开 schema 编辑器,调整字段类型、标签、默认值和下拉菜单。
**每次保存都是一次 commit。** 内容作为普通文件保留在你的仓库中。没有任何内容会被复制到 Sitepins 数据库中。如果你明天停止使用 Sitepins,你的内容依然存放在它一直所在的地方,格式完全由你掌控。
**客户和团队成员无需 Git 账户即可编辑。** 通过电子邮件邀请任何人。他们登录后,在表单中进行编辑,然后点击保存。提交会通过你连接的 Git 账户进行。他们永远不需要接触 GitHub、pull request 或 merge 冲突。
## Sitepins 的工作原理
1. **连接你的仓库。** 在 GitHub 或 GitLab 上授权 Sitepins,然后选择一个仓库。
2. **可视化编辑。** Sitepins 读取你的内容文件并渲染出可视化编辑器。无需事先编写 schema 或配置。
3. **提交到 Git。** 每一次编辑都会成为你仓库中的一次普通 commit。你的网站将通过现有的 pipeline 重新构建。任何内容都不会脱离你的 Git 历史记录。
你的仓库始终是唯一的单一事实来源。Sitepins 永远不会将你的内容锁定在专有数据库中。
## Sitepins 的适用人群
- **机构和自由职业者**:将网站交付给永远不会打开代码编辑器的客户。
- **开发团队**:希望营销和内容人员修改错别字时不需要每次都发起 pull request。
- **开发者**:希望为自己的 Astro、Hugo 或 Next.js 网站提供一个简洁的编辑 UI。
- **半技术人员站长。** 你无需成为开发者即可使用 Sitepins。如果你能使用这些框架之一或 AI 构建器建立网站,你就可以连接它并进行编辑。
如果你的内容存在于 Git 仓库的 Markdown 文件中,Sitepins 就适合你。
## Sitepins 的不适用场景
在安装任何东西之前,有必要了解一下。
- **不是页面构建器。** Sitepins 仅管理现有布局中的内容。它不会更改设计、CSS 或页面结构。
- **不适用于数据库驱动的应用程序。** 如果你的内容来自外部 API 或数据库而不是 Git,那么这不是正确的工具。
- **不适用于不使用 Git 的团队。** 仓库是存储层。没有备用的后端。
## 用 AI 构建器建好了网站?
使用 Claude、Lovable、Replit 或 Bolt 构建的网站都可以与 Sitepins 配合使用,但需满足两个条件。项目必须托管在 GitHub 上,且内容必须存放在 Markdown 或 MDX 文件中。
在 AI 工具编写网站之前,先告诉它以这种方式构建内容。事后改造比一开始就提出要求要困难得多。之后,只需连接仓库并在 Sitepins 中编辑文案、标题和博客文章,而无需在每次修改语句时都消耗 token 来写 prompt。
## Sitepins 的核心功能
**编辑**
- 适用于 Markdown、MDX 和 frontmatter 的可视化编辑器。支持直接文件编辑 HTML、JSON、YAML、TOML、TS 和 JS。
- 在发布前于沙盒中进行实时预览。无需重新构建。
- 在本地保存为草稿,且不会触发构建。
- 丰富的内容块:Mermaid 图表、嵌入式 iframe、图表和外部图片 URL。
- 提供 shortcode 和自定义内容块以保持内容的一致性。
- 支持使用你自己的 OpenAI、Anthropic、Google 或 xAI API 密钥的 AI 助手。可指定精确的模型。
- 需要在代码层面操作时,可以直接编辑代码。
**Git 控制**
- 每一次更改都是一次 commit。完整的历史记录与完整的归属信息。
- 直接在 CMS 内部撤销并恢复以前的版本。无需去仓库中翻找。
- 无需离开 Sitepins 即可创建分支、发起 pull request 和进行合并。
**团队和客户**
- 邮件邀请。受邀编辑者无需 GitHub 或 GitLab 账户。
- 每个组织具有对应的角色和权限。
- 实时协作,支持显示光标、头像和名称标签。
**结构**
- 可视化的 schema 编辑器,用于设置字段类型、输入样式、默认值和必填字段。
- 适用于大型网站的嵌套集合。
- 文件夹管理以及使用 Cmd/Ctrl + K 的全局搜索。
- 媒体库支持拖放、重命名和重复使用。媒体文件存放在你的仓库中。
**发布**
- 一键 Vercel 部署。后续的每一次更改都会自动触发重新构建。
- 内置 SEO 工具:slug 编辑、SERP 预览、链接分析以及内容建议。
- 100+ 个预配置的 Astro、Hugo 和 Next.js 模板供你作为起点。
**多端通用**
- 支持 12 种母语:英语、中文、日语、德语、法语、西班牙语、葡萄牙语、俄语、韩语、印尼语、越南语和孟加拉语。
- 深色模式。
- 支持在手机和平板上运行。可以直接从手机上发布文章。
## 支持的静态站点生成器
Astro · Next.js · Hugo · TanStack Start · Nuxt · Svelte · Eleventy · Jekyll
## 开始使用 Sitepins
### Sitepins Cloud (最快捷)
跳过繁琐的设置。连接仓库,几分钟内即可开始编辑。
[**免费开始**](https://sitepins.com/pricing?ref=github)
### 自托管 Sitepins
由你自己运行整个系统。自托管版本没有套餐限制、无需付费,也没有使用限制。解锁所有功能。
**前置要求:** Node.js 22+,pnpm 11+,以及一个 MongoDB 实例。
```
pnpm install
# 配置两个 apps
cp api/.env.example api/.env
cp app/.env.example app/.env
```
填写每个 `.env` 文件。有关每个变量的作用以及如何获取它们,请参阅 [app/README.md](https://github.com/sitepins/sitepins/blob/main/app/README.md#environment-variables) 和 [api/README.md](https://github.com/sitepins/sitepins/blob/main/api/README.md#environment-variables)。其中一个通用的步骤是媒体存储,将在下文介绍。
```
# 同时运行 backend 和 frontend
pnpm dev
# 或者在两个 terminals 中单独运行
pnpm dev:api
pnpm dev:app
```
#### 使用 Docker 运行
通过一个 `docker-compose.yml` 文件即可同时启动 MongoDB、API 和 Web 应用。
```
cp api/.env.example api/.env
cp app/.env.example app/.env
docker compose up --build
```
Web 应用运行在 `http://localhost:3000`。API 运行在 `http://localhost:4000`,并在 `/healthz` 提供健康检查。MongoDB 在 `mongo` 服务中运行,因此你可以不设置 `MONGO_URI` 直接使用它。
## 项目结构
```
app/ # Next.js app, the CMS UI
api/ # Express + MongoDB backend: auth, orgs, projects, git providers
```
## 文档
- **完整文档:** [docs.sitepins.com](https://docs.sitepins.com)
- [app/README.md](https://github.com/sitepins/sitepins/blob/main/app/README.md):前端技术栈、文件夹结构、环境变量、脚本,以及 GitHub 和 GitLab 应用设置。
- [api/README.md](https://github.com/sitepins/sitepins/blob/main/api/README.md):后端技术栈、模块结构、环境变量、脚本、密钥生成及扩展点。
## 许可证
[GNU AGPLv3](https://github.com/sitepins/sitepins/blob/main/LICENSE)。可免费使用、修改和自托管。如果你将修改后的版本作为网络服务运行,你必须根据相同的许可证向你的用户提供修改后的源代码。
如果 Sitepins 为你省去了一轮内容编辑的繁琐,请 [**为该仓库加星**](https://github.com/sitepins/sitepins),以便让更多人发现它。
[官网](https://sitepins.com) · [文档](https://docs.sitepins.com) · [演示](https://demo.sitepins.com) · [Twitter](https://x.com/sitepinscms)
标签:Astro, Git, Headless CMS, MITM代理, 内容管理系统, 可视化编辑器, 自动化攻击, 请求拦截, 静态网站