Twikoo 评论系统私有部署(非Docker)

Twikoo 评论系统私有部署(非Docker)
FatPig前言
Twikoo是一个简洁、安全、免费的静态博客评论系统。它主要用于为静态博客(如 Hexo、Hugo 等)提供评论功能,支持 Markdown 语法,具有快速部署和轻量级的特点。以下是 Twikoo 使用云开发 / Vercel / 私有服务器作为评论后台。本文主要介绍在私有服务器上部署Twikoo,私有部署具有更高可靠性、可用性。
Twikoo 官网:https://twikoo.js.org
Twikoo on GitHub:https://github.com/twikoojs/twikoo
Twikoo 官方文档:https://twikoo.js.org/intro.html
一、 整体流程
- 服务端下载安装 Node.js
- 安装 Twikoo server:
npm i -g tkserver
- 启动 Twikoo server:
tkserver
- 访问
http://服务端IP:8080
测试服务是否启动成功 - 配置前置代理实现 HTTPS 访问(可以用 Nginx、负载均衡或 Cloudflare 等)
- 到博客配置文件中配置 envId 为
https://
加域名(例如https://twikoo.yourdomain.com
)
二、 部署Twikoo
本文使用的服务器环境是Ubuntu 24.04 LTS
2.1 安装 Node.js
(1) 安装Node.js
1 | sudo apt update |
(2) 查看安装结果,打印对应版本号则安装成功
1 | node -v |
2.2 安装 Twikoo Server
(1) 输入以下命令,安装Twikoo Server
1 | sudo npm i -g tkserver |
(2) 输入以下命令启动 Twikoo server
1 | tkserver |
(3) 访问 http://服务端IP:8080
测试服务是否启动成功,显示如下界面则表示启动成功
(4) 修改默认端口等设置(可选,无特殊需求可跳过此步)
方式一:修改Twikoo配置文件,Twikoo 的配置文件路径在 /usr/local/lib/node_modules/tkserver
,其中配置端口的文件为/usr/local/lib/node_modules/tkserver/server.js
方式二:修改环境变量
在Linux系统中,添加环境变量可以通过修改~/.bashrc实现,以修改tkserver端口号成8088为例
1 | nano ~/.bashrc |
在文件末尾添加 export TWIKOO_PORT=8088
,保存并退出
刷新环境变量
1 | source ~/.bashrc |
通过以上任意一种方式修改完默认端口号,再使用tkserver
命令启动twikoo服务,端口已变成修改的值。
另外可以通过nohup tkserver >> tkserver.log 2>&1 &
命令后台启动tkserver
使用 TWIKOO_PORT=端口号 tkserver
命令自定义端口启动tkserver
(5) 设置tkserver 开机自启动
- **确认 Node.js 和tkserver 安装路径:
1 | which node |
这将返回 node
和 tkserver
的路径,需要记下这些路径。
创建 systemd 服务文件:
1
sudo nano /etc/systemd/system/tkserver.service
编辑服务文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[Unit]
Description=Twikoo Server
After=network.target
[Service]
Environment=TWIKOO_PORT=1234
ExecStart=/usr/bin/env node /path/to/tkserver
WorkingDirectory=/path/to
Restart=always
User=your_username
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Environment=TWIKOO_PORT=1234
:设置TWIKOO_PORT
环境变量以指定自定义端口。/usr/bin/env node
:通过env
命令查找node
的实际路径,无需修改。/usr/local/bin/tkserver
:tkserver
程序文件的实际路径。WorkingDirectory
:tkserver
的工作目录。your_username
:Linux服务器的用户名。
以我本机为例,node
路径为 /usr/bin/node
,tkserver
安装在 /usr/local/bin/tkserver
,用户名为 root
(建议用户名使用root,避免权限问题导致的启动失败),端口我设置为默认端口8080,具体配置如下:
1 | [Unit] |
- 重新加载 systemd 配置并启用服务:
1 | sudo systemctl daemon-reload |
- 检查服务状态和日志:
1 | sudo systemctl status tkserver |
可以尝试重启服务器后,并访问http://服务端IP:端口
测试开机自启动是否设置成功,显示如下界面则表示启动成功
2.3 配置HTTPS
完成前面步骤,twikoo后台已经部署完成,我们可以在主题配置文件中将前面的http://服务端IP:端口
作为twikoo的envId填入既可以完成twikoo的部署,但为了提高网站的安全性,建议给twikoo服务添加一个域名,并设置为HTTPS访问,具体操作如下:
2.3.1 安装 Nginx
下载安装 Nginx
1 | sudo apt install nginx |
查看版本
1 | nginx -v |
2.3.2 创建twikoo子域名和申请证书
- 在阿里云中对主机域名再添加一个子域名
如我这里就是:twikoo.fatpig.cc
- 再申请一个免费SSL证书
将上一步申请的证书下载下来,放到服务器上。
例:我的存放路径:/etc/nginx/ssl
将两个文件twikoo.fatpig.cc.key和twikoo.fatpig.cc.pem放入该目录下。
- 输入以下命令,在/etc/nginx/sites-enabled路径下在其中新建一个
twikoo.conf
的配置文件
1 | nano /etc/nginx/sites-enabled/twikoo.conf |
根据实际情况修改以下配置,并粘贴到twikoo.conf
中,保存并退出
1 | upstream twi { # 需要配置upstream |
- 测试nginx配置是否正确,并重启nginx服务
1 | nginx -t |
- 访问twikoo子域名,如出现以下界面,表示twikoo域名https访问配置成功
2.3.3 修改主题配置文件
1 | twikoo: |
2.3.4 重新生成部署网站
重新生成部署网站后,文章下方就会出现评论框,点击小齿轮进入管理面板,初次访问需要设置密码,请牢记。
三、针对私有部署的更新方式
- 停止旧版本
kill $(ps -ef | grep tkserver | grep -v 'grep' | awk '{print $2}')
- 拉取新版本
npm i -g tkserver@latest
- 启动新版本
tkserver
- 浏览器输入ip:端口来验证版本