差不多折腾完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 ID、Client 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 #添加开机启动并注册系统服务
如图所示启动成功
配置反向代理
不码字了,用开始准备的域名反代指向IP:3000即可