1、引言
众所周知,Freenom是地球上唯一一个提供免费顶级域名的商家,不过需要每年续期,每次续期最多一年。利用docker自动续期Freenom域名,并配置邮件提醒
1.1 项目地址
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),冒号后面是容器的路径,冒号前面是宿主机的路径(只支持绝对路径), |
-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 密码 | - | 是 | 某些特殊字符可能需要转义,详见 |
MULTIPLE_ACCOUNTS | 多账户支持 | - | 否 | 多个账户和密码的格式必须是“`<账户1>@<密码1>\ |
MAIL_USERNAME | 机器人邮箱账户 | - | 否 | 支持 |
MAIL_PASSWORD | 机器人邮箱密码 | - | 否 |
|
TO | 接收通知的邮箱 | - | 否 | 你自己最常用的邮箱,用来接收机器人邮箱发出的域名相关邮件 |
MAIL_ENABLE | 是否启用邮件推送功能 |
| 否 |
默认不启用,如果设为 |
TELEGRAM_CHAT_ID | 你的 | - | 否 | 通过发送 |
TELEGRAM_BOT_TOKEN | 你的 | - | 否 | ---- |
TELEGRAM_BOT_ENABLE | 是否启用 |
| 否 |
默认不启用,如果设为 |
NOTICE_FREQ | 通知频率 |
| 否 |
|
验证配置是否正确
修改并保存.env
文件后,执行docker restart freenom
重启容器,等待 5 秒钟左右,然后执行docker logs freenom
查看输出内容, 观察输出内容中有执行成功
字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。
成功示例
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