前言
昨天突发奇想在「NodeSeek」上面发了一篇帖子(帖子链接),没想到第一篇就被设置为了「推荐阅读」。但是毕竟是我自己的博客而不是模板,所以并没有部署指南。惊喜之余,还是要写一篇关于如何部署我的博客的教程。部署很简单,这里我分成三个步骤,分别是:博客与动态部署 -> 评论系统 -> 短链系统。在最后,我会提供完整的 .env
文件。你也可以在 GitHub 仓库查看。
博客与动态部署
让我们先从最基础的开始吧!
准备工作
首先,你需要有一个 GitHub 账号以及一个 Telegram 账号,此部分不在教程范围内。
其次,你需要选择一个部署平台。我的项目属于 Astro SSR,需要适配器。具有官方适配器的平台有 Vercel、Netlify、Cloudflare 等等。你可以选择其中一个进行部署。如果你选择 Vercel 部署,那么你不需要对 astro.config.mjs
进行修改;如果你选择 Netlify 或者 Cloudflare ,请根据 Astro 文档更换相对应的适配器。
注意:Cloudflare Workers/Pages 运行在 Edge Runtime(V8 环境),并不具备完整的 Node.js API 支持。 由于本项目使用 Astro SSR 并依赖部分 Node API,直接部署到 Cloudflare 可能会导致构建或运行时报错(如 MessageChannel is not defined), 页面无法正常渲染甚至返回 404。 建议 使用 Vercel、Netlify 等具备完整 Node 运行时的平台部署。
最后,你需要一个公开的 Telegram 频道,在.env
中添加变量如下:
TELEGRAM_HOST=t.me# 自定义频道或标识符CHANNEL=your_channel_name
如果在本地运行开发者服务器时出现超时的情况,你可能需要配置代理,在.env
中添加变量如下:
# HTTP 代理 (具体端口请自行配置)HTTP_PROXY=http://127.0.0.1:7897
请注意,这在部署的时候是不需要的,仅在本地测试使用。
部署步骤
推送您的仓库到 GitHub 上,确定适配器正确后,前往您选择的部署平台(如 Vercel、Netlify 或 Cloudflare)部署即可。全程使用默认设置,不需要修改构建命令等等。
当然,记得添加你的环境变量!
评论系统
评论系统的配置也相当简单。因为是我自己写的,所以你也不需要额外部署其他项目的后端,只需要配置 LeanCloud 即可。
准备工作
前往 LeanCloud 注册账号(最好使用国际版),然后创建一个新的应用,使用开发版即可。
打开「结构化数据」,在下面添加这六个 Class (按道理来说,一个完全空白的应用是会自动添加的,您也可以选择先跳过这一步,如果遇到不存在 Class 的问题,再手动添加)。

推荐选项:添加 API 访问域名,减少被墙或限速的风险。
在「设置」 -> 「域名绑定」中添加您自己的域名(国内版这里需要备案,所以推荐国际版)。

点击「域名绑定」上面的「应用凭证」,记录这四行至对应的环境变量中。

在后端我们使用私钥访问,所以您可以手动设置 Class 的 ACL 权限为「限制所有」,这并不会影响评论服务(默认应该是限制写入,所以您并不能在后台直接修改)。
添加变量
在.env
中添加如下内容:
# LeanCloud 应用凭证 (国际版或国内版)# 请前往 LeanCloud 控制台 > 设置 > 应用凭证 获取LEANCLOUD_APP_ID=<你的 LeanCloud App ID>LEANCLOUD_APP_KEY=<你的 LeanCloud App Key>LEANCLOUD_MASTER_KEY=<你的 LeanCloud Master Key>LEANCLOUD_SERVER_URL=<你的 LeanCloud 服务器 URL>
但是这还没完,您还需要配置管理员的个人信息、密码等等:
- 打开
src/config.ts
,根据注释修改下面内容:
// 针对博主特定的数据export const ADMIN_USER = { nickname: "EveSunMaple", email: "evesunmaple@outlook.com", website: "https://www.saroprock.com", avatar: "https://www.saroprock.com/avatar.webp",};
// 你不希望用户使用的名称与邮箱export const SENSITIVE_USERS = ["evesunmaple", "EveSunMaple", "sunmaple", "SunMaple", "admin", "博主", "evesunmaple@outlook.com"];
- 在
.env
中添加如下内容:
# JSON Web Token (JWT) 密钥# 用于用户认证和 API 安全,请使用一个长且随机的字符串JWT_SECRET=<你的 JWT 密钥># 后台管理员密码# 用于访问受保护的管理功能SECRET_ADMIN_PASSWORD=<设置一个强的管理员密码>
这里为了方便,管理员在登录时,只需要输入用户名、邮箱与密码即可,个人数据会直接使用配置的数据。
重新部署之后,您应该可以使用评论系统了。
对于管理员,可以访问/admin/comments
管理评论。
短链系统
如果您成功访问了/admin
,可能会惊讶地发现流量数据是不可用的。这是因为本博客使用 Sink 作为短链服务来统计并且分析浏览量。打开 Sink 项目,根据教程部署即可。
部署完成后,在.env
中添加如下内容,即可以自动实现与 Sink 的集成,包括为每一篇博客生成短链,统计并且分析数据等等(当然,您不配置 Sink 也可以正常使用):
# 数据接收服务 (Sink) 配置SINK_PUBLIC_URL=<你的 Sink 服务公开访问 URL>SINK_API_KEY=<你的 Sink 服务 API 密钥>
自定义
到现在为止,您就完成了所有配置!最后,您只需要修改本站页面,就可以变成您自己的博客了!
对了,我在博客页脚添加了一个喜欢本站按钮,统计的是仓库数据。如果您希望保留,还需要添加一个变量:
# 用于访问 GitHub API,请在 GitHub > Settings > Developer settings > Personal access tokens 中生成GITHUB_TOKEN=<你的 GitHub Personal Access Token>
其他的,比如希望添加导航链接,都可以前往对应的页面组件修改(src/components/layout/Header.astro)。我觉得我自己项目的文件命名还是没什么问题的,找起来应该不难。因为每个人可能希望的都不一样,这里就没有类似模板一样写一个通用的配置了。嗯,记得不要删除页脚右下方我的信息就好 ♥️ 先谢过各位了。
结语
完成自定义后,我的教程也到了头。整个过程不复杂吧?
如果在实践过程中遇到任何问题,欢迎前往 GitHub 仓库 提交 Issue 或讨论,当然也可以直接在文章下方留言。如果喜欢这个项目,可以转发此文章,也可以给项目点个 ⭐ 支持一下,项目还是会持续更新的喵。
对了,如果你需要一个纯静态的博客,这里不要脸打一个自己的广告 -> Frosti。
完整.env
文件
# LeanCloud 应用凭证 (国际版或国内版)# 请前往 LeanCloud 控制台 > 设置 > 应用凭证 获取LEANCLOUD_APP_ID=<你的 LeanCloud App ID>LEANCLOUD_APP_KEY=<你的 LeanCloud App Key>LEANCLOUD_MASTER_KEY=<你的 LeanCloud Master Key>LEANCLOUD_SERVER_URL=<你的 LeanCloud 服务器 URL>
# JSON Web Token (JWT) 密钥# 用于用户认证和 API 安全,请使用一个长且随机的字符串JWT_SECRET=<你的 JWT 密钥>
# 自定义频道或标识符CHANNEL=your_channel_name
# HTTP 代理 (可选)# 如果你的网络环境需要代理才能访问外部服务,请取消注释并设置# HTTP_PROXY=http://127.0.0.1:7897
TELEGRAM_HOST=t.me
# GitHub Personal Access Token# 用于访问 GitHub API,请在 GitHub > Settings > Developer settings > Personal access tokens 中生成GITHUB_TOKEN=<你的 GitHub Personal Access Token>
# 后台管理员密码# 用于访问受保护的管理功能SECRET_ADMIN_PASSWORD=<设置一个强的管理员密码>
# 数据接收服务 (Sink) 配置# 如果你使用自定义的数据统计或链接缩短服务,请配置以下选项SINK_PUBLIC_URL=<你的 Sink 服务公开访问 URL>SINK_API_KEY=<你的 Sink 服务 API 密钥>
觉得这篇文章怎么样?
点个赞,让更多人看到!
评论区