差不多折腾完Hexo应用,弄评论功能的时候找了一下评论相关插件,然后看到了这么一篇文章 建议大家弃用 Gitalk 和 Gitment 等权限过高的 Github OAuth App 翻了一堆资料找到了这个项目:Giscus 这个不属于OAuth应用,与此同时,我想自建!!做一下记录

准备工作(废话)

  • 一个域名
  • 一台VPS
  • 一个Github账号

创建应用

  • 这个页面开始创建
  • GitHub App Name —— 随便填
  • Homepage URL —— 填写准备的域名 https://域名
  • Callback URL —— 填写https://域名/api/oauth/authorized
  • Expire user authorization tokens —— 取消勾选
  • Request user authorization (OAuth) during installation —— 取消勾选
  • Repository permissions —— 找到Discussions选择Read & write
  • User permissions —— Where can this GitHub App be installed?处选择Only on this account
  • 点击Create GitHub App按钮开始创建
  • 创建好Client Secret,同时保存好App IDClient ID
  • 往下翻,点击Generate a private key,会下载一个证书文件,先保存

配置Supabase缓存表

https://supabase.io/注册用户并登陆 创建一个项目,接着进入项目创建一个TABLE,名字用installation_access_tokens 创建表,使用import导入如下内容

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()

获取项目URL(格式是https://xxxxx.supabase.co) 获取service_role值,保存

安装Nodejs、npm、yarn等软件

sudo apt purge nodejs
sudo apt autoremove 
sudo apt update
sudo apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs build-essential -y
node --version
sudo corepack enable npm
sudo corepack enable yarn
npm --version
yarn --version

部署Giscus

cd /opt #进入目录
git clone https://github.com/giscus/giscus.git #拉取源码
cd giscus #进入目录
cp .env.example .env.local #重命名配置文件

刚刚保存的东西填进.env.local文件 开始编译和运行测试

yarn install
yarn build
yarn start

目前已经运行在0.0.0.0:3000

使用PM2配置进程守护

npm install -g pm2 #安装pm2
cd /opt/giscus #进入运行目录
pm2 start yarn -n giscus -- start #使用pm2启动
pm2 save #保存配置
pm2 startup #添加开机启动并注册系统服务

pm2进程守护 如图所示启动成功

配置反向代理

不码字了,用开始准备的域名反代指向IP:3000即可