使用Vercel部署Twikoo并解决被墙的问题
使用Vercel部署Twikoo并解决被墙的问题
cc前言
还是因为服务器过期的原因,之前部署的Twikoo已经不能用了,于是我尝试使用Vercel部署Twikoo。
部署过程
申请 MongoDB 账号并创建数据库
首先进入MongoDB官网创建一个账号,可以使用github直接登录。
登录后进入界面,选择最右边的免费共享数据库 -> aws -> N.virginia(us-wast-1) -> create。
设置用户名和密码并记住,后面需要使用。
ip设置 0.0.0.0/0
然后会自动跳转到首页,点击connect
链接应用
记住第 3 条的代码,后续部署需要用到,且使用时需要在相应位置替换为之前设置的用户名和密码
1 | mongodb+srv://<username>:<password>@twikoo.odlv1qd.mongodb.net/?retryWrites=true&w=majority |
部署到Vercel
首先先注册一个Vercel账号,同样可以使用github登录。
点击以下链接一键部署,取名为twikoo
如果点击链接后出现空白页面或者导入失败的现象,大概率是twikoo仓库地址发生了改变,可以去官网获取最新部署链接。
点击进入任务界面
新建变量,key为MONGODB_URI,value为之前保存的代码,记得替换用户名和密码
重新部署
检验部署成果,显示 云函数运行正常 表示成功部署
实现邮件通知
这个功能可开可不开,看个人情况。
以qq邮箱为例,其它邮箱大同小异,都是在设置中开通POP3/SMTP服务,根据提示一步步开通即可。
解决Vercel被墙无法留言的问题
登录域名解析平台,我这里使用的是阿里云,进入域名解析工作台 -> 添加域名,格式为twikoo+你的域名,然后点击 TXT授权校验。
保存好弹出信息,之后需要用,先不要验证
进入解析设置界面,点击添加记录,将上一步保存的值填入
然后返回进行验证
进入新增域名的域名解析界面,添加两条记录
主机记录 | 记录类型 | 解析请求来源(isp) | 记录值 | TTL |
---|---|---|---|---|
twikoo | CNAME | 默认 | cname.vercel-dns.com | 10分钟 |
@ | A | 默认 | 76.76.21.21 | 10分钟 |
为Vercel 项目添加域名
在博客中配置Twikoo
进入博客后台,评论系统选择使用Twikoo
1 | comments: |
添加环境ID
1 | # Twikoo |
重新编译后测试一下
可以在设置中实现邮件通知,还有其它设置头像、设置站长等功能,具体请看官方文档。
Vercel 版本不符升级配置
云函数版本
进入 Vercel 仪表板 - twikoo - > Settings - Git
点击 Connected Git Repository 下方的仓库地址
打开 package.json,点击编辑
将"twikoo-vercel": "latest"
其中的latest
修改为最新版本号。点击 Commit changes
部署会自动触发,可以回到 Vercel 仪表板,查看部署状态
前端版本
打开该目录下的文件
1 | Blog\themes\anzhiyu\plugins.yml |
手动修改 twikoo 的版本号
更改管理员密码
如果管理员的登录密码忘了怎么办?官方文档给出的方法是
如何修改、重置管理员密码?
腾讯云请前往云开发控制台,Vercel 请前往 MongoDB,私有部署请直接编辑
data/db.json.1
,编辑配置,删除 config.ADMIN_PASS 配置项,然后前往 Twikoo 管理面板重新设置密码。
因此我们找到数据库文件即可,首先我们登录 MongoDB 官网,点击如图选项
删除 ADMIN_PASS 配置项
然后重新进入 Twikoo 的管理面板,就可以重新设置密码了
无法设置邮件提醒的解决方法
登录 Vercek 官网,Setting –> Deployment Protection –> Vercel Authentication,点击按钮关闭验证并保存