开源、轻量级的 Trello 替代方案,专为创客与独立开发者设计。
专注于简洁、快速和可扩展性。 采用现代技术栈构建:Tailwind CSS、shadcn/ui、Supabase、Stripe 集成。 支持无限项目、团队协作、深色/浅色模式和流畅的用户体验。 非常适合希望拥有完全控制权、避免不必要复杂性的个人开发者和小团队。
🌟 如果你觉得这个项目有用,请为它点个 star!这也有助于让更多人发现它。
部署指南
概述
本应用现已使用本地 Next.js API 路由替代 Supabase Edge Functions 进行 Stripe 集成。这样部署更简单,并允许你使用标准 .env 文件进行配置。环境变量设置
1. 创建 .env.local 文件
将.env.example 复制为 .env.local 并填写你的实际值:cp .env.example .env.local
2. 必需的环境变量
#### Supabase 配置
NEXT_PUBLIC_SUPABASE_URL- 你的 Supabase 项目 URLNEXT_PUBLIC_SUPABASE_ANON_KEY- 你的 Supabase 匿名密钥SUPABASE_SERVICE_ROLE_KEY- 你的 Supabase 服务角色密钥(仅服务器端)
STRIPE_SECRET_KEY- 你的 Stripe 秘密密钥(仅服务器端)NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY- 你的 Stripe 可发布密钥STRIPE_WEBHOOK_SECRET- 你的 Stripe Webhook 密钥
NEXT_PUBLIC_SITE_URL- 你的站点 URL(用于生产环境)NEXTAUTH_URL- 你的站点 URL(同上)NEXTAUTH_SECRET- NextAuth 的随机密钥
本地开发
- 安装依赖:
npm install
- 在
.env.local中设置你的环境变量 - 运行开发服务器:
npm run dev
- 使用 Stripe CLI 在本地测试 Stripe webhook:
stripe listen --forward-to localhost:3000/api/stripe/webhook生产部署
Vercel 部署
- 部署到 Vercel:
npx vercel
- 环境变量:
- Stripe Webhook 设置:
- 将 webhook 指向:
https://your-domain.vercel.app/api/stripe/webhook
API 端点
应用程序现在使用以下本地 API 路由:
POST /api/stripe/checkout- 创建 Stripe 结账会话POST /api/stripe/webhook- 处理 Stripe webhook 事件
本地 API 路由的优势
- 部署更简单 - 无需部署单独的边缘函数
- 环境变量 - 支持标准的 .env 文件
- 更好调试 - 本地调试更容易
- 框架集成 - 与 Next.js 集成更好
- 无供应商锁定 - 可部署到任何支持 Next.js 的平台
故障排除
- Webhook 问题:
- 确保
STRIPE_WEBHOOK_SECRET与您的 Stripe webhook 端点匹配 - 检查 Stripe 控制台中的 webhook 日志
- 验证 webhook URL 是否正确
- 环境变量:
- 确保所有必需的变量已设置
- 检查变量名是否有拼写错误
- 验证 Supabase 服务角色密钥是否具有适当权限
- CORS 问题:
- API 路由包含正确的 CORS 头
- 如有需要,确保您的域名已被列入白名单
安全说明
- 切勿向客户端暴露
STRIPE_SECRET_KEY或SUPABASE_SERVICE_ROLE_KEY - 仅对客户端变量使用
NEXT_PUBLIC_前缀 - 定期更换您的 webhook 密钥
- 在 Stripe 控制台监控 webhook 投递情况