一张照片跟拍爆款视频:开源 Cloudflare SaaS 模板(MaynorAI / ShrimpReel 系)
做「热词站」最烦的不是想法,是把整套上传照片 → 排队生成 → 付积分 → 管理后台从头搭一遍。
开源模板maynoraivideo(基于 ShrimpReel,MaynorAI 改进)就是冲着这件事来的:给每个爆款关键词开一个站——从模板建仓、改配置和文案素材,就能往 Cloudflare 上推。
示例应用仓(AI Rap Video):
https://github.com/xianyu110/maynoraivideo-ai-rap
通用模板仓:
https://github.com/xianyu110/maynoraivideo
X:https://x.com/MaynorAI1
在线预览(可选):
(预览域名已打码,需要可私信)
(图注:GitHub 示例仓 maynoraivideo-ai-rap)
(图注:GitHub 通用模板仓 maynoraivideo)
它解决什么
一句话:一张照片 → 按爆款视频模板跟拍出片,整站跑在 Cloudflare 上(Workers + D1 + R2 + KV + Queues + 限流 + Cron),不是 Vercel 单页玩具。
适合:
- 想跟着热词快速开垂直站的人
- 需要 Stripe 积分 / 订阅、Google 登录、后台运营的人
- 本地想先 mock 跑通,再接真实视频 API 的人
技术栈(够用就写清楚)
- 前端 / SSR:TanStack Start(React 19)+ Tailwind 4;英文
/,中文/zh - API:Hono
- 支付:Stripe Checkout + 积分(也支持其它 MoR;本地默认
mock) - 视频:默认走 TryAllAPI(OpenAI 兼容聚合);本地 / e2e 用
mock,不烧额度也能走完全流程
TryAllAPI 相关环境变量在 README 的 Quick start 里写得很直白:VIDEO_PROVIDER=tryallapi+TRYALLAPI_API_KEY。
开箱大致有什么
不止「能出片」,而是一整套小 SaaS:
- Google 登录(含 One Tap)、积分包 / 订阅、积分流水与用户后台
- 生成队列、失败退积分、退款回滚积分
- 管理端:用户 / 订单 / 生成任务 / 下架 / 联系表单 / 审计与报表
- 合规向:AI 生成标注、照片与成片定时清理、下架队列、上传审核与 Turnstile
- SEO:SSR、hreflang、JSON-LD、sitemap、guides 文章集合
更细的清单在仓库 README 和docs/里。
本地怎么起(极简)
npminstallcp.dev.vars.example .dev.vars# 至少设 SESSION_SECRETnpmrun seed:localnpmrun dev ----host127.0.0.1默认支付和视频都是mock:不扣款、不调真实模型,适合先把 UI 和链路跑通。接 Stripe 测试模式 + TryAllAPI key 后再换PAYMENT_PROVIDER/VIDEO_PROVIDER。
和「又一个模板」的差别
很多开源页只有 landing。这套更偏能上线收积分的整站:队列、退款、后台、邮件、备份、限流都在 Cloudflare 原语上。MaynorAI 在上游 ShrimpReel 上做了面向开源用户的 Stripe + TryAllAPI 接线与文档整理,方便直接 fork。
链接汇总
| 用途 | 地址 |
|---|---|
| AI Rap 示例仓(推荐先看) | https://github.com/xianyu110/maynoraivideo-ai-rap |
| 通用模板仓 | https://github.com/xianyu110/maynoraivideo |
| MaynorAI(X) | https://x.com/MaynorAI1 |
| 预览(Workers) | (预览域名已打码,需要可私信) |
Fork 之前记得:密钥只放.dev.vars/ Wrangler secrets,别写进wrangler.jsonc或 README。正式上线前用自己的 Stripe test + TryAllAPI key 走一遍真链路。