在自媒体时代,持续输出高质量内容需要耗费大量时间——从选题、搜集素材、撰写、排版到发布,每一步都是人工投入。而 TrendPublish 正是为了解决这一痛点而生的:一款面向微信公众号的全自动 AI 内容生成与发布系统,目前已获得 3,000+ GitHub Stars。
本文将从项目介绍、核心特性到 Docker 部署,带你快速上手 TrendPublish。

🧭 项目简介
TrendPublish(仓库:liyown/ai-trend-publish)是一个基于 TypeScript 构建的全自动选题与发布流水线。它从多源数据抓取内容,利用 AI 完成选题聚类、证据补全、排序、标题与正文生成、质量审稿、排版和配图,最终产出可直接预览的 dry-run 产物或创建微信公众号草稿。
核心目标不是「自动生成一篇文章」,而是稳定地生产更值得发布的文章:每次运行都有步骤记录、错误解释、质量报告、HTML/JSON/图片产物,方便你判断今天是否适合发、为什么值得发、哪里需要人工介入。
⭐ 核心特点
- 文章质量优先:内置选题聚类、编辑决策、文章计划、质量审稿和定向修订机制
- 多源内容发现:支持网页、RSS/RSSHub、FireCrawl、Jina、Brave、Tavily、Exa、Serper、NewsAPI、GDELT、Hacker News、arXiv、Twitter/X 等
- 证据链与补充搜索:搜索型数据源可补全上下文,选题依据和风险写入产物
- 微信友好渲染:多套公众号模板(minimal、longform、product、darktech、dynamic 等),内置微信兼容清洗
- AI 配图:支持阿里云 DashScope 和 MiniMax 图片生成,用于封面和正文配图
- 可观察工作流:Dashboard 可视化步骤时间线、错误解释、质量报告
- 多公众号矩阵:relay 代理多个公众号,Dashboard 管理账号定位、受众、语气
- 多部署方式:本地 / Docker / Cloudflare(Worker + Workflows + D1/KV/R2)
🐳 Docker 部署教程
一、准备环境
1. 安装 Docker
curl -fsSL https://get.docker.com | sh
2. 安装 Compose 插件
apt update
apt install docker-compose-plugin -y
验证安装:
docker compose version

二、创建项目目录
mkdir -p /opt/trendpublish
cd /opt/trendpublish
mkdir -p config data logs
三、编写 docker-compose.yml
在 /opt/trendpublish/ 目录下创建 docker-compose.yml:
services:
publish:
image: ghcr.io/liyown/ai-trend-publish:latest
container_name: trendpublish
restart: unless-stopped
ports:
- "8000:8000"
environment:
TZ: Asia/Shanghai
# 系统鉴权
SERVER_API_KEY: your_server_api_key
# AI 模型配置
AI_API_KEY: your_ai_api_key
AI_BASE_URL: https://api.deepseek.com/v1
AI_MODEL: deepseek-chat
volumes:
# 配置文件
- ./config:/app/config
# SQLite / 运行数据(关键)
- ./data:/app/src/temp
# 日志
- ./logs:/app/logs
networks:
- web
networks:
web:
external: true
这里使用了名为 web 的外部 Docker 网络。如果你还没有创建,先执行:
docker network create web
四、初始化配置文件
下载官方示例配置模板:
curl -L -o config/trendpublish.config.ts \
https://raw.githubusercontent.com/liyown/ai-trend-publish/main/trendpublish.config.docker.example.ts
下载后需要根据你的实际情况修改配置文件中的 server.apiKey、providers.ai 等参数。更多配置说明请参考 官方文档。
五、初始化目录权限(重要)
避免 SQLite 数据库写入失败:
chmod -R 777 data logs config
六、启动服务
docker compose up -d
查看容器状态:
docker ps
查看实时日志:
docker logs -f trendpublish
七、访问服务
http://服务器IP:8000
🔌 API 调用方式
1. 健康检查
curl http://127.0.0.1:8000
2. 触发工作流
curl -X POST http://127.0.0.1:8000/api/workflow \
-H "Authorization: Bearer your_server_api_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"triggerWorkflow",
"params":{
"workflowType":"weixin-article-workflow",
"dryRun":true
},
"id":1
}'
将 dryRun 设为 false 即可正式发布到微信公众号。
📁 标准目录结构
trendpublish/
├── docker-compose.yml
├── config/
│ └── trendpublish.config.ts
├── data/
│ └── trendpublish.sqlite3
└── logs/
⚠️ 常见问题
❌ SQLite 报错 14
原因:data 目录不存在或权限不足。
解决:
chmod -R 777 data
❌ config 找不到
确保 config/trendpublish.config.ts 文件存在,且内容格式正确。
❌ API 无法访问
逐一检查:
SERVER_API_KEY是否已配置- 端口映射是否正确(host:container = 8000:8000)
- 容器是否成功启动(
docker ps确认状态为 Up)
💡 核心总结
TrendPublish 的 Docker 部署只需确保三件事:
- 配置文件存在且正确
- data 目录可写(SQLite 运行关键)
- 环境变量完整(AI Key + Server Key)
项目地址:github.com/liyown/ai-trend-publish
官方文档:liyown.github.io/ai-trend-publish
许可证:MIT
0 条评论