Login

Navigation

This articles is published 115 days ago and last updated 7 days ago, some information may be out of date.

VPS利用Docker部署自動續期freenom域名

Cover.png

前言:
可以實現這功能,非常感謝原作者luolongfei的無私貢獻。

往時我也是在Github Actions實現自動續期freenom域名,但不知名原因已經不能使用了。

所以luolongfei大佬也遷移了倉庫,根據最新的倉庫原碼實現了在VPS部署Docker實現自動續期freenom域名功能及這篇貼文分享做記錄。

限制條件:
  • VPS或者可以實現Docker功能的電腦
  • freenom域名的登入名稱及密碼
  • 發信及收信郵箱
  • Telegram bot 發送通知 (可選)
部署:
事前在VPS上已安裝了DockerDoker-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 創建並啟動容器

2021-10-04_121337.png

docker-compose up -d

容器建立後,需要修改 .env 參數才能執行通知服務

  • freenom域名的登入名稱及密碼
  • 郵箱的發信及收信 (以163郵箱為範例)

2021-10-05_082818.png

登入到mail.163.com 穫取 授權密碼

返回VPS,建立環境變量

[email protected]; DOMAIN_PW=\'freenomPasswd\'; [email protected]; EMAIL_PW=\'emailPasswd\'; EMAIL_REC=\'[email protected]\'

資訊如下:

變量例(需要自行更改)解釋
DOMAIN_ACC[email protected]FREENOM賬戶
DOMAIN_PWfreenomPasswdFREENOM密碼
EMAIL_ACC[email protected]郵箱賬戶
EMAIL_PWemailPasswd郵箱密碼(授權密碼)
EMAIL_REC[email protected]接收通知的郵箱

修改 .env 參數

sed -i -e "s/[email protected]/FREENOM_USERNAME=$DOMAIN_ACC/g" -e "s/FREENOM_PASSWORD=''/FREENOM_PASSWORD=$DOMAIN_PW/g" -e "s/[email protected]/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

2021-10-05_092324.png

重新啟動容器

docker-compose restart

檢視容器日誌

docker-compose logs

2021-10-04_122455.png

重新登入到mail.163.com ,可以查看到新郵件

2021-10-05_093026.png

通過 Telegram bot 發送通知消息(可選)
由於需要有訪問404區連線,固沒有這次的分享。

有這方面需求的伙伴可參考如何通過電報機器人給自己或群組發消息 - 知乎 (zhihu.com)

2021-10-05_093737.png

2022年1月更新

Update_Domains.jpg

結語:
當你在不同時段申請了有多個或一堆域名,每次到期前14天都需要登入到Freenom網頁續期,但這樣的操作好容易有甩漏而且很不便。但有了luolongfei大佬的Docker倉庫,大大簡化了部署難度,域名期滿前透過Docker自動續期,而且支持多種平台部署(如: arm/x86等)。
參考資料: