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郵箱為範例)
登入到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等)。
參考資料: |