一.必备环境下载
1.安装 Node.js 环境
- 更新系统包索引
sudoaptupdate2.添加 NodeSource 仓库
curl-fsSLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-- Ubuntu 默认源没有新版本 Node
- NodeSource 提供官方维护的高版本 Node
3.安装 Node.js
sudoaptinstall-ynodejs4.验证安装
node-vnpm-v回显版本号即成功安装
2.npm 配置
设置国内镜像,因为默认 npm 源在国外
npmconfigsetregistry https://registry.npmmirror.com3.MongoDB 数据库安装
- 安装 MongoDB
sudoaptupdatesudoaptinstall-ymongodb-org2.启动 MongDB
sudosystemctl start mongodsudosystemctlenablemongod3.进入 MongoDB Shell
mongosh- 创建数据库和用户
usetwikoo db.createUser({user:"twikoo",pwd:"你的密码",roles:[{ role:"readWrite",db:"twikoo"}]})5.验证登录
mongosh-utwikoo-p--authenticationDatabasetwikoo根据提示内容输入密码即可
二、部署 tkserver(Twikoo 后端)
1.全局安装 tkserver(此处需要前面的 Node.js)
sudonpminstall-gtkserver2.启动 tkserver
MONGODB_URI="mongodb://twikoo:密码@127.0.0.1:27017/twikoo"HOST=127.0.0.1PORT=8080tkserverMONGODB_URI:数据库连接字符串HOST=127.0.0.1:只允许本机访问(安全)PORT=8080:服务端口
| 名称 | 描述 | 默认值 |
|---|---|---|
MONGODB_URI | MongoDB 数据库连接字符串,不传则使用 lokijs | null |
MONGO_URL | MongoDB 数据库连接字符串,不传则使用 lokijs | null |
TWIKOO_DATA | lokijs 数据库存储路径 | ./data |
TWIKOO_PORT | 端口号 | 8080 |
TWIKOO_THROTTLE | IP 请求限流,当同一 IP 短时间内请求次数超过阈值将对该 IP 返回错误 | 250 |
TWIKOO_LOCALHOST_ONLY | 为true时只监听本地请求,使得 nginx 等服务器反代之后不暴露原始端口 | null |
TWIKOO_LOG_LEVEL | 日志级别,支持verbose/info/warn/error | info |
TWIKOO_IP_HEADERS | 在一些特殊情况下使用,如使用了CloudFlare CDN它会将请求 IP 写到请求头的cf-connecting-ip字段上,为了能够正确的获取请求 IP 你可以写成["headers.cf-connecting-ip"] | [] |
3.后台运行(即24 小时不间断运行)
方法一:nohup(官方推荐)
nohupenvMONGODB_URI="mongodb://twikoo:密码@127.0.0.1:27017/twikoo"HOST=127.0.0.1PORT=8080tkserver>/var/log/tkserver.log2>&1&方法二:systemctl(规范)
创建服务
sudonano/etc/systemd/system/tkserver.service内容:
[Unit]Description=Twikoo ServiceAfter=network.target[Service]Type=simpleEnvironment="MONGODB_URI=mongodb://twikoo:密码@127.0.0.1:27017/twikoo"Environment="HOST=127.0.0.1"Environment="PORT=8080"ExecStart=/usr/bin/node /usr/lib/node_modules/tkserver/server.jsRestart=alwaysUser=root[Install]WantedBy=multi-user.target启动:
sudosystemctl daemon-reexecsudosystemctl daemon-reloadsudosystemctl start tkserversudosystemctlenabletkserver三、安装 Nginx
- 如果没有配置 Nginx,那么:
sudoaptinstall-ynginx2.配置站点
sudonano/etc/nginx/sites-available/twikoo- 配置(以我的站点为例):
注意:要将子域名申请 ssl 证书,如果你是阿里云用户可以申请个人测试证书,这样才能通过 https 访问,避免中间人攻击
如图:
# HTTP 强制跳 HTTPSserver{listen80;server_name twikoo.sirens007.cn;return301https://$host$request_uri;}server{listen443ssl http2;server_name twikoo.sirens007.cn;ssl_certificate /粘贴你的证书路径.crt;ssl_certificate_key /粘贴你的私钥路径.key;# TLS 安全增强ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;# 关键:允许评论内容上传client_max_body_size 10m;location /{proxy_pass http://127.0.0.1:8080;# 基础代理头proxy_set_header Host$host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto$scheme;# WebSocket 支持(Twikoo兼容)proxy_http_version1.1;proxy_set_header Upgrade$http_upgrade;proxy_set_header Connection"upgrade";# 超时优化proxy_connect_timeout 60s;proxy_send_timeout 60s;proxy_read_timeout 60s;}}4.启用配置:
sudoln-s/etc/nginx/sites-available/twikoo /etc/nginx/sites-enabled/sudonginx-tsudosystemctl restart nginx反向代理的目的是为了避免直接暴露 8080,并且浏览器会拦截
检验部署成功与否
如果运行出现什么问题,随时查看
1.检查 MongoDB
systemctl status mongod2.检查 tkserver 是否运行
sudosystemctl status tkserver4.检查 tkserver 是否监听 8080 端口
ss-tlnp|grep8080正常应该得到
5.检查 MongDB 是否监听端口
ss-tlnp|grep270176.测试接口
浏览器访问:
https://你的站点得到如图所示即表示 tkserver 没有问题,以上配置完后即可正常在博客主题中加入对应接口,类似以下:
twikoo:{envId:"https://twikoo.sirens007.cn", lang: SITE_LANG,},至此,以上配置完后相应的评论数据可以通过各种可视化数据库查看,相应访问速度也会更快!
参考文章:
私有部署 - Twikoo 官方文档
以上是我关于twikoo的笔记分享,
感谢你读到这里,这也是我学习路上的一个小小记录。希望以后回头看时,能看到自己的成长~