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查看输出内容, 观察输出内容中有执行成功
字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。

成功示例

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

docker自动续期Freenom域名,配置邮件提醒相关推荐

  1. 02 Hexo博客Butterfly主题配置博客评论邮件提醒

    概述 个人博客搭建成功后已经上线运行了好久,但是一直没有时间配置评论区的邮件提醒功能,所以今晚有时间就抽空配置了,然后将操作过程做一下记录. 前提条件 一个已经上线运行的Hexo博客(至于用什么主题都 ...

  2. Hue创建oozie workflow调度,Hue创建workflow,HUE配置邮件告警

    1.配置sqoop驱动 注:配置此驱动,解决在workflow中sqoop无法找到mysql驱动报错 (1)上传mysql-connector-xxx.jar cp mysql-connector-j ...

  3. 免费https证书(泛域名的,自动续期)

    实现目标:免费https证书,是泛域名的!泛域名的!就是*.baidu.com这种,内置自动续期!自动续期! certbot certbot 免费泛域名证书的生成,容器启动自动生成,容器自动证书自动续 ...

  4. Let's Encrypt证书生成,certbot-auto 生成ssl通用证书 配置https 自动续期

    Let's Encrypt是一个 CA 机构,但这个 CA 机构是免费的!!!签发证书不需要任何费用, 为了实现通配符证书,Let's Encrypt 对 ACME 协议的实现进行了升级,只有 v2 ...

  5. docker compose容器域名配置

    docker容器的配置本来是交给测试来做的,我对此是一无所知的,但是有一次rocketmq的域名配置出了问题,而测试又只是依样画葫芦,碰到变化的情况就抓瞎了,搞了一天都没搞出来,所以我只好花费时间,解 ...

  6. 阿里云-邮件推送 配置 购买域名 配置域名

    阿里云-邮件推送 配置 购买域名 配置域名 1.邮件推送是什么: 2.为什么要用它 3.如何使用? 3.1 第一步:创建发信域名 第二步. 创建发信地址 第三步. 再创建一个模板,这个需要审核. 最后 ...

  7. 力扣每日一题每天自动邮件提醒

    A.需求来源与分析 需求来源于生活,对于只是偶尔有兴趣做做题的我,力扣的每日一题对我一直有以下的不便: 太简单不想做,需要花太多时间的不想做,每天打开力扣其实只是想看一下是什么题,有意思才做. 看题需 ...

  8. 【爬虫】力扣每日一题每天自动邮件提醒!!!

    使用python实现了一个力扣每日一题每天自动邮件提醒的小爬虫,小但实用!!! 文章目录 A.需求来源与分析 B.技术角度分析 C.具体分析步骤 1.接口协议分析 2.发邮件 3.写crontab放服 ...

  9. 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群

    今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...

最新文章

  1. Decommissioning a Domain Controller 降域控
  2. 技术团队的工程师文化:效率与价值
  3. ECMAScript 和 JavaScript 的关系
  4. 15张图呈现数据库事务背后的并发原理
  5. JS ||(或运算)详解
  6. ASP.NET后台注册javascript脚本方法
  7. linux下包管理工具apt-get
  8. MTK7621 uboot编译与烧写
  9. Direct3D9初始化-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(6)
  10. 一台服务器​最大并发 tcp 连接数多少?65535?
  11. 悉尼大学商业数据科学与计算机学院,悉尼大学数据科学专业
  12. 1373:鱼塘钓鱼(fishing)
  13. 嵌入式pcb打造超薄降压模块让14500锂电池直接替代5号电池
  14. 宝宝大战落幕,互联网金融二战爆发
  15. From Word Embeddings To Document Distances论文总结
  16. Android Studio 命令行Gradle编译
  17. .net mvc 利用分部视图局部刷新.
  18. 技术从业者的未来(三)
  19. STM32使用SDIO进行SD卡读写关于库函数获取SD卡信息
  20. LF 和 CRLF 是什么

热门文章

  1. 图像哈希检索背景综述(二)——哈希检索算法总结
  2. maven常见面试题
  3. Android eclipse RenderScript 初探(快速处理图片)
  4. 计算机同会计专业相结合的应用,现代信息科技在会计学专业教学应用实践.doc...
  5. OFDM系统架构梳理(1)
  6. 合成孔径雷达成像matlab,合成孔径雷达成像Matlab仿真研究.doc
  7. Hyper-v虚拟机怎么连接U盘教学
  8. 开关电源-EMC问题
  9. Office 2010 集成SP包简明教程
  10. 空调匹数与制冷量及适用面积