1、引言

众所周知,Freenom是地球上唯一一个提供免费顶级域名的商家,不过需要每年续期,每次续期最多一年。利用docker自动续期Freenom域名,并配置邮件提醒

1.1 项目地址

freenom自动续期脚本

2、通过docker方式部署

2.1 服务器安装docker

Debian / Ubuntu

apt-get update && apt-get install -y wget vim

CentOS

yum update && yum install -y wget vim

执行此命令等候自动安装 Docker

wget -qO- get.docker.com | bash

说明:请使用 KVM 架构的 VPS,OpenVZ 架构的 VPS 不支持安装 Docker,另外 CentOS 8 不支持用此脚本来安装 Docker。 更多关于 Docker 安装的内容参考 Docker 官方安装指南

2.2 docker启动事项

启动 Docker 服务

systemctl start docker

查看 Docker 运行状态

systemctl status docker

将 Docker 服务加入开机自启动

systemctl enable docker

2.3 通过 Docker 部署域名续期脚本

用 Docker 创建并启动容器

docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom

命令

含义

docker run

开始运行一个容器

-d 参数

容器以后台运行并输出容器 ID

–name 参数

给容器分配一个识别符,方便将来的启动,停止,删除等操作

–restart 参数

配置容器启动类型,always 即为 docker 服务重新启动时自动启动本容器

-v 参数

挂载卷(volume),冒号后面是容器的路径,冒号前面是宿主机的路径(只支持绝对路径),$(pwd)表示当前目录,如果是 Windows 系统,则可用${PWD}替换此处的$(pwd)

-e 参数

指定容器中的环境变量

luolongfei/freenom

这是从 docker hub 下载回来的镜像完整路径名

至此,你的自动续期容器就跑起来了,执行ls -a后你就可以看到在你的当前目录下,有一个.env文件和一个logs目录,logs目录里面存放的是程序日志, 而.env则是配置文件,现在直接执行vim .env.env文件里的所有配置项改为你自己的并保存即可。然后重启容器,如果配置正确的话,便很快可以收到相关邮件。

配置文件

vim .env   #进入核心文件配置
i          #进入文件编辑
esc        #退出文件编辑
:wq        #保存并退出
.env 文件中部分配置项的含义

变量名

含义

默认值

是否必须

备注

FREENOM_USERNAME

Freenom 账户

-


只支持邮箱账户,如果你是使用第三方社交账户登录的用户,请在 Freenom 管理页面绑定邮箱,绑定后即可使用邮箱账户登录

FREENOM_PASSWORD

Freenom 密码

-


某些特殊字符可能需要转义,详见.env文件内注释

MULTIPLE_ACCOUNTS

多账户支持

-


多个账户和密码的格式必须是“`<账户1>@<密码1>\

MAIL_USERNAME

机器人邮箱账户

-


支持GmailQQ邮箱163邮箱以及Outlook邮箱,尽可能使用163邮箱或者QQ邮箱而非Gmail。因为谷歌的安全机制,每次在新设备登录 Gmail 都会先被限制,需要手动解除限制才行。具体的配置方法参考「 配置送信功能 」

MAIL_PASSWORD

机器人邮箱密码

-


Gmail填密码,QQ邮箱163邮箱填授权码

TO

接收通知的邮箱

-


你自己最常用的邮箱,用来接收机器人邮箱发出的域名相关邮件

MAIL_ENABLE

是否启用邮件推送功能

0


1:启用

0:不启用

默认不启用,如果设为1,启用邮件推送功能,则上面的MAIL_USERNAMEMAIL_PASSWORDTO变量变为必填项

TELEGRAM_CHAT_ID

你的chat_id

-


通过发送/start@userinfobot可以获取自己的id

TELEGRAM_BOT_TOKEN

你的Telegram bottoken

-


----

TELEGRAM_BOT_ENABLE

是否启用Telegram Bot推送功能

0


1:启用

0:不启用

默认不启用,如果设为1,则必须设置上面的TELEGRAM_CHAT_IDTELEGRAM_BOT_TOKEN变量

NOTICE_FREQ

通知频率

1


0:仅当有续期操作的时候

1:每次执行

验证配置是否正确

修改并保存.env文件后,执行docker restart freenom重启容器,等待 5 秒钟左右,然后执行docker logs freenom查看输出内容, 观察输出内容中有执行成功 字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。

grafana管理docker实例 docker freenas_容器

成功示例

grafana管理docker实例 docker freenas_容器_02

3、版本升级

.env所在目录,执行docker rm -f freenom删除现有容器,然后再执行 docker rmi -f luolongfei/freenom 删除旧的镜像,然后再执行上面的 docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom 重新部署即可,这样部署后就是最新的代码了。当然,新版对应的.env文件可能有变动,不必担心,程序会自动更新.env文件内容,并将已有的配置迁移过去。

一句话操作,即在.env文件所在目录下执行以下命令,即可完成更新升级:

docker rm -f freenom && docker rmi -f luolongfei/freenom && docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom