惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
罗磊的独立博客
爱范儿
爱范儿
J
Java Code Geeks
博客园 - 司徒正美
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
小众软件
小众软件
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
Vercel News
Vercel News

CAYZLH

Reasonix 开箱:聊聊我装的那些 Skill 收藏一份自驾中国的愿望清单 白夜行·谢幕 英雄联盟的昨日今天与符文大乱斗 折腾的尽头是极简 一个 `data.` 引发的血案——Redis 连接 localhost 问题排查全记录 MacBook上备忘录APP的快捷键和手势 让Google屏蔽某些搜索结果 WSL自定义安装Ubuntu typora自动上传图片配置 Windows下结束指定端口的进程 批量修改maven多模块版本号 使用winsw部署SpringBoot项目 Gson简易指南 docker搭建Consul集群 使用Docker部署SpringBoot项目 Docker使用redis镜像 Docker使用rabbitmq Docker使用zookeeper Docker使用MySQL Dockerfile常用指令 Docker免sudo操作 雷鸟电视去广告 使用ADB卸载MIUI系统应用 利用GitHub做图床 将网站变成灰色 Github上传大文件 Android远程调试命令adb vscode快捷键的使用 SpringBoot文件上传异常处理
自建giscus服务
Ant丶 · 2024-04-11 · via CAYZLH

今天查看Stellar文档,发现Giscus可以自建服务,想着也好久没有水文章了,便顺便记录一下折腾过程。

创建一个GitHub App

前往这个页面创建一个Github App

注册一个新的 GitHub App

image-20240411162146774

填入回调函数地址

image-20240411162400664

  • 使用 https://[YOUR-DOMAIN-HERE]/api/oauth/authorized 这样的格式作为回调地址,将中括号里的内容替换成你的域名。

    例如: https://giscus.app/api/oauth/authorized

  • 将“Expire user authorization tokens”取消勾选。

编辑权限

Discussions开启读写权限:

image-20240411162855808

用户权限

选当前用户就行了:

image-20240411162935813

其他设置

  • Webhook,不需要使用取消勾选Active
  • Post installation,不需要使用

创建GitHub App

image

点击这个按钮

生成并下载Private keys

image-20240411163318459

生成并记录Client secrets

image-20240411163342018

记录app id 和 client id 备用

image-20240411163426135

安装APP

image-20240411163507793

配置 Supabase 以缓存访问令牌(可选)

GitHub 应用程序安装访问令牌的 TTL 为 60 分钟。您可以配置 giscus 将令牌缓存在 Supabase 表中。这减少了对 GitHub 的令牌请求数量,有助于防止应用程序达到速率限制。

  • 登录Supabase

  • 创建一个新项目。

  • 在项目中创建一个新表。表名可以是任意的,但giscus使用installation_access_tokens作为默认值。

  • 按以下字段创建一个表:

    installation_id: int8, no default value, primary key, uncheck Is Identity
    token: varchar, no default value
    expires_at: timestamptz, no default value
    created_at: timestamptz, default value NOW()
    updated_at: timestamptz, default value NOW()

    None of the columns are nullable (uncheck Is Nullable via the gear icon).
    Only installation_id is the primary key.

    image-20240411163929694

  • 记下您的 Supabase 项目的 URL (https://xxxxx.supabase.co) 和您的 API 密钥。

  • 确保:

    • 禁用表上的行级安全性 (RLS)
    • 使用秘密 service_role API 密钥。

在Vercel部署Giscus

fork giscus项目

首先将giscus项目fork到自己仓库。

image-20240411164133004

在vercel部署

登录vercel,选择刚forkgiscus仓库,直接使用默认的参数部署。

配置域名

将前面预设好的域名映射一下。

image-20240411165053003

添加配置

在Setting页面,增加相关配置参数。

image-20240411164448843

这些参数全部来自前面步骤记录下来的内容,字段参考如下:

NEXT_PUBLIC_GISCUS_APP_HOST=https://yourdomain.com
NEXT_PUBLIC_REVALIDATE_FIRST_PAGE=true
GITHUB_APP_ID=APP ID
GITHUB_CLIENT_ID=APP CLIENT ID
GITHUB_CLIENT_SECRET=GITHUB CLIENT SECRET
GITHUB_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nENTER-KEY-HERE-WITHOUT-LINE-BREAKS\n-----END RSA PRIVATE KEY-----" # vercel可以直接将复制下来的值拷贝进去
ENCRYPTION_PASSWORD= # 这个好像可以随便写
SUPABASE_KEY= # SUPABSE的KEY
SUPABASE_URL= # SUPABSE的项目URL
SUPABASE_INSTALLATION_ACCESS_TOKENS_TABLE=installation_access_tokens


ORIGINS=["https://yourdomain.com", "https://yourdomain.com", "https://www.yourdomain.com"]
ORIGINS_REGEX=["http://localhost:[0-9]+"]

在Stellar中应用

修改主题配置文件,将Giscus的src属性改成自己的域名就可以了。


comments:
service: giscus


giscus:
src: https://yourdomain.com/client.js

修改Giscus字体

stellar应用之后发现评论区字体与博客正文的字体不一样,所以需要进一步搞一搞。

创建@font-face样式

本博客使用ZFont字体。

cayzlh-zfont-style.css
@font-face {
font-family: “ZFont”;
src: url("https://cdn-cf.cayzlh.com/font/zfont/ZFonts.woff2") format("woff2");
}

创建字体使用样式

cayzlh-zfont.css
@import url("//giscus.cayzlh.com/themes/preferred_color_scheme.css");

@import url("//cdn-cf.cayzlh.com/css/cayzlh-zfont-style.css");

body {
font-family: “ZFont”;
}

以上俩文件都存储在我的GitHub仓库中:cayzlh/psychic-potato

将字体应用到Giscus中

修改Stellar主题配置文件:

comments:
service: giscus
giscus:
data-repo:
data-category:
data-theme: "https://cdn-cf.cayzlh.com/css/cayzlh-zfont.css"

请注意,您需要将 [在此输入仓库][在此输入分类名] 的占位符替换为您的存储库和分类的正确值。