一.必备环境下载1.安装 Node.js 环境更新系统包索引sudoaptupdate2.添加 NodeSource 仓库curl-fsSLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-Ubuntu 默认源没有新版本 NodeNodeSource 提供官方维护的高版本 Node3.安装 Node.jssudoaptinstall-ynodejs4.验证安装node-vnpm-v回显版本号即成功安装2.npm 配置设置国内镜像因为默认 npm 源在国外npmconfigsetregistry https://registry.npmmirror.com3.MongoDB 数据库安装安装 MongoDBsudoaptupdatesudoaptinstall-ymongodb-org2.启动 MongDBsudosystemctl start mongodsudosystemctlenablemongod3.进入 MongoDB Shellmongosh创建数据库和用户usetwikoo db.createUser({user:twikoo,pwd:你的密码,roles:[{ role:readWrite,db:twikoo}]})5.验证登录mongosh-utwikoo-p--authenticationDatabasetwikoo根据提示内容输入密码即可二、部署 tkserverTwikoo 后端1.全局安装 tkserver此处需要前面的 Node.jssudonpminstall-gtkserver2.启动 tkserverMONGODB_URImongodb://twikoo:密码127.0.0.1:27017/twikooHOST127.0.0.1PORT8080tkserverMONGODB_URI数据库连接字符串HOST127.0.0.1只允许本机访问安全PORT8080服务端口名称描述默认值MONGODB_URIMongoDB 数据库连接字符串不传则使用 lokijsnullMONGO_URLMongoDB 数据库连接字符串不传则使用 lokijsnullTWIKOO_DATAlokijs 数据库存储路径./dataTWIKOO_PORT端口号8080TWIKOO_THROTTLEIP 请求限流当同一 IP 短时间内请求次数超过阈值将对该 IP 返回错误250TWIKOO_LOCALHOST_ONLY为true时只监听本地请求使得 nginx 等服务器反代之后不暴露原始端口nullTWIKOO_LOG_LEVEL日志级别支持verbose/info/warn/errorinfoTWIKOO_IP_HEADERS在一些特殊情况下使用如使用了CloudFlare CDN它会将请求 IP 写到请求头的cf-connecting-ip字段上为了能够正确的获取请求 IP 你可以写成[headers.cf-connecting-ip][]3.后台运行即24 小时不间断运行方法一nohup官方推荐nohupenvMONGODB_URImongodb://twikoo:密码127.0.0.1:27017/twikooHOST127.0.0.1PORT8080tkserver/var/log/tkserver.log21方法二systemctl规范创建服务sudonano/etc/systemd/system/tkserver.service内容[Unit]DescriptionTwikoo ServiceAfternetwork.target[Service]TypesimpleEnvironmentMONGODB_URImongodb://twikoo:密码127.0.0.1:27017/twikooEnvironmentHOST127.0.0.1EnvironmentPORT8080ExecStart/usr/bin/node /usr/lib/node_modules/tkserver/server.jsRestartalwaysUserroot[Install]WantedBymulti-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 Connectionupgrade;# 超时优化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.检查 MongoDBsystemctl 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的笔记分享感谢你读到这里这也是我学习路上的一个小小记录。希望以后回头看时能看到自己的成长~
