作为一个吧龄近 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
参数自定义配置文件)。
部署流程
-
安装 docker,安装 docker-compose
docker 的安装参考这篇博文。
docker-compose 的安装命令如下(Ubuntu):
1
2#若未安装 pip 需要先 apt install python-pip pip install docker-compose
-
下载工程配置文件
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
26version: '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 数据库,其中默认的数据库用户名密码无需修改。
可以修改的内容是:
- 端口号,即访问云签到网页的端口。初始是 80,也就是 http 默认。如修改为 82 端口:
1
2ports: - "82:8080"
-
卷映射,即与主机的文件共享。默认是在主机创建了
/opt/tieba/mysql
文件夹来保存数据库资料。 -
启动参数。为防止服务器重启后断签,建议分别在
web
和db
配置的最后一行加上restart: always
-
开始部署
1
docker-compose up -d
参数
-d
意为后台运行。 -
访问 <ip:port> ,按照提示进行初始化就可以啦。其中,在配置数据库连接的时候,选择自动导入即可,不用自己输入。
CSRF 配置的手动修改
解释见关于云签到 CSRF 防御。此功能增强了云签到站点的安全性,但实测会导致安装插件出现问题。若要规避此问题,可以在 docker-compose 之前修改配置文件中的 CSRF: "true"
一行,改为 false
即可。
另一种方法是直接修改容器内部的配置,需要在 Web 端初始化好后进行,方法如下:
进入容器,修改 config.php
:
1 |
|
修改为 define('ANTI_CSRF', false);
即可。
插件安装
在 Web 端可以进行插件的安装,实现诸如获取BDUSS、自动刷新贴吧列表等额外功能。
访问插件库,从各插件的项目仓库处下载插件 zip 压缩包,直接在云签到站点的插件管理页面上传即可。
可惜的是,最实用的 百度知道文库签到插件已经很久没有更新维护,早已失效。 发现了一个新的百度知道签到插件(文库签到已废):下载 96dl/Tieba-Cloud-Sign-Plugins 这个项目,把其中的 ver4_zdwk
文件夹压缩为 zip(注意,压缩包内必须是一个名为 ver4_zdwk
的文件夹!不能直接是 php 文件),然后上传插件安装即可。实测知道签到可用。