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) ![License](https://img.shields.io/badge/license-AGPL%20v3-2b7489) ![Stars](https://img.shields.io/github/stars/sitepins/sitepins?style=social) ![Sitepins 基于 Git 的 headless CMS 仪表盘](https://sitepins.com/images/sitepins-dark.png)
## 目录 - [为什么选择 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 的工作原理 how-sitepins-works-visual-diagram 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代理, 内容管理系统, 可视化编辑器, 自动化攻击, 请求拦截, 静态网站