自从搭建了Hexo博客之后就使用腾讯云的云开发,一直使用的是免费版本,运行一切稳定也就没有理过,但从今年 8 月 8 日起腾讯云开发就变更了 资费模式,没有办法再继续白嫖了。

微信图片_20220829170732

微信截图_20220829171017

没办法,良心云也开始不良心了;

之前一直在忙没有时间处理,这次网上看了一下,原本想转华为云的,刚好,看见Twikoo开了私有部署。这样就可以直接切换为本地了

一、注意

目前没有办法导入访问量信息,只能导入评论信息。

私有部署需要一个服务器

如果你的图片上传服务器是腾讯云,那么需要手动修改数据库更改图片

二、备份评论

进入腾讯云云开发,进入环境之后选择数据库

微信截图_20220829172008

进入comment数据库

微信截图_20220829172113

点击导出

微信截图_20220829172216

之后生成一个本地的json文件。

微信截图_20220829172317

如果你的图片上传服务器是腾讯云,那么需要手动修改数据库更改图片

之前的图片存储位置:

微信截图_20220829172515

三、私有部署(Docker)

Twikoo 的私有部署我选择了 docker 的,因为 docker 比较方便,我服务器上也安装有docker

首先确保服务器安装了docker,如果使用的是宝塔的话可以一键部署安装docker

微信截图_20220829233821

其他的 docker 安装方法:

1
2
3
4
5
6
# 命令行安装docker方法(只设用于Linux系统!!!)
# 安装docker
curl -sSL https://get.daocloud.io/docker

# 设置开机启动 docker
systemctl enable docker.service

安装完 docker 之后就可以 docker 部署 twikoo 了,只需要在命令行输入:

1
2
# 其中8080端口可以改成其他的端口号。
docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo

部署完毕后访问器公网IP:8080,例如:http://100.100.20.20:8080,查看是否部署成功。

访问后,成功提示的信息:

1
{"code":100,"message":"Twikoo 云函数运行正常,请参考 https://twikoo.js.org/quick-start.html#%E5%89%8D%E7%AB%AF%E9%83%A8%E7%BD%B2 完成前端的配置","version":"1.6.7"}

四、导入评论

Butterfly中我们更改配置文件,将 themes/butterfly/_config.yml 中的

1
2
3
4
5
6
7
# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
envId:
region:
visitor: false
option:

envId 中填写服务器公网IP:8080,例如:http://100.100.20.20:8080

然后我们 hexo s 进入后在后台设置密码,并点击导入选项卡。

微信截图_20220830004414

导入完之后就可以正常使用了,但是这样会暴露 IP 地址,所以我们设置反向代理来隐藏 IP 地址。

五、添加反向代理站点

如果使用宝塔的话,设置反向代理就很简单了,这里以宝塔为例:

进入宝塔面板之后,点击「网站」,「添加站点」

微信截图_20220830011937

然后我们输入我们需要的域名,选择纯静态。

微信截图_20220830012043

六、设置解析

进入购买域名的后台页面,进入域名的dns解析页面,添加解析

例:comment.lanmo.ltd 则添加一条 A 记录

记录值填写服务器公网IP地址,例如100.100.20.20

微信截图_20220830020625

七、设置反向代理

回到宝塔,点击刚才创建的网站,点击反向代理,「添加反向代理」

微信截图_20220830134442

添加名称、设置链接,填写http://127.0.0.1:8080

微信截图_20220830134638

使用了反向代理之后同时也可以去申请 SSL 证书

你可以到腾讯云SSL证书控制台申请证书。

点击「我的证书」->「申请免费证书」

微信截图_20220830140252

申请证书通过之后就进行下载,然后部署到服务器上,访问 https 地址来查看是否运行正常。

八、更改环境地址

Butterfly 中我们更改配置文件,将 themes/butterfly/_config.yml 中的

1
2
3
4
5
6
7
# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
envId:
region:
visitor: false
option:

envId 中填写我们刚才弄完的域名,例如 https://comment.lanmo.ltd

1
2
3
4
5
6
7
# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
envId: https://comment.lanmo.ltd
region:
visitor: false
option:

之后我们就可以正常使用了。

九、常见的问题

更改环境变量

如果你有需要更改环境变量的需求,例如修改 TWIKOO_THROTTLE,可以修改docker的环境变量。

十、修改数据库

私有部署不需要连接外部数据库,数据存储在启动 twikoo 时所在目录下的 data 目录,您可以直接复制该目录以完成数据备份。

微信截图_20220830145417

修改完毕后保存后重启容器即可。

十一、配置文件导入

默认twikoo数据文件会在所在目录下的data中,我们通过宝塔就可以看到db.json.1,将导出来自腾讯云的config数据库的配置导入即可。

修改完毕后保存后重启容器即可。

十二、针对私有部署 (Docker) 的更新方式

  1. 拉取新版本 docker pull imaegoo/twikoo
  2. 停止旧版本容器 docker stop twikoo
  3. 删除旧版本容器 docker rm twikoo
  4. 启动新版本容器

十三、出现无法解决的问题

尝试本地备份所在目录下的 data 中的所有文件,然后删除所有文件并重新部署docker。

评论可以通过导入 db.json.0 来测试。

参考:

Twikoo 官方开发文档