VPS利用Docker部署自动续期freenom域名
前言:
可以实现这功能,非常感谢原作者luolongfei的无私贡献。
往时我也是在
Github Actions
实现自动续期freenom域名,但不知名原因已经不能使用了。所以luolongfei大佬也迁移了仓库,根据最新的仓库原码实现了在
VPS部署Docker实现自动续期freenom域名
功能及这篇贴文分享做记录。
限制条件:
-
VPS
或者可以实现Docker
功能的电脑 -
freenom
域名的登入名称及密码 - 发信及收信邮箱
-
Telegram bot
发送通知 (可选)
部署:
事前在
VPS
上已安装了Docker
及Doker-Compose
在这范例中是以
Doker-Compose
形式建立容器
在VPS
建立freenom
目录及进入
mkdir freenom && cd freenom
新建docker-compose.yml
文件
cat > 'docker-compose.yml' <<EOF
version: "3"
services:
freenom:
image: luolongfei/freenom
container_name: freenom
restart: always
# environment:
# - RUN_AT="9 11 * * *"
volumes:
- $PWD:/conf
- $PWD/logs:/app/logs
EOF
按ENTER
完成文件的建立
- RUN_AT="9 11 * * *"
为CRON
命令形式执行任务,如有需要可去掉注释#
(作者不建议,因为每次重启容器都会随机一个时间点,从而保障服务的稳定。)
$PWD
为当前目录
用 docker-compose.yml
创建并启动容器
docker-compose up -d
容器建立后,需要修改 .env
参数才能执行通知服务
-
freenom
域名的登入名称及密码 - 邮箱的发信及收信 (以163邮箱为范例)
![2021-10-05_082818.png][3]
登入到mail.163.com 获取 授权密码
返回VPS
,建立环境变量
DOMAIN_ACC=freenom@gmail.com; DOMAIN_PW=\'freenomPasswd\'; EMAIL_ACC=freenom@163.com; EMAIL_PW=\'emailPasswd\'; EMAIL_REC=\'freenom@163.com\'
资讯如下:
变量 | 例(需要自行更改) | 解释 |
---|---|---|
DOMAIN_ACC | freenom@gmail.com | FREENOM账户 |
DOMAIN_PW | freenomPasswd | FREENOM密码 |
EMAIL_ACC | freenom@163.com | 邮箱账户 |
EMAIL_PW | emailPasswd | 邮箱密码(授权密码) |
EMAIL_REC | freenom@163.com | 接收通知的邮箱 |
修改 .env
参数
sed -i -e "s/FREENOM_USERNAME=593198779@qq.com/FREENOM_USERNAME=$DOMAIN_ACC/g" -e "s/FREENOM_PASSWORD=''/FREENOM_PASSWORD=$DOMAIN_PW/g" -e "s/MAIL_USERNAME=llf.push@gmail.com/MAIL_USERNAME=$EMAIL_ACC/g" -e "s/MAIL_PASSWORD=''/MAIL_PASSWORD=$EMAIL_PW/g" -e "s/TO=''/TO=$EMAIL_REC/g" .env
查看更新后的参数
head -n 37 .env
重新启动容器
docker-compose restart
检视容器日志
docker-compose logs
重新登入到mail.163.com ,可以查看到新邮件
通过 Telegram bot 发送通知消息(可选)
由于需要有访问404区连线,固没有这次的分享。
有这方面需求的伙伴可参考如何通过电报机器人给自己或群组发消息 - 知乎 (zhihu.com)
结语:
当你在不同时段申请了有多个或一堆域名,每次到期前14天都需要登入到Freenom网页续期,但这样的操作好容易有甩漏而且很不便。但有了luolongfei大佬的Docker仓库,大大简化了部署难度,域名期满前透过Docker自动续期,而且支持多种平台部署(如: arm/x86等)。