自建 Postiz,实现X自动发文
本文同步自 X:原帖
为什么做
刷到不少人在推 Postiz:开源排帖,能自建代码,嫌维护费劲的去买托管云。
我选择在已有 VPS 上自己改一版——控制权在手,后续能无缝接入 X Articles,而不是停留在“把登录页跑出来就算完事”。
做完的标准很硬核:官方 Compose 跑通、登录页可进、厘清 Articles 的媒体与带链计费边界。代发到底按不按,始终是人在做终审。
你将得到什么
- 官方主仓、Compose 仓库与自建文档入口
- 一套可直接交给 AI 的起栈步骤:clone → 配环境变量(脱敏)→
docker compose up - 自建部署必踩的三处细节:对外 URL、端口回环与冲突解决、关键服务内存限额
- Articles 核心边界:只收图、含 URL 帖计价口径、GIF 动图处理路径
- (已通过实测长文验证链路跑通;多角色拆解另行复盘,此处不赘述)
怎么做
Postiz 主仓是 gitroomhq/postiz-app(AGPL-3.0),开源自建免费,代价是自己扛服务器与维护成本。Compose 配置见 gitroomhq/postiz-docker-compose,官方轻量规格写着 2 vCPU / 2 GB 内存起步,但 Temporal 等组件偏吃资源,建议给更宽裕的规格并加上限额。
可直接丢给 AI 的最小起栈 Prompt:
目标:基于 Postiz 官方 Compose 在已有 VPS 起栈,打通登录页并接入 X Articles(不含绕过审核与外泄密钥)。
- 参考官方主仓与 compose 仓,按官方 Docker Compose 文档操作。
- clone compose 仓库,配置环境变量(JWT、数据库口令仅留存本地 secrets,勿贴入上下文),执行
docker compose up。- 常见三刀调整(功能意图):
- 将对外 URL(MAIN_URL/FRONTEND_URL/NEXT_PUBLIC_BACKEND_URL等)指向自建入口
- 宿主端口绑定本机回环,交由自建反代接入
- Temporal UI 默认 8080,若遇端口冲突则调整宿主映射
- 为 postiz、postgres、redis、temporal 等核心服务配置mem_limit- 确认容器状态 healthy,浏览器能顺利拉起登录/注册页(严禁破解或绕过)。
- 接入 X:严格走官方公开提供方指南,OAuth 凭证本地保管;知晓 X article 模式限制为“Articles take images only”。
踩坑预警写入清单:
- 限制容器内存,防止 Temporal 耗尽系统资源
- 端口冲突提前改映射
- X Articles 模式只支持静图(images only),不支持直接推视频
- X 自 2026-04-20 对含 URL 的发帖有差异化计费,Articles 链按实际口径对照,不轻下定论
- 安全版本请跟进 Release(如修复 PSA 的v2.25.3)
实际部署测试:对外 URL 绑好反代,改掉冲突端口,加好 mem_limit 启动后各容器 healthy,登录页顺利打通。对接 X 后,已跑通第一篇 Articles 深度长文(实测公开帖)。
起栈架构动图
避坑与边界说明
- 别当零维护小机器:轻量机型虽能拉起,但 Temporal 极吃内存,必须手动追加
mem_limit,防止容器把机器撑爆。 - 端口预先排查:Temporal UI 默认占用 8080,有冲突直接改映射,不要硬碰。
- Articles 媒体边界:文档白纸黑字写着 X article 模式“Articles take images only”。媒体库虽兼容多格式,但在此模式下不能直推视频。
- GIF 的实际表现:经由 API/Postiz 发 Articles 时动图可能被拒或压成静态,目前最稳妥的折中路径是进入 X 网页编辑器手动内嵌(此为实操经验,不作官方定论)。
- 带链计费口径:X 自 2026-04-20 调整了普通帖与含 URL 帖的计费叙述,Articles 正文外链计费口径建议根据后台用量自行核对,文档中的
STRIP_LINKS_FROM_X_POSTS可作配置参考。 - 紧跟安全版本:漏洞修复请紧跟官方 Release,及时跟进安全补丁(如官方声明的
v2.25.3)。
免责与安全底线:自建不承诺解决 X 开发者账号审核门槛;密钥、Token、内部拓扑与真实生产域名永远不应出现在截图与对外公开发言中。选择 AGPL 自建,就是用自行的运维投入换取完全的掌控感。