自托管手动设置
1. 选择一个Git提供商、数据库适配器和认证提供商
您需要选择一个Git提供商、数据库适配器和认证提供商。您可以使用我们创建的任何提供商,或者您可以创建自己的。在下面的示例中,我们将使用GitHub、Vercel KV和TinaCMS Auth.js提供商。
如果您需要的Git提供商、数据库适配器或认证提供商不可用,您可以选择创建自己的。有关此过程的帮助,请参阅自托管解决方案的文档,其中提供了详细的指导。
2. 安装依赖项
安装您选择的git提供商、数据库适配器和认证提供商的任何依赖项(这可能会根据您的选择而有所不同)
3. 创建一个数据库文件
在项目的tina文件夹中创建一个名为database.{js,ts}的文件。此文件将用于创建数据库。
tina/database.{ts,js}
4. 托管TinaCMS后端
您将需要一个后端端点来托管GraphQL和认证API端点。
在此示例中,我们将展示如何在Vercel上托管GraphQL API。您可以使用任何您想要的托管提供商(代码可能需要根据您选择的框架进行调整)。
更多信息请参见后端托管
在Next.js之外托管
上面的示例是一个Next.js API路由,但TinaNodeBackend本身并不依赖于Next。它是一个简单的Node (req, res)处理器,期望一个已解析的req.body,因此任何能够提供该对的东西都可以为其服务。
它不能直接挂载在一个签名为web Request / Response API的路由中,这是Astro的APIRoute和SvelteKit的+server.ts提供的。两种形状可以替代:
- 将其挂载在Node服务器中。 可以构建为Connect/Express中间件的框架,例如Astro通过
@astrojs/node在mode: 'middleware'中,让一个服务器使用TinaNodeBackend处理/api/tina/*,并将其他所有内容传递给框架。将body解析器限定在该路径上,app.use('/api/tina', express.json()):TinaNodeBackend需要填充req.body,但解析每个路由会消耗框架需要用于其自身表单提交的流。 - 将其作为独立的无服务器函数部署在您的站点旁边:Vercel Functions或Netlify Functions。tina-self-hosted-static-demo是一个将后端作为其自身函数的静态站点的工作示例。
5. 更新TinaCMS配置
更新TinaCMS配置以使用您在上一步中创建的GraphQL API。
现在您应该能够运行您的站点并使用TinaCMS编辑您的内容。有关如何自托管TinaCMS的更多信息,请参阅配置组件的文档。