云服务器宝塔部署 Twikoo 博客评论系统

小尘AI正在绞尽脑汁想思路ING···
小尘のAI摘要
Deepseek-Chat

前言

时间是真快啊,转眼就开学一周了,之所以想从免费的 Netlify + MongoDB Atlas 转到付费的云服务器主要有两点。

  1. 看到有人被 MongoDB Atlas 的免费机制坑了的(一段时间数据库无交互自动注销)
  2. 这个方案评论延迟有点高,慢的一批,有时候信号不好发个评论转半分钟,很搞人心态。

需要的东西

  • 一台云服务器
  • 一个域名
  • Cloudflare 账户

准备工作

云服务器

这边依旧使用 雨云 的云服务器作为例子,我选择了 香港四区 带宽更大,延迟也能接受

香港四区

套餐直接一步到位 2c4g 50M 对等,性价比很高,以后扩展业务也够用了,一个月 50 不到,新用户首次还有优惠券只要 20 出头就能拿下

套餐

系统这边选择 Debian + 宝塔组合,开箱即用。

接下来付款,然后坐和放宽,等待服务器启动

配置宝塔

显示运行中进入管理面板,直接点击上方的 宝塔管理面板 (我一开始没发现,傻傻去后台重新修改了端口和用户名密码,不过入口推荐改一下,雨云默认 https://<ip>:8889/rainy 个人觉得有点危险)

部署 Twikoo

配置后端和数据库

我不太喜欢宝塔的 docker 配置界面,所以是直接 ssh 的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ssh root@1.1.1.1
root@1.1.1.1's password:
Linux RainYun-S5CxTACA 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep 7 14:42:17 2025 from 2.2.2.2
root@RainYun-S5CxTACA:~# cd /www/wwwroot
root@RainYun-S5CxTACA:/www/wwwroot# mkdir twikoo
root@RainYun-S5CxTACA:/www/wwwroot# cd twikoo
root@RainYun-S5CxTACA:/www/wwwroot/twikoo# vim docker-compose.yml

创建文件和文件夹,路径: /www/wwwroot/twikoo/docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: "3"
services:
mongodb:
image: mongo:latest
container_name: twikoo-mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: twikoo
MONGO_INITDB_ROOT_PASSWORD: <随机生成一个16位字符串确保安全>
MONGO_INITDB_DATABASE: twikoo
ports:
- "27017:27017"
volumes:
- ./mongo-data:/data/db # 挂载到宿主机 ./mongo-data

twikoo:
image: imaegoo/twikoo
container_name: twikoo
restart: always
ports:
- 8080:8080
environment:
TWIKOO_THROTTLE: 1000
MONGODB_URI: "mongodb://twikoo:<随机生成一个16位字符串确保安全>@mongodb:27017/twikoo?authSource=admin&retryWrites=true&w=majority"
TWIKOO_IP_HEADERS: '["headers.cf-connecting-ip"]'
depends_on:
- mongodb
volumes:
- ./data:/app/data

然后部署 docker 容器

1
docker-compose up -d

设置反代

宝塔 -> 网站 -> 反向代理 -> 添加反代

像我这么填

域名:填写一个好记的,例如 twikoo.mcxiaochen.top

目标:http://127.0.0.1:8080

发送域名 (host): $http_host 这个一般不用动

配置 DNS

推荐 Cloudflare 托管域名,小橙云保护服务器

配置 SSL

回到宝塔面板,戳反代右边的 配置 SSL ,然后随手申请一个 Let’s Encrypt 的免费证书就行,宝塔会自动续签的

检查

访问域名,如果返回

1
2
3
4
5
{
"code": 100,
"message": "Twikoo 云函数运行正常,请参考 https://twikoo.js.org/frontend.html 完成前端的配置",
"version": "1.6.44"
}

则代表功能正常,可以去前端配置了。

迁移数据

非常简单,我使用 Navicat16 同时链接 MongoDB Atlas 和自建的数据库,复制粘贴就完事了

参考资料(排名不分先后)