首页 博客 正文

如何部署我的博客

针对个人项目「SaroProck」简单的配置 & 部署教程。

EveSunMaple
EveSunMaple 高三学生
2025年07月30日
预计阅读 8 分钟
2129 字

前言

昨天突发奇想在「NodeSeek」上面发了一篇帖子(帖子链接),没想到第一篇就被设置为了「推荐阅读」。但是毕竟是我自己的博客而不是模板,所以并没有部署指南。惊喜之余,还是要写一篇关于如何部署我的博客的教程。部署很简单,这里我分成三个步骤,分别是:博客与动态部署 -> 评论系统 -> 短链系统。在最后,我会提供完整的 .env 文件。你也可以在 GitHub 仓库查看。

博客与动态部署

让我们先从最基础的开始吧!

准备工作

首先,你需要有一个 GitHub 账号以及一个 Telegram 账号,此部分不在教程范围内。

其次,你需要选择一个部署平台。我的项目属于 Astro SSR,需要适配器。具有官方适配器的平台有 Vercel、Netlify、Cloudflare 等等。你可以选择其中一个进行部署。如果你选择 Vercel 部署,那么你不需要对 astro.config.mjs 进行修改;如果你选择 Netlify 或者 Cloudflare ,请根据 Astro 文档更换相对应的适配器。

最后,你需要一个公开的 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 的问题,再手动添加)。

数据存储 -> 结构化数据
@EveSunMaple
数据存储 -> 结构化数据

推荐选项:添加 API 访问域名,减少被墙或限速的风险。

在「设置」 -> 「域名绑定」中添加您自己的域名(国内版这里需要备案,所以推荐国际版)。

设置 -> 域名绑定
@EveSunMaple
设置 -> 域名绑定

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

设置 -> 应用凭证
@EveSunMaple
设置 -> 应用凭证

在后端我们使用私钥访问,所以您可以手动设置 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>

但是这还没完,您还需要配置管理员的个人信息、密码等等:

  1. 打开src/config.ts,根据注释修改下面内容:
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"];
  1. .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 密钥>

觉得这篇文章怎么样?

点个赞,让更多人看到!

分享这篇文章

知识因分享而增值

分类

技术

标签

Web
博客
教程

版权声明:本文作者为 EveSunMaple,首发于www.saroprock.com

遵循 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

评论区

本评论区由 EveSunMaple自主开发