内容
# Notipo
**开源的WordPress发布工具,适用于作家、开发者和AI代理。**
使用干净的Markdown编辑器,从Notion同步,或调用REST API / CLI / MCP服务器 — Notipo处理整个流程:Markdown转换为Gutenberg,图片托管在WordPress媒体库中,AI或Unsplash生成的特色图片,以及在发布时自动应用Rank Math / Yoast / SEOPress / AIOSEO元数据。
[](LICENSE)
[](https://www.npmjs.com/package/notipo)
[](https://notipo.com)
[](https://notipo.com/docs/api/mcp)
---
## 三种发布到WordPress的方式
### 1. 内置的Markdown编辑器
无干扰的编辑器,带有工具栏快捷键,斜杠命令,拖拽图片和一键发布。不需要Notion。
### 2. 从Notion发布
连接Notion,将页面状态更改为`发布到WordPress`或`发布`,Notipo处理其余部分 — Markdown提取,图片缓存到WP媒体库,特色图片生成,通过Rank Math / Yoast / SEOPress / AIOSEO进行SEO元数据设置。
### 3. 从AI代理,REST API,CLI或n8n工作流发布
Notipo公开了一个**模型上下文协议(MCP)服务器**,带有13种工具用于AI代理,以及REST API和CLI。Claude Desktop,Cursor,Windsurf,Claude Code,ChatGPT — 任何MCP兼容的代理都可以端到端发布帖子。
```bash
# CLI:端到端发布帖子
npm install -g notipo
notipo posts create --title "为什么每个开发者都应该有博客" --publish
# REST API:一次调用运行整个流程
curl -X POST https://notipo.com/api/posts/create \
-H "X-API-Key: $NOTIPO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"你好","body":"## 介绍\n\nMarkdown输入,WordPress输出.","publish":true}'
```
```jsonc
// MCP:放入Claude Desktop配置
{
"mcpServers": {
"notipo": {
"type": "http",
"url": "https://notipo.com/api/mcp",
"headers": { "x-api-key": "your-api-key" }
}
}
}
```
参见 **[notipo.com/ai-agents](https://notipo.com/ai-agents)** 以获取完整的AI代理集成故事。
---
## 托管SaaS与自托管
**[notipo.com](https://notipo.com)上的托管版本** 是受支持的、包含所有功能的产品 — 管理基础设施、自动升级、即时Notion webhook交付,以及一个免费层,包含每月5篇帖子。Pro计划为19美元/月,包含无限帖子发布和AI生成的特色图片。
此仓库是与托管产品相同的代码。**您可以自托管**,在AGPL-3.0许可证下 — 参见 [DEVELOPMENT.md](DEVELOPMENT.md) 以获取本地开发故事,[docker-compose.yml](docker-compose.yml) 以获取使用Traefik + Let's Encrypt的生产部署。
自托管不受支持 — 除了此仓库中提供的内容外,没有其他帮助,也没有升级路径。如果您需要这些,[托管产品](https://notipo.com) 更快、更便宜、已经运行。
---
## 技术栈
- **后端:** Fastify,TypeScript,Prisma,PostgreSQL 17
- **作业队列:** [pg-boss](https://github.com/timgit/pg-boss) (Postgres支持,无Redis)
- **前端(管理):** Next.js 16 + BlockNote编辑器 + shadcn/ui + Tailwind
- **AI:** Google Gemini(特色图片),[模型上下文协议](https://modelcontextprotocol.io) (代理集成)
- **其他:** Sharp(图片),Stripe(计费),Resend(事务邮件),Sentry(错误),PostHog(产品分析),Notion SDK,WordPress REST API
- **CLI:** 零依赖npm包,原生fetch
单体仓库(Turborepo + npm工作区):
```
apps/
api/ — Fastify后端,MCP服务器,作业工作器
web/ — Next.js管理UI
packages/
cli/ — `notipo` npm包(MIT许可的薄客户端)
shared/ — TypeScript类型和枚举
plugins/
notipo-seo/ — WordPress插件,用于Yoast/AIOSEO元数据桥接
```
---
## 快速开始(自托管)
您需要:Docker,Docker Compose,一个指向您服务器的域名,一个Notion集成,以及一个启用了[应用密码](https://wordpress.org/documentation/article/application-passwords/) 的WordPress站点(WP 5.6+)。
```bash
git clone https://github.com/kfuras/notipo-app.git
cd notipo-app
cp apps/api/.env.example .env
# 编辑.env — 至少设置DATABASE_URL,ENCRYPTION_KEY,API_KEY,
# DOMAIN,ACME_EMAIL,RESEND_API_KEY
docker compose up -d
```
Compose堆栈从`ghcr.io/kfuras/notipo-api`和`ghcr.io/kfuras/notipo-web`拉取多架构镜像(`linux/amd64` + `linux/arm64`),因此它适用于x86服务器和Apple Silicon / ARM硬件。
Compose堆栈启动Traefik + API + 管理UI + Postgres,并在第一次运行启用Let's Encrypt TLS。有关详细信息,请参见 [docker-compose.yml](docker-compose.yml)。
对于不使用Docker的本地开发:
```bash
docker compose -f docker-compose.dev.yml up # 仅Postgres
npm install
npm run migrate -w @notipo/api
turbo dev # API在:3000,web在:3001
```
参见 [DEVELOPMENT.md](DEVELOPMENT.md) 以获取完整的开发指南。
---
## 文档
- **API参考:** [notipo.com/docs/api/introduction](https://notipo.com/docs/api/introduction)
- **MCP服务器(13种工具):** [notipo.com/docs/api/mcp](https://notipo.com/docs/api/mcp)
- **CLI:** [notipo.com/docs/api/cli](https://notipo.com/docs/api/cli)
- **n8n集成:** [notipo.com/docs/api/n8n](https://notipo.com/docs/api/n8n)
- **所有文档:** [notipo.com/docs](https://notipo.com/docs)
- **架构与开发:** [DEVELOPMENT.md](DEVELOPMENT.md) 和 [.claude/CLAUDE.md](.claude/CLAUDE.md)
---
## 许可证
该项目在 **GNU Affero通用公共许可证v3.0** (AGPL-3.0)下获得许可 — 参见 [LICENSE](LICENSE)。
用白话来说:
- ✅ 您可以使用、修改和自托管Notipo以用于任何目的,包括商业目的。
- ✅ 您可以分叉它并贡献更改。
- ⚠️ 如果您将修改后的版本作为托管服务运行,则必须在相同的许可证下发布您的修改。这是“Affero条款” — 它关闭了普通GPL留下的网络服务漏洞。
- ✅ `notipo` CLI包在npm上以MIT许可证发布(它只是一个薄的API客户端包装器)。
- ✅ `notipo-seo` WordPress插件在MIT许可证下发布(与WordPress的GPL生态系统兼容)。
如果您想在具有AGPL义务的专有托管产品中使用Notipo的代码,[打开一个问题](https://github.com/kfuras/notipo-app/issues/new) — 商业许可可能可用。
---
## 贡献
欢迎PR。参见 [CONTRIBUTING.md](CONTRIBUTING.md) 以获取指南, [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 以获取社区标准。
有关安全披露,参见 [SECURITY.md](SECURITY.md) — 请不要为漏洞打开公共问题。
---
## 链接
- **托管SaaS:** [notipo.com](https://notipo.com)
- **AI代理:** [notipo.com/ai-agents](https://notipo.com/ai-agents)
- **博客:** [notipo.com/blog](https://notipo.com/blog)
- **Twitter/X:** [@kjetilfuras](https://x.com/kjetilfuras)