Skip to content
0

Twikoo使用

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

‍1、docker部署

  • 配置
bash
mkdir /root/twikoo
cat >>/root/twikoo/docker-compose.yaml <<EOF
version: '3'
services:
  twikoo:
    image: imaegoo/twikoo
    container_name: twikoo
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      TWIKOO_THROTTLE: 1000
    volumes:
      - ./data:/app/data
EOF

cd /root/twikoo
docker-compose  up -d
  • 验证
bash
[root@wiki ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
7ccf9098a28c        imaegoo/twikoo      "docker-entrypoint.s…"   28 hours ago        Up 17 hours         0.0.0.0:8080->8080/tcp   twikoo
[root@wiki ~]#
  • 扩展:docker版本
bash
docker 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 来指定数据文件的目录,请自行选择。

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

2、配置 https

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

接下来的步骤如下:

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

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

image-20241223223631415

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

image-20241223223647803

‍我的配置:

image-20241223223820340

  • 我的配置:(注意作者和我这里的配置哦😜😜😜)
bash
cd /etc/nginx/conf.d/
vim twikoo.onedayxyy.cn.conf

[root@docusaurus-wiki conf.d]# cat twikoo.onedayxyy.cn.conf 
server {
    listen 80;
    server_name  twikoo.onedayxyy.cn;
    #配置https重定向
    return 301 https://$host$request_uri;
}

server {
    listen  443 ssl;
    server_name  twikoo.onedayxyy.cn;

    location / {
        proxy_pass http://云服务器ip:8080/; # 实际的后台路径
        client_max_body_size 100M;
        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;
    } 

    
    ssl_certificate             /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key         /etc/letsencrypt/live/onedayxyy.cn/privkey.pem; 
    
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000";
    
    access_log /var/log/nginx/photo.onedayxyy.cn.https.log;
}

nginx -t
  • 重启下nginx

nginx -s reload

  • 验证

https://twikoo.onedayxyy.cn

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

image-20241223225041726

结束。

最近更新