通过 Docker 部署(推荐,最简单的部署方式)
Docker 仓库地址为: https://hub.docker.com/r/luolongfei/freenom ,同样欢迎 star 。
此镜像支持的架构为linux/amd64
,linux/arm64
,linux/ppc64le
,linux/s390x
,linux/386
,linux/arm/v7
,linux/arm/v6
, 理论上支持群晖
、威联通
、树莓派
以及各种类型的VPS
。
1、安装 Docker
1.1 以 root 用户登录,执行一键脚本安装 Docker
升级源并安装软件(下面两行命令二选一,根据你自己的系统)
Debian / Ubuntu
1 | apt-get update && apt-get install -y wget vim |
CentOS
1 | yum update && yum install -y wget vim |
执行此命令等候自动安装 Docker
1 | wget -qO- get.docker.com | bash |
说明:请使用 KVM 架构的 VPS,OpenVZ 架构的 VPS 不支持安装 Docker,另外 CentOS 8 不支持用此脚本来安装 Docker。 更多关于 Docker
安装的内容参考 Docker 官方安装指南 。
1.2 针对 Docker 执行以下命令
启动 Docker 服务
1 | systemctl start docker |
查看 Docker 运行状态
1 | systemctl status docker |
将 Docker 服务加入开机自启动
1 | systemctl enable docker |
2、通过 Docker 部署域名续期脚本
2.1 用 Docker 创建并启动容器
命令如下
1 | docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom |
或者,如果你想自定义脚本执行时间,则命令如下
1 | docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs -e RUN_AT="11:24" luolongfei/freenom |
上面这条命令只比上上条命令多了个-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 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。
变量名 | 含义 | 默认值 | 是否必须 | 备注 |
---|---|---|---|---|
FREENOM_USERNAME | Freenom 账户 | - | 是 | 只支持邮箱账户,如果你是使用第三方社交账户登录的用户,请在 Freenom 管理页面绑定邮箱,绑定后即可使用邮箱账户登录 |
FREENOM_PASSWORD | Freenom 密码 | - | 是 | 某些特殊字符可能需要转义,详见.env 文件内注释 |
MULTIPLE_ACCOUNTS | 多账户支持 | - | 否 | 多个账户和密码的格式必须是“`<账户1>@<密码1>\ |
MAIL_USERNAME | 机器人邮箱账户 | - | 否 | 支持Gmail 、QQ邮箱 、163邮箱 以及Outlook邮箱 ,尽可能使用163邮箱 或者QQ邮箱 而非Gmail 。因为谷歌的安全机制,每次在新设备登录 Gmail 都会先被限制,需要手动解除限制才行。具体的配置方法参考「 配置送信功能 」 |
MAIL_PASSWORD | 机器人邮箱密码 | - | 否 | Gmail 填密码,QQ邮箱 或163邮箱 填授权码 |
TO | 接收通知的邮箱 | - | 否 | 你自己最常用的邮箱,用来接收机器人邮箱发出的域名相关邮件 |
MAIL_ENABLE | 是否启用邮件推送功能 | 0 | 否 | 1 :启用0 :不启用默认不启用,如果设为1 ,启用邮件推送功能,则上面的MAIL_USERNAME 、MAIL_PASSWORD 、TO 变量变为必填项 |
TELEGRAM_CHAT_ID | 你的chat_id | - | 否 | 通过发送/start 给@userinfobot 可以获取自己的id |
TELEGRAM_BOT_TOKEN | 你的Telegram bot 的token | - | 否 | |
TELEGRAM_BOT_ENABLE | 是否启用Telegram Bot 推送功能 | 0 | 否 | 1 :启用0 :不启用默认不启用,如果设为1 ,则必须设置上面的TELEGRAM_CHAT_ID 和TELEGRAM_BOT_TOKEN 变量 |
NOTICE_FREQ | 通知频率 | 1 | 否 | 0 :仅当有续期操作的时候1 :每次执行 |
更多配置项含义,请参考 .env.example 文件中的注释。
如何验证你的配置是否正确呢?
修改并保存.env
文件后,执行docker restart freenom
重启容器,等待 5 秒钟左右,然后执行docker logs freenom
查看输出内容, 观察输出内容中有执行成功
字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。
如何升级到最新版或者重新部署呢?
在.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
文件内容,并将已有的配置迁移过去。
2.2 后期容器管理以及 Docker 常用命令
查看容器在线状态及大小
1 | docker ps -as |
查看容器的运行输出日志
1 | docker logs freenom |
重新启动容器
1 | docker restart freenom |
停止容器的运行
1 | docker stop freenom |
移除容器
1 | docker rm -f freenom |
查看 docker 容器占用 CPU,内存等信息
1 | docker stats --no-stream |
查看 Docker 安装版本等信息
1 | docker version |
重启 Docker(非容器)
1 | systemctl restart docker |
2.通过腾讯云函数部署
推荐没有自己服务器的用户使用。
1、下载腾讯云函数版的压缩包
腾讯云函数版将与主版同步维护更新,腾讯云函数和阿里云函数使用的是同一个压缩包,下载地址:
https://github.com/luolongfei/freenom/releases/download/v0.4.5/freenom_scf.zip
。本文档会在发布新版的时候同步更新此处的压缩包下载地址,所以不必担心,你看到的下载地址指向的包一定是最新版本。
下载后你将得到一个 zip 文件,将 zip 文件放到你能找到的任意目录,后面我们将以 zip 文件的形式上传到腾讯云函数。
2、创建腾讯云函数
直接访问腾讯云函数控制台创建云函数: https://console.cloud.tencent.com/scf/list-create?rid=5&ns=default&createType=empty
,按照下图所示的说明进行创建。如果无法看清图片,直接点击图片即可查看原图。我未截图说明的地方保持默认即可。
按照上图所示部署完成后,可以点击云函数的名称进入云函数管理画面,管理画面点击函数代码,然后往下翻可看到部署
与测试
按钮,点击测试
,稍等几秒钟,即可看到输出日志, 根据输出日志判断配置以及部署是否正确。
如何在腾讯云函数修改或者新增环境变量呢?
如果你在创建腾讯云函数的时候,某些环境变量忘记填了,或者在创建腾讯云函数后想要修改或者新增某些环境变量,可以参考这里操作,无需重建:
所有受支持的环境变量及其含义请参考 .env.example 文件。