freenom免费域名自动续期教程
更新
2022/4/20,今天才发现作者把项目地址迁移回去了,到这里的:https://github.com/luolongfei/freenom,下方的教程依旧适用
前言
今天有几个freenom
的免费域名突然不能用了,我挂了自动续期脚本的啊,好家伙不看不知道,一看,项目作者luolongfei
原来的自动续期freenom
项目不明原因被封,估计是与早前的 GitHub Action 事件有关。今天bujj使用docker
方式部署
简介
项目地址:https://github.com/luolongfei/next-freenom
准备
- VPS:随便一台服务器都行,系统bujj喜欢Ubuntu。如果你没有 VPS,那我打个广告
? 我正在用的 Vultr ,注册就送100$ - 宝塔里安装好
docker管理器
,或者docker一键脚本也行:curl -sSL https://get.docker.com/ | sh
部署
1. 命令如下:
docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom
或者,如果你想自定义脚本执行时间,则命令如下:
docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs -e RUN_AT="11:24" luolongfei/freenom
2. 上面这条命令只比上上条命令多了个 -e RUN_AT="11:24"
,其中11:24
表示在北京时间每天的 11:24 执行续期任务,你可以自定义这个时间。 这里的RUN_AT
参数同时也支持 CRON 命令里的时间形式,比如, -e RUN_AT="9 11 * * *"
,表示每天北京时间 11:09 执行续期任务, 如果你不想每天执行任务,只想隔几天执行,只用修改RUN_AT
的值即可。
注意:不推荐自定义脚本执行时间。因为你可能跟很多人定义的是同一个时间点,这样可能导致所有人都是同一时间向 Freenom 的服务器发起请求, 使得 Freenom 无法稳定提供服务。而如果你不自定义时间,程序会自动指定北京时间 06 ~ 23 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。
3. 至此,你的自动续期容器就跑起来了,执行ls -a
后你就可以看到在你的当前目录下,有一个.env
文件和一个logs
目录,logs
目录里面存放的是程序日志, 而.env
则是配置文件,现在直接执行vim .env
将.env
文件里的所有配置项改为你自己的并保存即可。然后重启容器,如果配置正确的话,便很快可以收到相关邮件。
修改配置文件
1.主要是修改两处,一个填写freenom
账号和密码,一处配置通知,bujj习惯用tg机器人,那就启用一下tg bot
2.在.env
文件中, 将TELEGRAM_BOT_ENABLE
的值改为true
,即可启用 Telegram bot,同样的,将MAIL_ENABLE
的值改为false
即可关闭邮件推送方式。 Telegram bot 有两个配置项,一个是chatID
(对应.env
文件中的TELEGRAM_CHAT_ID
), 通过使用你的 Telegram 账户发送/start
给@userinfobot
即可以获取自己的id, 另一个是token
(对应.env
文件中的TELEGRAM_BOT_TOKEN
),你的 Telegram bot 令牌,你会创建 Telegram bot 就知道怎么获取, 不多赘述。如何创建一个 Telegram bot 请参考:官方文档
3.下面我把配置文件贴出来,要修改的地方一共四处,都填入了 www.bujj.org
字样,请配置为自己的。如果你要配置多账户,请找到bujj配置多账户
字眼,并阅读前2行的注释信息,按要求填写就是了。
#####################################################################
# 注意事项
#
# - 环境变量的格式为“键=值”,顶格写,注意等号两边不能有空格,值可以用单引号或者双引号引起来,不引也行(下面的特殊情况必须引起来)
# - 因为环境变量中“#”代表注释,若密码中存在“#”字符的,一定要使用单引号将整个密码引起来,否则解析会在“#”字符前截止,如果密码中存在单双引号的,
# 需要在单双引号前加“\”转义
# - 配置多账户不可省略单引号,且多个账户和密码的格式必须是“<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>”,不要有空格,就算有程序也会给你干掉
# e.g. MULTIPLE_ACCOUNTS='<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>'
# 注意不要省略“<>”符号,否则无法正确匹配
# - 若你只有单个账户,只配置FREENOM_USERNAME和FREENOM_PASSWORD就够了
# - 单账户和多账户的配置会被合并在一起读取并去重
#####################################################################
###################### 账户配置 Account config #########################
# Freenom账户 Freenom Account
FREENOM_USERNAME=www.bujj.org
# Freenom密码 Freenom password
FREENOM_PASSWORD='www.bujj.org'
# 多账户支持 Support for multiple accounts
# 多个账户和密码的格式必须是“<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>”,
# 注意不要省略“<>”符号,否则无法正确匹配。如果设置了多账户,上面的FREENOM_USERNAME 和 FREENOM_PASSWORD可不设置
MULTIPLE_ACCOUNTS='bujj配置多账户'
###################### end 账户配置 #########################
###################### 通知邮件配置 Email config #########################
# 机器人邮箱账户 Email of robot
MAIL_USERNAME=llf.push@gmail.com
# 机器人邮箱密码(Gmail填密码,QQ邮箱或163邮箱填授权码) Password of the robot email
MAIL_PASSWORD=''
# 用于接收通知的邮箱 Email address used to receive notifications
TO=''
# 是否启用邮件推送功能 true:启用 false:不启用 Whether to enable email push features true: enabled false: not enabled
MAIL_ENABLE=false
###################### end 通知邮件配置 #########################
###################### Telegram bot #########################
# 可选配置,通过 Telegram bot 发送通知消息 This is an optional configuration to send notification messages via Telegram bot
# 你的chat_id,通过发送“/start”给@userinfobot可以获取自己的id Your chat_id, you can get your own id by sending "/start" to @userinfobot
TELEGRAM_CHAT_ID='www.bujj.org'
# 你的Telegram bot的token Token for your Telegram bot
TELEGRAM_BOT_TOKEN='www.bujj.org'
# 是否启用 Telegram Bot 功能 true:启用 false:不启用 Whether to enable Telegram Bot features true: enabled false: not enabled
TELEGRAM_BOT_ENABLE=true
###################### end Telegram bot #########################
# 通知频率 0:仅当有续期操作的时候 1:每次执行 Notification frequency 0: Only when there is a renewal operation 1: Each execution
NOTICE_FREQ=1
# 是否验证服务器证书 Whether to verify server certificate
VERIFY_SSL=false
# 是否开启 Debug 模式 Whether to enable debug mode
DEBUG=false
4.重启docker容器
docker restart freenom
重启后消息很快就来了,有几个账号就会来几条通知消息
补充后期容器处理常用命令
查看容器在线状态及大小
docker ps -as
查看容器的运行输出日志
docker logs freenom
重新启动容器
docker restart freenom
停止容器的运行
docker stop freenom
移除容器
docker rm $name
查看 docker 容器占用 CPU,内存等信息
docker stats --no-stream
共有 0 条评论