用于高性能SaaS应用的一体化启动套件。
部署此模板时,步骤顺序很重要。请按以下顺序操作以正常运行。
Vercel部署将在您的GitHub账户上创建一个包含此模板的新仓库,并指导您创建新的Supabase项目。Supabase Vercel部署集成将设置必要的Supabase环境变量,并运行SQL迁移以在您的账户上设置数据库架构。您可以在项目的表格编辑器中检查创建的表。
如果自动设置失败,请创建Supabase账户,并在需要时创建新项目。在您的项目中,导航至SQL编辑器并从快速启动部分选择"Stripe订阅"启动模板。
按照此指南设置GitHub的OAuth应用,并配置Supabase使用它作为身份验证提供者。
在您的Supabase项目中,导航至auth > URL配置并设置您的主要生产URL(例如https://your-deployment-url.vercel.app)作为网站URL。
接下来,在您的Vercel部署设置中,添加一个名为NEXT_PUBLIC_SITE_URL
的新生产环境变量,并将其设置为相同的URL。请确保取消选择预览和开发环境,以确保预览分支和本地开发正常工作。
如果您通过上面的"部署到Vercel"按钮部署了此模板,可以跳过此步骤。Supabase Vercel集成将为您设置重定向通配符。您可以通过访问Supabase的身份验证设置来检查,您应该在"重定向URL"下看到一个重定向列表。
否则,为了使身份验证重定向(电子邮件确认、魔法 链接、OAuth提供者)在部署预览中正常工作,请导航至身份验证设置并将以下通配符URL添加到"重定向URL":https://*-username.vercel.app/**
。您可以在文档中阅读更多关于重定向通配符模式的信息。
如果您通过上面的"部署到Vercel"按钮部署了此模板,可以跳过此步骤。Supabase Vercel集成将为您运行数据库迁移。您可以通过访问Supabase项目的表格编辑器来检查,并确认有带有种子数据的表。
否则,导航至SQL编辑器,粘贴Supabase schema.sql
文件的内容,然后点击运行以初始化数据库。
如果您通过上面的"部署到Vercel"按钮部署了此模板,可以跳过此步骤。Supabase Vercel集成将为您设置环境变量。您可以通过访问Vercel项目设置并点击"环境变量"来检查,将会看到一个环境变量列表,旁边显示Supabase图标。
否则,导航至API设置并将它们粘贴到Vercel部署界面中。复制项目API密钥并粘贴到NEXT_PUBLIC_SUPABASE_ANON_KEY
和SUPABASE_SERVICE_ROLE_KEY
字段中,复制项目URL并粘贴到Vercel的NEXT_PUBLIC_SUPABASE_URL
中。
恭喜,这完成了Supabase的设置,即将完成!
接下来,我们需要配置Stripe来处理测试支付。如果您还没有Stripe账户,现在创建一个。
对于以下步骤,请确保打开"测试模式"开关。
我们需要在Stripe的开发者
部分创建一个webhook。如上面的架构图所示,这个webhook是连接Stripe和您的Vercel无服务器函数的部分。
/api/webhooks
作为端点URL。(例如https://your-deployment-url.vercel.app/api/webhooks
)选择事件
。选择所有事件
。签名密钥
,因为我们在下一步需要它(例如whsec_xxx
)(/!\注意不要复制webhook id we_xxxx)。NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
和STRIPE_SECRET_KEY
外,我们还需要将webhook密钥添加为STRIPE_WEBHOOK_SECRET
环境变量。为了使新设置的环境变量生效并使所有内容正确协同工作,我们需要在Vercel中重新部署我们的应用。在您的Vercel仪表板中,导航到部署,点击溢出菜单按钮并选择"重新部署"(不要启用"使用现有构建缓存"选项)。一旦Vercel重新构建并重新部署了您的应用,您就可以设置您的产品和价格了。
您的应用程序的webhook监听Stripe上的产品更新,并自动将它们传播到您的Supabase数据库。因此,在您的webhook监听器运行的情况下,您现在可以在Stripe仪表板中创建您的产品和定价信息。
Stripe Checkout目前支持在特定间隔内收取预定金额的定价。 尚不支持更复杂的计划(例如,不同的定价层或席位)。
例如,您可以创建具有不同定价层的商业模型,例如:
可选地,为了加快设置速度,我们添加了一个fixture文件,用于在您的Stripe账户中引导测试产品和定价数据。Stripe CLI fixtures
命令执行此JSON文件中定义的一系列API请求。只需运行stripe fixtures fixtures/stripe-fixtures.json
即可。
**重要提示:**确保您已正确配置Stripe webhook并使用所有必需的环境变量重新部署。
我知道,这确实需要完成很多步骤,但这是值得的。现在您已经准备好从客户那里赚取经常性收入了。🥳
如果您还没有这样做,请将您的Github仓库克隆到本地机器上。
确保您已安装pnpm,然后运行:
pnpm install
接下来,使用Vercel CLI链接您的项目:
pnpm dlx vercel login pnpm dlx vercel link
pnpm dlx
从注册表运行包,无需将其安装为依赖项。或者,您可以全局安装这些包,并省略pnpm dlx
部分。
如果您不打算使用本地Supabase实例进行开发和测试,可以使用Vercel CLI下载开发环境变量:
pnpm dlx vercel env pull .env.local
运行此命令将在您的项目文件夹中创建一个新的.env.local
文件。出于安全考虑,您需要从Supabase仪表板(Settings > API
)手动设置SUPABASE_SERVICE_ROLE_KEY
。如果您不使用本地Supabase实例,还应该在package.json
中的supabase:generate-types
脚本中将--local
标志更改为--linked
或--project-id <string>
。(参见-> [https://supabase.com/docs/reference/cli/supabase-gen-types-typescript])
强烈建议使用本地Supabase实例进行开发和测试。我们在package.json
中提供了一组自定义命令。
首先,您需要安装Docker。您还应该复制或重命名:
.env.local.example
-> .env.local
.env.example
-> .env
接下来,运行以下命令来启动本地 Supabase 实例并执行迁移以设置数据库架构:pnpm supabase:start
终端输出将为您提供访问 Supabase 堆栈中不同服务的 URL。Supabase Studio 是您可以对本地数据库实例进行更改的地方。
复制 service_role_key
的值,并将其粘贴为 .env.local
文件中 SUPABASE_SERVICE_ROLE_KEY
的值。
您可以随时使用以下命令打印出这些 URL:
pnpm supabase:status
要将本地 Supabase 实例链接到您的项目,请运行以下命令,导航到您上面创建的 Supabase 项目,并输入您的数据库密码。
pnpm supabase:link
如果您需要重置数据库密码,请前往您的数据库设置并点击"重置数据库密码",这次请将其复制到密码管理器中!😄
🚧 警告:这将我们的本地开发实例链接到我们用于"生产"的项目。目前,它只包含测试记录,但一旦包含客户数据,我们建议使用分支或手动创建单独的"预览"或"测试"环境,以确保您的客户数据不会在本地使用,并且可以在部署到"生产"环境之前彻底测试架构更改/迁移。
一旦您链接了项目,您可以使用以下命令从远程数据库拉取任何架构更改:
pnpm supabase:pull
您可以使用以下命令用远程数据库中添加的任何数据为本地数据库填充种子数据:
pnpm supabase:generate-seed pnpm supabase:reset
🚧 警告:这是从"生产"数据库填充种子数据。目前,这只包含测试数据,但一旦包含真实客户数据,我们建议使用分支或手动设置"预览"或"测试"环境。
您可以在本地 Supabase Studio 中对数据库架构进行更改,并运行以下命令生成与您的架构匹配的 TypeScript 类型:
pnpm supabase:generate-types
您还可以使用以下命令自动生成包含您对本地数据库架构所做所有更改的迁移文件:
pnpm supabase:generate-migration
并使用以下命令将这些更改推送到远程数据库:
pnpm supabase:push
请记住在部署到"生产"环境之前,在"本地"和"测试"或"预览"环境中彻底测试您的更改!
pnpm stripe:login
这将打印一个 URL,供您在浏览器中导航并访问您的 Stripe 账户。
接下来,启动本地 webhook 转发:
pnpm stripe:listen
运行这个 Stripe 命令将在控制台打印一个 webhook 密钥(如 whsec_***
)。在您的 .env.local
文件中将 STRIPE_WEBHOOK_SECRET
设置为这个值。如果您还没有设置,也应该使用 Stripe 仪表板中的测试模式(!)密钥在 .env.local
文件中设置 NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
和 STRIPE_SECRET_KEY
。
在另一个终端中,运行以下命令启动开发服务器:
pnpm dev
请注意,webhook 转发和开发服务器必须在两个独立的终端中同时运行,应用程序才能正常工作。
最后,在浏览器中导航到 http://localhost:3000 查看渲染的应用程序。
在上线之前,归档所有测试模式的 Stripe 产品。在创建生产模式产品之前,请确保按照以下步骤设置生产模式环境变量和 webhooks。
要在生产模 式下运行项目并使用 Stripe 处理付款,请将 Stripe 从"测试模式"切换到"生产模式"。您的 Stripe API 密钥在生产模式下会有所不同,您还需要创建一个单独的生产模式 webhook。复制这些值并将它们粘贴到 Vercel 中,替换测试模式的值。
之后,您需要重新构建生产部署以使更改生效。在项目仪表板中,导航到"部署"选项卡,选择最近的部署,点击溢出菜单按钮(在"访问"按钮旁边),然后选择"重新部署"(不要启用"使用现有构建缓存"选项)。
要验证您是否在生产模式下运行,请使用 Stripe 测试卡 测试结账。测试卡不应该能够使用。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号