在 Deno Deploy 上部署

如何设置 LumeCMS 以在 Deno Deploy 上使用它

Deno Deploy 是由 Deno 提供的分布式部署系统,允许在云端运行 Deno 代码。LumeCMS 可以在 Deno Deploy 上运行,但请记住以下限制:

  • 在 Deno Deploy 中,无法写入文件系统,因此您必须配置一个 GitHub 仓库来提交更改。
  • 出于同样的原因,无法实时预览更改。所有更改都会立即提交到 GitHub 仓库。

如果您想在提交前预览更改,建议使用 VPS。请参阅此处的说明

要求

您需要在 Deno Deploy 上拥有一个帐户,并在 GitHub 上拥有一个仓库来发送更改。

设置

配置您的 _cms.ts 文件以使用GitHub 作为存储方法,而不是文件系统:

import lumeCMS from "lume/cms/mod.ts";
import GitHub from "lume/cms/storage/github.ts";
import { Octokit } from "npm:octokit";

const cms = lumeCMS();

cms.storage(
  "src",
  new GitHub({
    client: new Octokit({ auth: Deno.env.get("GITHUB_TOKEN") }),
    owner: "username",
    repo: "example",
  }),
);

// 其余配置....
// Rest of the configuration....

export default cms;

Note

连接到 GitHub 仓库的 token 存储在 GITHUB_TOKEN 环境变量中。 The token to connect to the GitHub repository is stored in the GITHUB_TOKEN environment variable.

登录到 Deno Deploy 并创建一个新项目。将其连接到 GitHub 仓库,并将 _cms.ts 文件设置为入口点。在环境变量选项中,添加 GITHUB_TOKEN 变量以及访问 token。

使用用户名和密码保护

建议使用密码保护对 CMS 的访问。在您的 _cms.ts 文件中配置 auth 方法

const username = Deno.env.get("USERNAME");
const password = Deno.env.get("PASSWORD");

const cms = lumeCMS({
  auth: {
    method: "basic",
    users: {
      [username]: password,
    },
  },
});

在 Deno Deploy 中添加 USERNAMEPASSWORD 环境变量以及所需的值。

演示

您可以在 lume-cms-demo.deno.dev 上查看演示。

  • 用户名: admin
  • 密码: demo

在演示中,您可以编辑博客内容并上传文件。所有更改都将提交到仓库 oscarotero/test

此演示的远程仓库是 cms-demo

Note

在此演示中,我们有两个仓库: 一个用于 CMS另一个用于保存更改。但是您可以 使用单个仓库用于这两个目的。 In this demo we have two repositories: one for the CMS and other to save the changes. But you can use a single repository for both purposes.