☰
twikoo:从MongoDB Atlas到本地部署
2026/9/27 9:50:18 网站建设 项目流程

一.必备环境下载

1.安装 Node.js 环境

  1. 更新系统包索引
sudoaptupdate

2.添加 NodeSource 仓库

curl-fsSLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-
  • Ubuntu 默认源没有新版本 Node
  • NodeSource 提供官方维护的高版本 Node

3.安装 Node.js

sudoaptinstall-ynodejs

4.验证安装

node-vnpm-v

回显版本号即成功安装

2.npm 配置

设置国内镜像,因为默认 npm 源在国外

npmconfigsetregistry https://registry.npmmirror.com

3.MongoDB 数据库安装

  1. 安装 MongoDB
sudoaptupdatesudoaptinstall-ymongodb-org

2.启动 MongDB

sudosystemctl start mongodsudosystemctlenablemongod

3.进入 MongoDB Shell

mongosh
  1. 创建数据库和用户
usetwikoo db.createUser({user:"twikoo",pwd:"你的密码",roles:[{ role:"readWrite",db:"twikoo"}]})

5.验证登录

mongosh-utwikoo-p--authenticationDatabasetwikoo

根据提示内容输入密码即可

二、部署 tkserver(Twikoo 后端)

1.全局安装 tkserver(此处需要前面的 Node.js)

sudonpminstall-gtkserver

2.启动 tkserver

MONGODB_URI="mongodb://twikoo:密码@127.0.0.1:27017/twikoo"HOST=127.0.0.1PORT=8080tkserver
  • MONGODB_URI:数据库连接字符串
  • HOST=127.0.0.1:只允许本机访问(安全)
  • PORT=8080:服务端口
名称描述默认值
MONGODB_URIMongoDB 数据库连接字符串,不传则使用 lokijsnull
MONGO_URLMongoDB 数据库连接字符串,不传则使用 lokijsnull
TWIKOO_DATAlokijs 数据库存储路径./data
TWIKOO_PORT端口号8080
TWIKOO_THROTTLEIP 请求限流,当同一 IP 短时间内请求次数超过阈值将对该 IP 返回错误250
TWIKOO_LOCALHOST_ONLY为true时只监听本地请求,使得 nginx 等服务器反代之后不暴露原始端口null
TWIKOO_LOG_LEVEL日志级别,支持verbose/info/warn/errorinfo
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

  1. 如果没有配置 Nginx,那么:
sudoaptinstall-ynginx

2.配置站点

sudonano/etc/nginx/sites-available/twikoo
  1. 配置(以我的站点为例):

注意:要将子域名申请 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 mongod

2.检查 tkserver 是否运行

sudosystemctl status tkserver

4.检查 tkserver 是否监听 8080 端口

ss-tlnp|grep8080

正常应该得到

5.检查 MongDB 是否监听端口

ss-tlnp|grep27017

6.测试接口

浏览器访问:

https://你的站点

得到如图所示即表示 tkserver 没有问题,以上配置完后即可正常在博客主题中加入对应接口,类似以下:

twikoo:{envId:"https://twikoo.sirens007.cn", lang: SITE_LANG,},

至此,以上配置完后相应的评论数据可以通过各种可视化数据库查看,相应访问速度也会更快!

参考文章:

私有部署 - Twikoo 官方文档
以上是我关于twikoo的笔记分享,
感谢你读到这里,这也是我学习路上的一个小小记录。希望以后回头看时,能看到自己的成长~

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询