hugo-teek is loading...

Twikoo部署

最后更新于:

实战-docker部署twikoo-20250308(测试成功)

‍1、docker部署

  • 配置
 1mkdir /root/twikoo
 2cat >>/root/twikoo/docker-compose.yaml <<EOF
 3version: '3'
 4services:
 5  twikoo:
 6    image: imaegoo/twikoo
 7    container_name: twikoo
 8    restart: unless-stopped
 9    ports:
10      - 8080:8080
11    environment:
12      TWIKOO_THROTTLE: 1000
13    volumes:
14      - ./data:/app/data
15EOF
16
17cd /root/twikoo
18docker-compose  up -d
  • 验证
1[root@wiki ~]# docker ps
2CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
37ccf9098a28c        imaegoo/twikoo      "docker-entrypoint.s…"   28 hours ago        Up 17 hours         0.0.0.0:8080->8080/tcp   twikoo
4[root@wiki ~]# 
  • 扩展:docker版本
1docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo
  • 官方文档:

https://twikoo.js.org/backend.html

image-20241223221947822

image-20241223222013567

==Twikoo 目录结构:==

在私有部署的情况下,在你执行 tkserver 的时候,就会在当前目录创建:

  • data 文件夹:存放评论数据、配置等
  • tkserver.log:日志文件

因此,有必要在你自己指定的目录下启动 tkserver,方便后期的数据备份、日志分析等。

如果你使用的是 Docker,在上述命令里其实也用了 ${PWD}/data 来指定数据文件的目录,请自行选择。

1[root@wiki ~]# cd twikoo/
2[root@wiki twikoo]# ls
3data  docker-compose.yaml
4[root@wiki twikoo]# ls data/
5db.json  db.json.0  db.json.1  db.json.2
6[root@wiki twikoo]# 

2、配置 https

理论上这样部署,就完成后台的部分了,但鉴于我的网站用了 HTTPS,而 Twikoo 本身并不支持,因此还需要做反向代理

接下来的步骤如下:

  1. 再申请和购买一个 SSL 证书
  2. 配置 cname
  3. 下载证书放到 Linux 服务器上
  4. 配置 Nginx 反向代理

购买 HTTPS 证书,这里我用二级域名的:

image-20241223223631415

然后在云服务器控制台上配置 cname:

image-20241223223647803

‍我的配置:

image-20241223223820340

  • 我的配置:(注意作者和我这里的配置哦😜😜😜)
 1cd /etc/nginx/conf.d/
 2vim twikoo.onedayxyy.cn.conf
 3
 4[root@docusaurus-wiki conf.d]# cat twikoo.onedayxyy.cn.conf 
 5server {
 6    listen 80;
 7    server_name  twikoo.onedayxyy.cn;
 8    #配置https重定向
 9    return 301 https://$host$request_uri;
10}
11
12server {
13    listen  443 ssl;
14    server_name  twikoo.onedayxyy.cn;
15
16    location / {
17        proxy_pass http://云服务器ip:8080/; # 实际的后台路径
18        client_max_body_size 100M;
19        proxy_set_header Host $host;
20        proxy_set_header X-Real-IP $remote_addr;
21        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
22        proxy_set_header X-Forwarded-Proto $scheme;
23    } 
24
25    
26    ssl_certificate             /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
27    ssl_certificate_key         /etc/letsencrypt/live/onedayxyy.cn/privkey.pem; 
28    
29    ssl_session_timeout 5m;
30    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
31    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
32    ssl_prefer_server_ciphers on;
33    add_header Strict-Transport-Security "max-age=31536000";
34    
35    access_log /var/log/nginx/photo.onedayxyy.cn.https.log;
36}
37
38nginx -t
  • 重启下nginx

nginx -s reload

  • 验证

https://twikoo.onedayxyy.cn

这样,访问 https://twikoo.peterjxl.com/,就会转发到我的服务器 IP:8080 ,完成反向代理:

image-20241223225041726

结束。

推荐使用微信支付
微信支付二维码
推荐使用支付宝
支付宝二维码
最新文章

文档导航