在 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 中添加 USERNAME
和 PASSWORD
环境变量以及所需的值。
演示
您可以在 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.