贴吧云签到的 Docker 部署

Liyi tieba

作为一个吧龄近 9 年,帝吧一贴未曾发纯靠签到涨经验到 13 级的无名吧友,签到自然不能靠手:我从几年前就开始使用贴吧云签到服务了。一开始使用的是别人搭建并公开的免费平台,后来平台开开停停,时常断签,很是麻烦。买了自己的服务器,就想着自己搭一个。搜索了一下,大部分云签到平台都是基于 MoeNetwork/Tieba-Cloud-Sign(无名智者) 这个开源项目的。

该项目支持使用 Docker-Compose 快速部署,因此搭建起来还是很方便的。这里先介绍一下 Docker-Compose:

Docker-Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用 Docker-Compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

简单地说,有的应用需要多个容器联动工作,这是不需要逐一配置启动每个容器,只需要编写一个工程配置文件,用一句命令就可以部署。Docker-Compose 的工程配置文件默认为 docker-compose.yml(可通过环境变量 COMPOSE_FILE-f 参数自定义配置文件)。

部署流程

  1. 安装 docker,安装 docker-compose

    docker 的安装参考这篇博文

    docker-compose 的安装命令如下(Ubuntu):

    1
    2
    #若未安装 pip 需要先 apt install python-pip
    pip install docker-compose
    
  2. 下载工程配置文件

    1
    wget https://raw.githubusercontent.com/zsnmwy/Tieba-Cloud-Sign/master/docker-compose.yml
    

    打开这个配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     version: '3'
     services:
    
     web:
         image: "zsnmwy/tieba-cloud-sign"
         environment:
         DB_HOST: db:3306
         DB_USER: root
         DB_PASSWD: janejane123456
         DB_NAME: tiebacloud
         CSRF: "true"
         ports:
         - "80:8080"
         links:
         - db
         depends_on:
         - db
    
    
     db:
         image: "mysql:5.5"
         environment:
         MYSQL_DATABASE: tiebacloud
         MYSQL_ROOT_PASSWORD: janejane123456
         volumes:
         - /opt/tieba/mysql:/var/lib/mysql
    

    可以看到这个项目包含了两个容器:web 前端界面和 MySQL 数据库,其中默认的数据库用户名密码无需修改。

    可以修改的内容是:

    1. 端口号,即访问云签到网页的端口。初始是 80,也就是 http 默认。如修改为 82 端口:
    1
    2
    ports:
         - "82:8080"
    
    1. 卷映射,即与主机的文件共享。默认是在主机创建了 /opt/tieba/mysql 文件夹来保存数据库资料。

    2. 启动参数。为防止服务器重启后断签,建议分别在 webdb 配置的最后一行加上 restart: always

  3. 开始部署

    1
     docker-compose up -d
    

    参数 -d 意为后台运行。

  4. 访问 <ip:port> ,按照提示进行初始化就可以啦。其中,在配置数据库连接的时候,选择自动导入即可,不用自己输入。

CSRF 配置的手动修改

解释见关于云签到 CSRF 防御。此功能增强了云签到站点的安全性,但实测会导致安装插件出现问题。若要规避此问题,可以在 docker-compose 之前修改配置文件中的 CSRF: "true" 一行,改为 false 即可。

另一种方法是直接修改容器内部的配置,需要在 Web 端初始化好后进行,方法如下:

进入容器,修改 config.php

1
2
docker exec -it tbsign_web_1 /bin/bash
vim config.php

修改为 define('ANTI_CSRF', false); 即可。

插件安装

在 Web 端可以进行插件的安装,实现诸如获取BDUSS、自动刷新贴吧列表等额外功能。

访问插件库,从各插件的项目仓库处下载插件 zip 压缩包,直接在云签到站点的插件管理页面上传即可。

可惜的是,最实用的 百度知道文库签到插件已经很久没有更新维护,早已失效。 发现了一个新的百度知道签到插件(文库签到已废):下载 96dl/Tieba-Cloud-Sign-Plugins 这个项目,把其中的 ver4_zdwk 文件夹压缩为 zip(注意,压缩包内必须是一个名为 ver4_zdwk文件夹!不能直接是 php 文件),然后上传插件安装即可。实测知道签到可用。

-------------本文结束    感谢您的阅读-------------
0%