前言
之前用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
三. 搭建完成
经过上面步骤,云签到已经搭建完成了,接下来就是添加一下签到模板了,官方有一个公共的模板订阅,如图所示,我们只要添加就好了,也可以去官方的云签到网站去下载签到模板。
有了模板,然后按需添加信息进行签到就好了。
对了,添加的模板需要点击“发布”一下并允许通过,这样才可以成为自己签到服务的公共模板,当另外一个账户登录时就可以使用这些模板了,不然新账户里的签到模板都是空空荡荡的。
好了,教程结束。
- 文章参考来源:
- iptables