Github | 部署域名自动续期程序(Freenom)
本文最后更新于 2023-06-01,文章最后在90天前更新,内容可能已经过时。
由于Freenom近期增加了人机验证,所以自动续期不再有效,只能手动进行续期操作
部署至Github
准备
个人账户过度使用Github Action会被封禁,使用组织账户更保险
配置
首先克隆 项目仓库 到 组织账户
进入克隆好的仓库,点击 设置
-> Secrets and variables
-> Action
添加以下变量:
- [必须] FREENOM_USERNAME
Freenom账户邮箱
- [必须] FREENOM_PASSWORD
Freenom账户密码
- [可选,强烈推荐] MAIL_USERNAME
发信邮箱也就是准备的闲置邮箱
- [可选,强烈推荐] MAIL_PASSWORD
STMP授权密码
- [可选,强烈推荐] TO
接收通知的邮箱
- [可选,强烈推荐] MAIL_ENABLE
是否启用邮件推送功能 true
启用, false
不启用
设为
true
必须要设置TO
MAIL_USERNAME
MAIL_PASSWORD
- [可选] FF_TOKEN
用于登录网页控制台的密码
- [可选,推荐] NOTICE_FREQ
通知邮件发送 1
每天按时执行 0
仅在有域名续期操作时执行
- [可选] WECHAT_CORP_ID
企业微信ID
- [可选] WECHAT_CORP_SECRET
应用凭证密钥
- [可选] WECHAT_AGENT_ID
应用ID
- [可选] WECHAT_ENABLE
是否启用企业微信送信功能 1:启用 0:不启用
部署
点击 Actions
-> set up a workflow yourself
将下面的代码复制进新建的文件中
###### 说明 ######
# 1、Fork 本仓库
# 2、在你 Fork 的本仓库下的 Settings > Secrets 画面追加以下几个 secret 变量:
# FREENOM_USERNAME、FREENOM_PASSWORD、MULTIPLE_ACCOUNTS、MAIL_USERNAME、MAIL_PASSWORD、TO、MAIL_ENABLE、TELEGRAM_CHAT_ID、
# TELEGRAM_BOT_TOKEN、TELEGRAM_BOT_ENABLE、NOTICE_FREQ
# (注:此处列出了所有可用变量,你只用追加你需要用到的变量,变量的具体含义请参考本项目的 .env 文件中的说明,一般情况下,.env 文件中的某些
# 项存在默认值,如果默认值满足你的需求则可不追加到 Secrets,它们会保持默认)
#
# 下面定时任务中的时间是世界时间,每天 10:00 执行,由于创建虚拟环境会消耗时间,故任务会延迟 30 秒左右执行
#
# @Author of yml configuration file: RouRouX <https://github.com/RouRouX> & mybsdc <mybsdc@gmail.com>
#
###### end 说明 ######
name: Run it on action
on:
workflow_dispatch:
push:
branches:
- master
schedule:
- cron: 00 02 *
jobs:
run-it:
runs-on: ubuntu-latest
name: Run it on action
steps:
- name: Checkout master
uses: actions/checkout@v3.1.0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.2'
- name: Setting
run: |
echo 'Renew freenom domain name automatically.'
echo '@Author of yml configuration file: RouRouX <https://github.com/RouRouX> & mybsdc <mybsdc@gmail.com>'
echo '@Url: https://github.com/luolongfei/freenom'
cp .env.example .env
sudo mkdir -p logs/$(date +"%Y")-$(date +"%m")
sudo chmod -Rf 777 logs
if [[ ('${{ secrets.FREENOM_USERNAME }}' '' || '${{ secrets.FREENOM_PASSWORD }}' '') && '${{ secrets.MULTIPLE_ACCOUNTS }}' == '' ]]; then echo '你在 Github 的当前项目的 Settings > Secrets 画面没有设置任何与账户信息相关的 secret 值,无法正常运行,请添加新的 secret 值,设置 FREENOM_USERNAME 与 FREENOM_PASSWORD,或者设置 MULTIPLE_ACCOUNTS,以及 .env 文件中其它必要项,各项的具体含义与格式参考本项目 .env 文件中的说明。'; fi
if [ '${{ secrets.FREENOM_USERNAME }}' != '' ]; then sed -i "s/^FREENOM_USERNAME=.*$/FREENOM_USERNAME='${{ secrets.FREENOM_USERNAME }}'/" .env; fi
if [ '${{ secrets.FREENOM_PASSWORD }}' != '' ]; then sed -i "s/^FREENOM_PASSWORD=.*$/FREENOM_PASSWORD='${{ secrets.FREENOM_PASSWORD }}'/" .env; fi
if [ '${{ secrets.MULTIPLE_ACCOUNTS }}' != '' ]; then sed -i "s/^MULTIPLE_ACCOUNTS=.*$/MULTIPLE_ACCOUNTS='${{ secrets.MULTIPLE_ACCOUNTS }}'/" .env; fi
if [ '${{ secrets.MAIL_USERNAME }}' != '' ]; then sed -i "s/^MAIL_USERNAME=.*$/MAIL_USERNAME='${{ secrets.MAIL_USERNAME }}'/" .env; fi
if [ '${{ secrets.MAIL_PASSWORD }}' != '' ]; then sed -i "s/^MAIL_PASSWORD=.*$/MAIL_PASSWORD='${{ secrets.MAIL_PASSWORD }}'/" .env; fi
if [ '${{ secrets.TO }}' != '' ]; then sed -i "s/^TO=.*$/TO='${{ secrets.TO }}'/" .env; fi
if [ '${{ secrets.MAIL_ENABLE }}' != '' ]; then sed -i "s/^MAIL_ENABLE=.*$/MAIL_ENABLE='${{ secrets.MAIL_ENABLE }}'/" .env; fi
if [ '${{ secrets.TELEGRAM_CHAT_ID }}' != '' ]; then sed -i "s/^TELEGRAM_CHAT_ID=.*$/TELEGRAM_CHAT_ID='${{ secrets.TELEGRAM_CHAT_ID }}'/" .env; fi
if [ '${{ secrets.TELEGRAM_BOT_TOKEN }}' != '' ]; then sed -i "s/^TELEGRAM_BOT_TOKEN=.*$/TELEGRAM_BOT_TOKEN='${{ secrets.TELEGRAM_BOT_TOKEN }}'/" .env; fi
if [ '${{ secrets.TELEGRAM_BOT_ENABLE }}' != '' ]; then sed -i "s/^TELEGRAM_BOT_ENABLE=.*$/TELEGRAM_BOT_ENABLE='${{ secrets.TELEGRAM_BOT_ENABLE }}'/" .env; fi
if [ '${{ secrets.NOTICE_FREQ }}' != '' ]; then sed -i "s/^NOTICE_FREQ=.*$/NOTICE_FREQ='${{ secrets.NOTICE_FREQ }}'/" .env; fi
sed -i "s/^ON_GITHUB_ACTIONS=.*$/ON_GITHUB_ACTIONS=true/" .env
- name: Setup WARP
uses: fscarmen/warp-on-actions@v1
- name: Run
run: |
php run
完成后点击 Start commit
-> Commit new file
即可
最后,在设置的时间左右就可以收到域名续期的邮件了
设置发信时间
打开Actions的文件,找到 schedule: - cron: 00 02 *
,将表达式改为其他的即可
这里使用UTC时间,北京时间需要加+8小时(
00 10 *
就是下午 18:00 发信)
- 感谢你赐予我前进的力量