站点图标 咕嘟博客

Docker搭建云签到项目:qiandao

前言

之前用docker跑的开源云签到,近期想起来看看有没有更新,没想项目已经大变样了,现在可以管理用户、备份配置、导入签到模板等,确实方便了许多。看了一下容器时间,没想过了这么久了,距创建时间已经过去19个月了,感叹一下时间真是过的好快啊。

正好把云签到更新一下,顺便记录一下过程,这里使用MySQL作为云签到的数据库,方便定时备份与管理,宝塔面板环境。

一. 前期准备

1.1 docker环境

已有跳过,官方脚本一把梭

#通用
curl -fsSL https://get.docker.com | bash -s docker
#大陆地区
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

1.2 项目地址

介绍:QianDao for Python3

签到 —— 一个自动签到框架 base on an HAR editor

  • https://hub.docker.com/r/a76yyyy/qiandao
  • https://github.com/qiandao-today/qiandao

二. 开始搭建

2.1 确定容器IP

先查看一下现有容器的IP地址,方便指定放行待会儿创建的qiandao容器的IP地址访问MySQL,因为我容器用的桥接模式,网段和宿主机不一样;

如果直接用host模式没有和宿主机网络隔离就不用这么麻烦了。

#获取所有容器名与对应IP
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

查看现有容器IP地址,然后按顺序推导一下IP地址,就是即将创建的容器IP地址了。

如图,已有最后位容器的IP地址是172.17.0.4,那下一个即是172.17.0.5,那我们创建的qiandao容器IP地址即是172.17.0.5

也可以先跳过这一步,等先创建容器,只不过桥接网络的容器会因连不上宿主机mysql而报错停止,到时再查看IP地址也行,不过需要再之后改一下MySQL并重启容器。

2.2 创建数据库

先创建一个MySQL数据库,

这边使用宝塔面板新建数据库,注意需要记录一下数据库用户名,密码,以及数据库名,这个后面会用到。

然后这里顺便指定一下允许访问这个数据库的IP地址。

即本地地址以及上面获得的qiandao容器的IP地址,

  • 127.0.0.1
  • 172.17.0.5

2.3 放行防火墙

使用的Debian 11 ,有发现还需要放行一下防火墙,不然启动容器还是连不上宿主机MySQL

所以手动放行一下,因为iptables重启就恢复老规则了,需要将规则持久化。

2.3.1 iptables放行访问3306

#172.17.0.5IP地址按需修改
iptables -I INPUT -s 172.17.0.5 -p tcp --dport 3306 -j ACCEPT

2.3.2 保存iptables规则到文件

iptables-save > /etc/iptables.up.rules

2.3.3 添加开机启规则

#这是一整条命令,复制到终端运行
cat > /etc/network/if-pre-up.d/iptables <<EOF
 #!/bin/sh
 /sbin/iptables-restore < /etc/iptables.up.rules
EOF

2.3.4 添加可执行权限

chmod +x /etc/network/if-pre-up.d/iptables

iptables规则配置持久化完成之后,之后有修改或添加新的iptables防火墙规则,

就直接再运行命令保存规则到文件就好了。重启之后就会根据规则文件自动恢复防火墙规则了

iptables-save > /etc/iptables.up.rules

2.4 运行docker容器

注意,汉字部分按需修改

docker run -d --restart=always --name qiandao -p 12235:80 \
    -v /www/data/qiandao/config:/usr/src/app/config \
    --env DB_TYPE=mysql \
    --env JAWSDB_MARIA_URL=mysql://数据库账户:数据库密码@172.17.0.1:3306/数据库名字 \
    --env AES_KEY=AES加密密钥 \
    --env COOKIE_SECRET=cookie加密密钥 \
    a76yyyy/qiandao

参数说明

  • -p 12235:80 \ #前面是访问登录页面的端口,直接访问就是IP:12235
  • v /www/data/qiandao/config:/usr/src/app/config \ #前面为映射的具体路径,按需修改
  • 其他更多参数请参照官方文档按需修改
  • https://hub.docker.com/r/a76yyyy/qiandao

稍微等一下,查看一下容器是否正常运行,

docker logs qiandao

要是显示http server started on 0.0.0.0:80说明正常。

2.5 注册管理员账户

先访问上面映射的IP:端口,用邮箱注册一下账户,这个邮箱随意,反正是自己用,不用验证。

注册完成后在终端设置一下将改邮箱设置为管理员账户。

#执行容器内bash
docker exec -it qiandao /bin/bash
#将邮箱账户设置为管理员
python ./chrole.py 注册邮箱(该用户必须已经注册) admin
#设置完成后退出容器
exit

三. 搭建完成

经过上面步骤,云签到已经搭建完成了,接下来就是添加一下签到模板了,官方有一个公共的模板订阅,如图所示,我们只要添加就好了,也可以去官方的云签到网站去下载签到模板。

有了模板,然后按需添加信息进行签到就好了。

对了,添加的模板需要点击“发布”一下并允许通过,这样才可以成为自己签到服务的公共模板,当另外一个账户登录时就可以使用这些模板了,不然新账户里的签到模板都是空空荡荡的。

好了,教程结束。

退出移动版