reenom domain name renews automatically.

Overview

Freenom:freenom域名自动续期

Build Status Php Version Scrutinizer Code Quality MIT License

Documentation: English version | 中文版

📢 注意

📃 引言

🍭 效果

🎁 事前准备

📪 配置发信邮箱

(下面三种部署方式,选择其中一种即可)

通过 Docker 方式部署(最简单的方式,推荐)

🕹 通过腾讯云函数(SCF)部署

🚧 直接拉取源码部署

📋 捐赠名单 Donate List

捐赠 Donate

🍺 信仰

🌚 作者

📰 更新日志 (每次新版本发布,可以参考此日志决定是否更新)

🎉 鸣谢

🥝 开源协议

📢 注意

  • 之前因为 GitHub Action 事件导致本项目被封禁,而后我短暂将项目转移到了 https://github.com/luolongfei/next-freenom 仓库,然后在 @Mattraks 的提醒下,通过特别的方式恢复了本仓库。
  • 狡兔三窟,临时仓库 https://github.com/luolongfei/next-freenom 也是备用仓库,如若本仓库再次失联,可以移步到备用仓库获取最新消息,正常情况下以后的开发维护依然在本仓库进行。
  • 本次封禁导致的直接后果是以前的 issues 全部丢失,以及 star 数重新归零,在动力上面确实有受到影响,不过也不会有太大影响,本项目依然长期维护,如果项目有帮到你,欢迎 star。
  • 推荐通过 Docker 部署,或者参考下方文档直接搬运到 腾讯云函数 部署,腾讯云函数不需要有自己的服务器。

📃 引言

众所周知,Freenom是地球上唯一一个提供免费顶级域名的商家,不过需要每年续期,每次续期最多一年。由于我申请了一堆域名,而且不是同一时段申请的, 所以每次续期都觉得折腾,于是就写了这个自动续期的脚本。

🍭 效果

邮件示例

无论是续期成败或者脚本执行出错,都会收到的程序发出的邮件。如果是续期成败相关的邮件,邮件会包括未续期域名的到期天数等内容。 邮件参考了微信发送的注销公众号的邮件样式。

🎁 事前准备

  • 发信邮箱:为了方便理解又称机器人邮箱,用于发送通知邮件。目前支持GmailQQ邮箱以及163邮箱,程序会自动判断发信邮箱类型并使用合适的配置。
  • 收信邮箱:用于接收机器人发出的通知邮件。推荐使用QQ邮箱QQ邮箱唯一的好处只是收到邮件会在QQ弹出消息。
  • VPS:随便一台服务器都行,系统推荐Centos7或者Debian,另外 PHP 版本需在php7.2及以上。如果你没有服务器,推荐参考下方文档部署到腾讯云函数。
  • 没有了

📪 配置发信邮箱

下面分别介绍GmailQQ邮箱以及163邮箱的设置,你只用看自己需要的部分。注意,QQ邮箱163邮箱均使用账户加授权码的方式登录, 谷歌邮箱使用账户加密码的方式登录,请知悉。另外还想吐槽一下,国产邮箱你得花一毛钱给邮箱提供方发一条短信才能拿到授权码。

(点击即可展开或收起)

设置Gmail

1、在设置>转发和POP/IMAP中,勾选

  • 对所有邮件启用 POP
  • 启用 IMAP

gmail配置01

然后保存更改。

2、允许不够安全的应用

登录谷歌邮箱后,访问 谷歌权限设置界面 ,启用允许不够安全的应用。

gmail配置02

另外,若遇到提示

不允许访问账户

登录谷歌邮箱后,去 gmail的这个界面 点击允许。这种情况较为少见。


设置QQ邮箱

设置>账户>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务下,开启POP3/SMTP服务

qq邮箱配置01

此时坑爹的QQ邮箱会要求你用手机发送一条短信给腾讯,发送完了点一下我已发送

qq邮箱配置02

然后你就能看到你的邮箱授权码了,使用邮箱账户加授权码即可登录,记下授权码

qq邮箱配置03

qq邮箱配置04


设置163邮箱

设置>POP3/SMTP/IMAP下,开启POP3/SMTP服务IMAP/SMTP服务并保存

163邮箱配置01

163邮箱配置02

现在点击侧边栏的客户端授权密码,并获取授权码,你看到画面可能和我不一样,因为我已经获取了授权码,所以只有重置授权码按钮,这里自己根据网站提示申请获取授权码,网易和腾讯一样恶心,需要你用手机给它发一条短信才能拿到授权码

163邮箱配置03

163 邮箱送信后,接收方如果没收到可以在垃圾邮件里面找一下。


Telegram bot

上面介绍了三种邮箱的设置方法,如果你不想使用邮件推送,也可以使用 Telegram bot,灵活配置。在.env文件中, 将TELEGRAM_BOT_ENABLE的值改为true,即可启用 Telegram bot,同样的,将MAIL_ENABLE的值改为false即可关闭邮件推送方式。 Telegram bot 有两个配置项,一个是chat_id(对应.env文件中的TELEGRAM_CHAT_ID), 通过使用你的 Telegram 账户发送/start@userinfobot即可以获取自己的id, 另一个是token(对应.env文件中的TELEGRAM_BOT_TOKEN),你的 Telegram bot 令牌,你会创建 Telegram bot 就知道怎么获取, 不多赘述。如何创建一个 Telegram bot 请参考:官方文档


与通知相关的设置到此就完成了,下面开始讲本项目的三种使用方式,一种是通过 Docker,另一种是通过腾讯云函数,再一种是直接拉取源码部署,推荐使用 Docker 方式,无需纠结环境。

方式一:通过 Docker 部署(最简单的方式)


Docker 仓库地址为: https://hub.docker.com/r/luolongfei/freenom ,同样欢迎 star 。 此镜像支持的架构为linux/amd64linux/arm64linux/ppc64lelinux/s390xlinux/386linux/arm/v7linux/arm/v6, 理论上支持群晖威联通树莓派以及各种类型的VPS

1、安装 Docker

1.1 以 root 用户登录,执行一键脚本安装 Docker

升级源并安装软件(下面两行命令二选一,根据你自己的系统)

Debian / Ubuntu

apt-get update && apt-get install -y wget vim

CentOS

yum update && yum install -y wget vim

执行此命令等候自动安装 Docker

wget -qO- get.docker.com | bash

说明:请使用 KVM 架构的 VPS,OpenVZ 架构的 VPS 不支持安装 Docker,另外 CentOS 8 不支持用此脚本来安装 Docker。 更多关于 Docker 安装的内容参考 Docker 官方安装指南

1.2 对 Docker 的一些命令操作

查看 Docker 安装版本等信息

docker version

启动 Docker 服务

systemctl start docker

查看 Docker 运行状态

systemctl status docker

将 Docker 服务加入开机自启动

systemctl enable docker

2、通过 Docker 部署域名续期脚本

2.1 用 Docker 创建并启动容器

命令如下

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

上面这条命令只比上上条命令多了个 -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 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。

点我查看上方 Docker 命令的参数解释
命令 含义
docker run 开始运行一个容器
-d 参数 容器以后台运行并输出容器 ID
--name 参数 给容器分配一个识别符,方便将来的启动,停止,删除等操作
--restart 参数 配置容器启动类型,always 即为 docker 服务重新启动时自动启动本容器
-v 参数 挂载卷(volume),冒号后面是容器的路径,冒号前面是宿主机的路径(只支持绝对路径),$(pwd)表示当前目录
-e 参数 指定容器中的环境变量
luolongfei/freenom 这是从 docker hub 下载回来的镜像完整路径名

至此,你的自动续期容器就跑起来了,执行ls -a后你就可以看到在你的当前目录下,有一个.env文件和一个logs目录,logs目录里面存放的是程序日志, 而.env则是配置文件,现在直接执行vim .env.env文件里的所有配置项改为你自己的并保存即可。然后重启容器,如果配置正确的话,便很快可以收到相关邮件。

点我查看 .env 文件中部分配置项的含义
变量名 含义 默认值 是否必须 备注
FREENOM_USERNAME Freenom 账户 - 只支持邮箱账户,如果你是使用第三方社交账户登录的用户,请在 Freenom 管理页面绑定邮箱,绑定后即可使用邮箱账户登录
FREENOM_PASSWORD Freenom 密码 - 某些特殊字符可能需要转义,详见.env文件内注释
MULTIPLE_ACCOUNTS 多账户支持 - 多个账户和密码的格式必须是“ <账户1> @ <密码1> | <账户2> @ <密码2> | <账户3> @ <密码3> ”,注意不要省略“<>”符号,否则无法正确匹配。如果设置了多账户,上面的FREENOM_USERNAMEFREENOM_PASSWORD可不设置
MAIL_USERNAME 机器人邮箱账户 - 支持GmailQQ邮箱以及163邮箱,尽可能使用163邮箱或者QQ邮箱而非Gmail。因为谷歌的安全机制,每次在新设备登录 Gmail 都会先被限制,需要手动解除限制才行。具体的配置方法参考「 配置发信邮箱
MAIL_PASSWORD 机器人邮箱密码 - Gmail填密码,QQ邮箱163邮箱填授权码
TO 接收通知的邮箱 - 你自己最常用的邮箱,推荐使用QQ邮箱,用来接收机器人邮箱发出的域名相关邮件
MAIL_ENABLE 是否启用邮件推送功能 true true:启用
false:不启用
默认启用,如果设为false,不启用邮件推送功能,则上面的MAIL_USERNAMEMAIL_PASSWORDTO变量变为非必须,可不设置
TELEGRAM_CHAT_ID 你的chat_id - 通过发送/start@userinfobot可以获取自己的id
TELEGRAM_BOT_TOKEN 你的Telegram bottoken -
TELEGRAM_BOT_ENABLE 是否启用Telegram Bot推送功能 false true:启用
false:不启用
默认不启用,如果设为true,则必须设置上面的TELEGRAM_CHAT_IDTELEGRAM_BOT_TOKEN变量
NOTICE_FREQ 通知频率 1 0:仅当有续期操作的时候
1:每次执行

更多配置项含义,请参考.env文件中的注释。

如何验证你的配置是否正确呢?

修改并保存.env文件后,执行docker restart freenom重启容器,等待 5 秒钟左右,然后执行docker logs freenom查看输出内容, 观察输出内容中有执行成功字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。

2.2 后期容器处理常用命令

查看容器在线状态及大小

docker ps -as

查看容器的运行输出日志

docker logs freenom

重新启动容器

docker restart freenom

停止容器的运行

docker stop freenom

移除容器

docker rm $name

查看 docker 容器占用 CPU,内存等信息

docker stats --no-stream

有关容器部署的内容结束。

🕹 方式二:通过腾讯云函数(SCF)部署


1、下载 SCF 版本的压缩包

此版本为特别版,支持通过腾讯云函数部署,并且将与主分支同步维护更新,推荐没有自己 VPS 服务器的用户使用,最新版本号为v0.3.1_scf。下载地址: https://github.com/luolongfei/freenom/releases/download/v0.3.1_scf/freenom-0.3.1_scf.zip

下载后你将得到一个 zip 文件,将 zip 文件放到你能找到的任意目录,后面我们将以 zip 文件的形式上传到腾讯云函数。

2、创建腾讯云函数

直接访问腾讯云函数控制台创建云函数: https://console.cloud.tencent.com/scf/list-create , 按照下图所示的说明进行创建。如果无法看清图片,可访问: https://github.com/luolongfei/freenom/blob/main/resources/screenshot/scf.png 或者 https://z3.ax1x.com/2021/10/14/5lMweU.png 查看原图。

scf01

按照上图所示部署完成后,可以点击云函数的名称进入云函数管理画面,管理画面点击函数代码,然后往下翻可看到部署测试按钮,点击测试,稍等几秒钟,即可看到输出日志, 根据输出日志判断配置以及部署是否正确。

scf02

有关腾讯云函数部署的内容结束。

🚧 方式三:直接拉取源码部署


所有操作均在Centos7系统下进行,其它Linux发行版大同小异

1、获取源码

创建文件夹

mkdir -p /data/wwwroot/freenom && cd /data/wwwroot/freenom

clone 本仓库源码

git clone https://github.com/luolongfei/freenom.git ./

2、修改配置

复制配置文件模板

cp .env.example .env

编辑配置文件

vim .env
# 注意事项
# .env 文件里每个项目都有详细的说明,这里不再赘述,简言之,你需要把里面所有项都改成你自己的。需要注意的是多账户配置的格式:
# e.g. MULTIPLE_ACCOUNTS='
   <账户1>
    @
    <密码1>
     |
     <账户2>
      @
      <密码2>
       |
       <账户3>
        @
        <密码3>
         '
        
       
      
     
    
   
# (注意不要省略“<>”符号,否则无法正确匹配)
# 当然,若你只有单个账户,只配置 FREENOM_USERNAME 和 FREENOM_PASSWORD 就够了,单账户和多账户的配置会被合并在一起读取并去重。

# 编辑完成后,按“Esc”回到命令模式,输入“:wq”回车即保存并退出,不会用 vim 编辑器的可以谷歌一下:)

3、添加计划任务

3.1 安装 crontabs 以及 cronie
yum -y install cronie crontabs

验证 crond 是否安装及启动

yum list cronie && systemctl status crond

验证crontab是否安装

yum list crontabs $$ which crontab && crontab -l
3.2 打开任务表单,并编辑
crontab -e
# 任务内容如下
# 此任务的含义是在每天早上 9点 执行 /data/wwwroot/freenom/ 路径下的 run 文件,最佳实践是将这个时间修改为一个非整点的时间,防止与很多人在同一时间进行续期操作导致 freenom 无法稳定提供服务
# 注意:某些情况下,crontab 可能找不到你的 php 路径,下面的命令执行后会在 freenom_crontab.log 文件输出错误信息,你应该指定 php 路径:把下面的 php 替换为 /usr/local/php/bin/php (根据实际情况,执行 whereis php 即可看到 php 执行文件的真实路径)
00 09 * * * cd /data/wwwroot/freenom/ && php run > freenom_crontab.log 2>&1
3.3 重启crond守护进程(每次编辑任务表单后都需此步,以使任务生效)
systemctl restart crond

若要检查计划任务是否正常,你可以将上面的任务执行时间设置在几分钟后,然后等到任务执行完成, 检查/data/wwwroot/freenom/目录下的freenom_crontab.log文件内容,是否有报错信息。常见的错误信息如下:

  • /bin/sh: php: command not found
  • /bin/sh: /usr/local/php: Is a directory

(点击即可展开或收起)

解决方案

执行

whereis php
# 上面的命令可确定 php 执行文件的位置,一般输出为“php: /usr/local/php /usr/local/php/bin/php”,选长的那个即:/usr/local/php/bin/php

现在我们知道 php 执行文件的路径是/usr/local/php/bin/php(根据你自己系统的实际情况,可能不同),然后修改表单任务里的命令,把

00 09 * * * cd /data/wwwroot/freenom/ && php run > freenom_crontab.log 2>&1

改为

00 09 * * * cd /data/wwwroot/freenom/ && /usr/local/php/bin/php run > freenom_crontab.log 2>&1

更多参考:点这里

当然,如果你的计划任务能正确找到php路径,没有错误,那你什么也不用做。

至此,所有的配置都已经完成,下面我们验证一下整个流程是否走通。

3.4 验证

你可以先将.env中的NOTICE_FREQ的值改为1(即每次执行都推送通知),然后执行

cd /data/wwwroot/freenom/ && php run

不出意外的话,你将收到一封关于域名情况的邮件。


遇到任何问题或 Bug 欢迎提 issue (请按模板格式提issue,以便我快速复现你的问题,否则问题会被忽略), 如果Freenom改变算法导致此项目失效,请提 issue 告知,我会及时修复,本项目长期维护。 欢迎star~

📋 捐赠名单 Donate List

非常感谢「 这些用户 」对本项目的捐赠支持!

捐赠 Donate

如果你觉得本项目真的有帮助到你并且想回馈作者,感谢你的捐赠。

PayPal: https://www.paypal.me/mybsdc

Every time you spend money, you're casting a vote for the kind of world you want. -- Anna Lappe

pay

每一次你花的钱都是在为你想要的世界投票。

你的 star 或者小额打赏是我长期维护此项目的动力所在,由衷感谢每一位支持者,“每一次你花的钱都是在为你想要的世界投票”。 另外,将本项目推荐给更多的人,也是一种支持的方式,用的人越多更新的动力越足。

另外还可以通过走我的 Aff 链接的形式捐赠: https://github.com/luolongfei/freenom/wiki/PacificRack-VPS ,你不会因此多花一分钱,但厂商会给推荐者一点奖励。

🍺 信仰

南京市民李先生

认真是我们参与这个社会的方式,认真是我们改变这个社会的方式。 ——李志

🌚 作者

📰 更新日志

此处省略了很多较为久远的记录,以前的日志只记录了比较大的变更,以后的日志会尽可能详尽一些。

[Unreleased]

Added
  • 支持通过 Server酱 以及 企业微信 推送通知
Changed
  • 多个账户的续期结果通知合并为同一条消息
  • 整合各种送信方式,优化相关逻辑
  • 支持交互式安装,免去手动修改配置的繁琐操作

v0.3 - 2021-05-27

Added
  • 追加 Docker 版本,支持通过 Docker 方式部署,简化部署流程

v0.2.5 - 2020-06-23

Added
  • 支持在 Github Actions 上执行(应 GitHub 官方要求,已移除此功能)

v0.2.2 - 2020-02-06

Added
  • 新增通过 Telegram bot 送信
  • 各种送信方式支持单独开关

v0.2 - 2020-02-01

Added
  • 支持多个 Freenom 账户进行域名续期
Changed
  • 进行了彻底的重构,框架化
  • 优化邮箱模块,支持自动选择合适的邮箱配置

(版本在 v0.1 到 v0.2 期间代码有过很多次变更,之前没有发布版本,故此处不再赘述相关变更日志)

v0.1 - 2018-8-13

Added
  • 初版,开源,基础的续期功能

🎉 鸣谢

  • PHPMailer (邮件发送功能依赖此库)
  • guzzle (Curl库)
  • 秋水逸冰 (本项目 Docker 相关文档有参考秋水逸冰的文章)

🥝 开源协议

MIT

Comments
  • 拉取源码执行出现如下错误

    拉取源码执行出现如下错误

    描述问题 index.php根目录执行 php run报错 [2022-06-26 18:44:42] {"type":64,"message":"require(): Failed opening required '/www/wwwroot/freenom/resources/lang/zh_cn:zh.php' (include_path='.:/www/server/php/73/lib/php')","file":"/www/wwwroot/freenom/libs/Lang.php","line":22}

    你做了哪些尝试 重新拉取源码,再次执行

    描述你发现问题后做了哪些尝试,以及尝试结果,方便我快速排除某些问题,提高沟通效率。
    仍然报错
    
    **环境信息**
    
    - 系统:  *(例如 ubuntu 20.04 x64)*
    - PHP 版本:  *(例如 php7.3)*
    - 脚本版本:  *(例如 v0.5)*
    - 是否 Docker:  *(例如 否)*
    
    **额外的备注**
    腾讯云轻量应用服务器安装宝塔面板
    - Add any other context about the problem here.
    - 可额外备注比如你的运行环境是否 NAS,是否宝塔面板等信息
    
    opened by lm379 61
  • cURL error 6: Could not resolve host

    cURL error 6: Could not resolve host

    描述问题

    2022/04/18后tg再未收到freenom容器推送的消息
    昨天查询,发现后台一直在输出'cURL error 6: Could not resolve host'的错误日志
    

    重现步骤

    截图&日志 image

    你做了哪些尝试

    已尝试重启容器、重启docker、更新容器版本
    从软路由ping对应url,其中my.freenom.com无法响应
    

    环境信息

    • 系统: OpenWrt
    • PHP 版本: 未知
    • 脚本版本: v0.4.4 以及 最新
    • 是否 Docker:

    额外的备注

    opened by sean908 28
  • 腾讯云函数部署无法进行smtp(Gmail)送信

    腾讯云函数部署无法进行smtp(Gmail)送信

    描述问题

    无法进行smtp(Gmail)送信。使用腾讯云函数部署。
    已手动测试,账户和密码均无误。
    

    重现步骤

    腾讯云函数中配置变量,并且 .env.example 中设置相同内容。
    

    截图&日志 image

    你做了哪些尝试

    重新配置账户,密码。
    多次测试。
    启用不安全应用访问,并且已经前往[这个页面](https://accounts.google.com/b/0/DisplayUnlockCaptcha)允许登录
    

    环境信息

    • Tencent SCF
    • php7.2
    • freenom续期脚本版本 v0.2.2

    额外的备注

    opened by XiaMoHuaHuo-CN 26
  • 针对 hax vps 报错 cURL error 6: Could not resolve host: my.freenom.com 的解决方案

    针对 hax vps 报错 cURL error 6: Could not resolve host: my.freenom.com 的解决方案

    描述问题 执行报错

    重现步骤 安装好docker,修改env文件后,重启docker,在输入日志 截图&日志 出错:登录 freenom 出错。错误信息:cURL error 6: Could not resolve host: my.freenom.com (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://my.freenom.com/dologin.php(Error code: 34520002) 你做了哪些尝试 重新编辑env文件

    环境信息

    • Ubantu 20
    • php8.0
    • freenom续期脚本版本 v0.4.5

    额外的备注

    • Add any other context about the problem here.
    opened by Altria002 23
  • feature_request 让 Actions 恢复工作

    feature_request 让 Actions 恢复工作

    你好,十分感谢你的项目,我一直使用着,直至两个月前 Actions 跑不动,后面再查了一下资料,发现是 freenom 把 github 的 IP 列为黑名单。于是我在原来的步骤中加上安装 warp ,ac 恢复正常跑。但有点奇怪的是我用最新项目的文件跑不成功的,在最后的 php run 时报错。用一年前的版本则可以。如果可能,麻烦看看,谢谢! 以下是 run.yml 的内容

    ######  说明  ######
    # 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 <[email protected]>
    #
    ######  end 说明  ######
    
    name: Run it on action
    
    on:
      workflow_dispatch:
      push:
        branches:
          - master
      schedule:
        - cron: 20 20 * * 2
    jobs:
      run-it:
        runs-on: ubuntu-latest
        name: Run it on action
        steps:
          - name: Checkout master
            uses: actions/[email protected]
          - 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 <[email protected]>'
              echo '@Url: https://github.com/luolongfei/freenom'
              cp .env.example .env
              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: Install WARP
            run: |
              sudo apt-get -y update
              sudo apt-get -y install --no-install-recommends net-tools iproute2 openresolv dnsutils iptables wireguard-tools
              sudo echo "[Interface]
              PrivateKey = cKE7LmCF61IhqqABGhvJ44jWXp8fKymcMAEVAzbDF2k=
              Address = 172.16.0.2/32
              Address = fd01:5ca1:ab1e:823e:e094:eb1c:ff87:1fab/128
              DNS = 8.8.8.8,8.8.4.4
              MTU = 1280
              [Peer]
              PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
              AllowedIPs = 0.0.0.0/0
              AllowedIPs = ::/0
              Endpoint = 162.159.193.10:2408" | sudo tee /etc/wireguard/wgcf.conf
              sudo wg-quick up wgcf
              sudo curl -s4m8 https://ip.gs/json
          - name: Run
            run: |
              php run
    
    opened by fscarmen 16
  • 无法登录freenom账号,bark发送失败: cURL error 6

    无法登录freenom账号,bark发送失败: cURL error 6

    描述问题

    按文档部署后测试正常,但是第二天登录查看日志时显示:
    无法登录freenom账号,bark发送失败: cURL error 6
    

    重现步骤

    截图&日志 重启docker前 image image 重启docker后 image

    你做了哪些尝试

    重启容器后问题依旧
    重启docker后问题消失,恢复正常
    

    环境信息

    • centos8 x64
    • Docker version 20.10.11, build dea9396
    • freenom续期脚本版本 v0.4.3

    额外的备注

    opened by saidenny 16
  • bug_report 脚本执行出错

    bug_report 脚本执行出错 "cURL error 35"

    描述问题

    推送至tg bot消息显示 "cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to my.freenom.com:443"
    在服务器上使用 docker logs 查询无当日日志信息
    
    已确认 VERIFY_SSL=0
    

    截图&日志 image

    image

    你做了哪些尝试

    1. 重启容器, 报错还是会出现
    2. 手动登录问题账号, 账号可以登录
    

    环境信息

    • 系统: OpenWrt R22.8.18 by lean & lienol
    • PHP 版本: 未知
    • 脚本版本: 0.5
    • 是否 Docker:

    额外的备注 前几天重启过几次服务器, 其中一个freenom账号频繁报相同的错误(cURL error 35), 其它账号则正常

    opened by sean908 12
  • 使用Docker一键更新命令更新失败

    使用Docker一键更新命令更新失败

    描述问题

    使用Docker一键更新命令至最新版运行后仍提示“你当前正在使用的版本为 v0.4.4”
    

    重现步骤

    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
    

    截图&日志 image image

    你做了哪些尝试

    Docker的镜像tag应该已经是latest,想尝试手动更新.env到最新版,但是在项目仓库里没找到.env配置,故打算手动删除容器重新创建
    

    环境信息

    • 系统: CentOS 7.9 x86_64
    • PHP 版本: 5.6.40
    • 脚本版本: v0.5
    • 是否 Docker: 是

    额外的备注

    宝塔面板

    opened by CodeFishK 11
  • bug_report

    bug_report

    描述问题

    root@NAS:/www/server/php/74/bin# php /data/wwwroot/freenom/run                 
     [2022-02-02 01:18:20] {"type":64,"message":"require(): Failed opening required '\/data\/wwwroot\/freenom\/resources\/lang\/en_US:en.php' (include_path='.:')","file":"\/data\/wwwroot\/freenom\/libs\/Lang.php","line":22}
    
    

    重现步骤

    root@NAS:/www/server/php/74/bin# php /data/wwwroot/freenom/run   
    

    截图&日志

    你做了哪些尝试

    描述你发现问题后做了哪些尝试,方便我快速排除某些问题,提高沟通效率。
    

    环境信息

    • debian 10
    • php7.4
    • freenom续期脚本版本 v0.4.4

    额外的备注

    • Add any other context about the problem here.
    opened by 18271211 11
  • 续费失败

    续费失败

    续期请求出错:cURL error 28: Operation timed out after 33001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://my.freenom.com/domains.php?submitrenewals=true

    freenom广电网络进去太慢了 自己续费一个小时加魔法上网都没弄好 切网络还掉登录。。还以为域名不能续费了,就删了。删完才知道没有问题,记混了,是一个期限(14天内)就可以续费,我记成一个期限内就不能续费了以为不能续才报错就删了 好难受。哭哭。

    用的railway 作者可以看看是不是bug,上面废话无视即可,我就报个bug,可以关闭issue

    opened by superen7527 10
  •  通过Railwa部署,拉取6月28日的更新后,日志提示未配置freenom账户信息

    通过Railwa部署,拉取6月28日的更新后,日志提示未配置freenom账户信息

    描述问题

    发现你这边有更新,我重新拉取你的更新到我自己的仓库,Railwa运行后出现如下问题:

    [Info] 已生成 .env 文件,请将 .env 文件中的配置项改为你自己的,然后重启容器(如果你是在第三方 Docker 环境中使用容器,例如 railway/heroku 等平台,可忽略本条提醒) [Info] 你已指定执行时间,续期任务将在北京时间每天 「8:18」 执行 [Info] 计划任务:18 8 * * * php /app/run > /app/logs/freenom_cron.log 2>&1 [2022-06-30 20:27:41] 当前程序版本 v0.5 [2022-06-30 20:27:41] 执行出错:检测到你尚未配置 freenom 账户信息,请修改 .env 文件中与账户相关的项,否则程序无法正常运作(Error code: 34520001) [{"file":"/app/app/Console/FreeNom.php","line":419,"function":"getAccounts","class":"Luolongfei\App\Console\FreeNom","type":"->","args":[]},{"file":"/app/run","line":139,"function":"handle","class":"Luolongfei\App\Console\FreeNom","type":"->","args":[]},{"file":"/app/run","line":150,"function":"run","args":[]}]

    opened by lwb1978 9
  • 新增出错不送信功能

    新增出错不送信功能

    Is your feature request related to a problem? Please describe. 有时一次尝试登录freenom会不成功,需要多次尝试,会带来很多错误提示推送

    Describe the solution you'd like 提供一个参数关掉出错推送,并且在出错退出时包含一个错误代码

    Describe alternatives you've considered 增加多次重试的功能

    Additional context Add any other context or screenshots about the feature request here.

    opened by w311ang 6
  • bug_report

    bug_report

    描述问题 [2022-12-31 19:00:46] 开始处理第 1 个 freenom 账户:[email protected] [1/1] [2022-12-31 19:01:19] 出错:登录 freenom 出错。错误信息:cURL error 28: Operation timed out after 33000 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://my.freenom.com/dologin.php(Error code: 34520002)

    A clear and concise description of what the bug is.
    

    重现步骤

    步骤一
    

    截图&日志

    你做了哪些尝试

    描述你发现问题后做了哪些尝试,以及尝试结果,方便我快速排除某些问题,提高沟通效率。
    

    环境信息

    • 系统: (例如 debian11 x64)
    • PHP 版本: (例如 php8.0)
    • 脚本版本: (例如 v0.4.5)
    • 是否 Docker: (例如 是)

    额外的备注

    • Add any other context about the problem here.
    • 可额外备注比如你的运行环境是否 NAS,是否宝塔面板等信息
    opened by a52948 1
  • 部分域名续期失败

    部分域名续期失败

    [2022-12-29 13:04:06] 当前程序版本 v0.5.1 [2022-12-29 13:04:06] 共发现 3 个 freenom 账户 [2022-12-29 13:04:06] 开始处理第 1 个 freenom 账户: [1/3] [2022-12-29 13:07:47] 续期请求出错:cURL error 28: Operation timed out after 33001 milliseconds with 0 bytes received (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://my.freenom.com/domains.php?submitrenewals=true,域名 ID:1125320873(账户:) [2022-12-29 13:07:50] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125321901(账户:) [2022-12-29 13:07:53] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320872(账户:) [2022-12-29 13:07:55] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125321899(账户:) [2022-12-29 13:07:57] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320324(账户:) [2022-12-29 13:07:59] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320325(账户:) [2022-12-29 13:08:01] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320321(账户:) [2022-12-29 13:08:04] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320322(账户:) [2022-12-29 13:08:07] 续期请求出错:Server error: POST https://my.freenom.com/domains.php?submitrenewals=true resulted in a 500 Internal Server Error response,域名 ID:1125320323(账户:) [2022-12-29 13:08:09] 恭喜,成功续期 7 个域名,失败 9 个域名。详细的续期结果已送信成功,请注意查收。

    opened by zhenkuaileya 1
  • openwrt docker安装至最后出现“docker: failed to register layer: operation not supported”,安装失败

    openwrt docker安装至最后出现“docker: failed to register layer: operation not supported”,安装失败

    描述问题 openwrt docker安装至最后出现“docker: failed to register layer: operation not supported”,安装失败

    A clear and concise description of what the bug is.
    

    重现步骤 拉取镜像至最后出现“docker: failed to register layer: operation not supported”,安装失败

    步骤一
    

    运行“docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom 拉取镜像正常,但到最后出现“docker: failed to register layer: operation not supported”

    截图&日志 docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom Unable to find image 'luolongfei/freenom:latest' locally

    latest: Pulling from luolongfei/freenom 540db60ca938: Pull complete 933cf2f4a68f: Extracting [==================================================>] 1.702MB/1.702MB 93c5cc202a60: Download complete 74403c16157d: Download complete 3ec3ea2589bd: Download complete 506c26a1a3fd: Download complete 1884ed429bfb: Download complete 0426bea1cb5c: Download complete 07191f3eab51: Download complete 6df3a5dcfcbe: Download complete 08bb23c52933: Download complete 888bff0beedb: Download complete 4c43c0236280: Download complete 9e11e9a9f235: Download complete docker: failed to register layer: operation not supported.

    你做了哪些尝试

    描述你发现问题后做了哪些尝试,以及尝试结果,方便我快速排除某些问题,提高沟通效率。
    

    环境信息

    • 系统: openwrt x86-64,R22.03.2, K5.15.77
    • PHP 版本: (例如 php8.0)
    • 脚本版本: (例如 v0.4.5)
    • 是否 Docker: 是,版本20.10.18

    额外的备注

    • Add any other context about the problem here.
    • 可额外备注比如你的运行环境是否 NAS,是否宝塔面板等信息 虚拟机openwrt
    opened by francis5959 2
  • 在Azure的机器上直接拉源码部署运行报错 Docker内可以运行

    在Azure的机器上直接拉源码部署运行报错 Docker内可以运行

    描述问题

    在Azure的机器上直接拉源码部署运行报错 Docker可以运行,我愿意提供Azure的机器给作者来修复此问题
    

    重现步骤

    步骤一
    

    截图&日志 root@AZ10-HK-Docker:~/freenom# php run [2022-12-16 12:12:27] 当前程序版本 v0.5.1 [2022-12-16 12:12:27] 共发现 1 个 freenom 账户 [2022-12-16 12:12:27] 开始处理第 1 个 freenom 账户:1[email protected] [1/1] [2022-12-16 12:12:52] 出错:登录 freenom 出错。错误信息:cURL error 7: Failed to connect to my.freenom.com port 443: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://my.freenom.com/dologin.php(Error code: 34520002) root@AZ10-HK-Docker:~/freenom# docker logs freenom [Info] 已生成 .env 文件,请将 .env 文件中的配置项改为你自己的,然后重启容器,如果当前环境非普通 VPS,可忽略此提示 [Info] 已自动指定执行时间,续期任务将在北京时间每天 「22:12」 执行 [Info] 在没有手动指定 RUN_AT 环境变量的情况下,每次重启容器,程序都会重新在 06 ~ 23 点全时段中自动随机指定一个执行时间,目的是防止很多人在同一个时间点执行任务导致 Freenom 无法稳定提供服务 [Info] 计划任务:12 22 * * * /usr/local/bin/php /app/run > /app/logs/freenom_cron.log 2>&1 [2022-12-16 11:44:01] 当前程序版本 v0.5.1 [2022-12-16 11:44:01] 执行出错:检测到你尚未配置 freenom 账户信息,请修改 .env 文件中与账户相关的项,否则程序无法正常运 作(Error code: 34520001) [{"file":"/app/app/Console/FreeNom.php","line":419,"function":"getAccounts","class":"Luolongfei\App\Console\FreeNom","type":"->","args":[]},{"file":"/app/run","line":139,"function":"handle","class":"Luolongfei\App\Console\FreeNom","type":"->","args":[]},{"file":"/app/run","line":150,"function":"run","args":[]}] [Info] 已自动指定执行时间,续期任务将在北京时间每天 「8:17」 执行 [Info] 在没有手动指定 RUN_AT 环境变量的情况下,每次重启容器,程序都会重新在 06 ~ 23 点全时段中自动随机指定一个执行时间,目的是防止很多人在同一个时间点执行任务导致 Freenom 无法稳定提供服务 [Info] 计划任务:17 8 * * * /usr/local/bin/php /app/run > /app/logs/freenom_cron.log 2>&1 [2022-12-16 11:49:16] 当前程序版本 v0.5.1 [2022-12-16 11:49:16] 共发现 1 个 freenom 账户 [2022-12-16 11:49:16] 开始处理第 1 个 freenom 账户:1*[email protected] [1/1] [2022-12-16 11:49:18] 当前通知频率为「仅当有续期操作时」,故本次不会推送通知 [2022-12-16 11:49:18] 1**[email protected]:执行成功,今次没有需要续期的域名。 你做了哪些尝试

    描述你发现问题后做了哪些尝试,以及尝试结果,方便我快速排除某些问题,提高沟通效率。
    

    环境信息

    • 系统: Ubuntu 18.04.6 LTS (GNU/Linux 5.4.0-1094-azure x86_64)
    • PHP 版本:PHP 7.2.24-0ubuntu0.18.04.15 (cli) (built: Nov 2 2022 09:09:52) ( NTS )
    • 脚本版本:当前程序版本 v0.5.1
    • 是否 Docker: (例如 是)

    额外的备注

    • Add any other context about the problem here.
    • 可额外备注比如你的运行环境是否 NAS,是否宝塔面板等信息
    opened by hui99995 3
Releases(v0.5.1)
  • v0.5.1(Aug 29, 2022)

    • 支持一键部署至 Koyeb、Heroku 等平台,虽然 Heroku 马上要收费了,但 Koyeb 依然免费
    • 优化在各种环境下的目录读写权限判断
    • 支持给日志或者命令行输出内容中的敏感信息打马赛克,默认不启用

    所有端都已更新。各种环境的部署手顺请参考文档。

    另外,热心网友新建了【Freenom 续期事务局】群组,可供交流、测试、反馈,加入可访问 https://t.me/freenom_auto_renew

    Source code(tar.gz)
    Source code(zip)
    freenom_scf.zip(12.94 MB)
  • v0.5(May 15, 2022)

    • 增加支持 华为云函数、Railway 等部署方式
    • 支持在消息中显示服务器信息,该功能默认关闭
    • 优化部分代码逻辑

    Docker 版以及各种云函数版已同步更新,云函数相关版本请参考仓库文档中的说明。

    目前浓眉大眼的 腾讯云函数 开始寻思收费了,不想付费的用户可以使用它的竞品,或者直接迁移到 Railway,Railway 是个不错的替代方案,具体的部署方法参考文档:https://github.com/luolongfei/freenom/wiki/%E9%80%9A%E8%BF%87-Railway-%E9%83%A8%E7%BD%B2

    Source code(tar.gz)
    Source code(zip)
    freenom_scf.zip(6.40 MB)
  • v0.4.5(Feb 26, 2022)

    • 支持多语言,中英文切换
    • 支持自建 Telegram 反代地址 @Mattraks
    • 更新各种依赖库,PHP 版本最低要求不低于 7.3

    Docker 版和云函数版也已经同步更新。云函数版本请直接下载此处的 freenom_scf.zip ,此包可直接以 zip 压缩包的形式上传到云函数环境。

    Source code(tar.gz)
    Source code(zip)
    freenom_scf.zip(6.22 MB)
  • v0.4.4(Dec 14, 2021)

    • 改进与 Cron 表达式验证相关的正则,兼容各种花里胡哨的表达式
    • 支持自动从 Bark url 中提取有效的 Bark key
    • 支持通过 阿里云函数 部署

    Docker 版和云函数版也已经同步更新。云函数版本请直接下载此处的 freenom_scf.zip ,此包可直接以 zip 压缩包的形式上传到云函数环境,详情请参考本仓库文档。此处的云函数 zip 压缩包同时支持 腾讯云函数 和 阿里云函数,做了兼容处理。

    本次更新属于小改动,如果无需要可以选择忽略本版本。

    Source code(tar.gz)
    Source code(zip)
    freenom_scf.zip(5.35 MB)
  • v0.4.3(Nov 7, 2021)

    • 重构了核心续期代码
    • 重构了送信模块
    • 增加了 企业微信 / Server 酱 / Bark 等送信方式
    • Telegram Bot 支持使用代理,应对国内网络环境问题
    • Freenom 账户支持使用代理,应对国内网络环境问题
    • 支持检测新版,有新版本可用时能第一时间收到通知
    • 支持自动热更新 .env 文件内容,免去每次更新后手动复制配置的繁琐步骤
    • 简化 .env 文件中的配置项

    另外,Docker 版和腾讯云函数版也已经同步更新。腾讯云函数版本请直接下载 freenom_scf.zip ,此包可直接以 zip 压缩包的形式上传到腾讯云函数。

    Source code(tar.gz)
    Source code(zip)
    freenom_scf.zip(3.07 MB)
  • v0.3.1_scf(Oct 14, 2021)

  • v0.3(Sep 10, 2021)

  • v0.3_scf(Sep 10, 2021)

Owner
null
CRUD Build a system to insert student name information, grade the class name, and edit and delete this information

CRUD Build a system to insert student name information, grade the class name, and edit and delete this information

Sajjad 2 Aug 14, 2022
The library resolves the address of the nearest server to you by domain name and Your IP address

PHP Domain DNS ?? The library resolves the address of the nearest server to you by domain name and Your IP address Installing $ composer require kayw-

Kay W. 49 May 12, 2021
A WordPress plugin to re-use the same domain name for both your website and your Rebrandly links

By installing this plugin and configuring it to connect with your Rebrandly account, you will be able to create branded links using the same domain yo

null 3 Jan 19, 2022
[DEPRECATED] Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List

DEPRECATED Consider to use https://github.com/jeremykendall/php-domain-parser as maintained alternative. TLDExtract TLDExtract accurately separates th

Oleksandr Fediashov 216 Oct 18, 2022
Plug n play avatar, turn name, email, and any other string into beautiful avatar (or gravatar), effortless.

laravolt/avatar Display unique avatar for any user based on their (initials) name. Preview Installation This package originally built for Laravel, but

Laravolt 1.7k Jan 3, 2023
More options when uploading files such as name changes, resizing or compression through TinyPNG.

Kirby Upload Extended More options when uploading files like name changes, resizing via Kirby or compression and optional resizing via TinyPNG. Thanks

Oli 24 Nov 12, 2022
a framework for WebDevelop based on the mvc structure. The name of this project for Fun because everyone can use it. Completely simple and powerful structure for all your projects

A_A (-.-) ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ |-| █▄─▄▄─█▄─██─▄█─▄▄▄▄█─▄▄▄▄█▄─█─▄█─▄▄▄─██▀▄─██─▄

MasihGhaznavi 7 Jun 29, 2022
Bulk name lookup for database relations

Tatter\Roster Bulk name lookup for database relations in CodeIgniter 4 Quick Start Install with Composer: > composer require tatter/roster Create a Ro

Tatter Software 5 Jun 11, 2022
Laravel package to convert English numbers to Bangla number or Bangla text, Bangla month name and Bangla Money Format

Number to Bangla Number, Word or Month Name in Laravel | Get Wordpress Plugin Laravel package to convert English numbers to Bangla number or Bangla te

Md. Rakibul Islam 50 Dec 26, 2022
Laravel package to convert English numbers to Bangla number or Bangla text, Bangla month name and Bangla Money Format

Number to Bangla Number, Word or Month Name in Laravel | Get Wordpress Plugin Laravel package to convert English numbers to Bangla number or Bangla te

Md. Rakibul Islam 50 Dec 26, 2022
make names from avatar name

Make Profile Image From Name Demo Of Name Like This Mana Lovez : With this package you can easily generate profile photos in different formats (for no

mohammad mohammadi 5 Nov 10, 2021
Use: [i] to share item and name in hand, [coor] to share you current coordinates

General Now you can share your Coordinates and Item with Prefix Example if you type [i] in message, later it will be automatically replaced into the n

ItsRealNise 7 Oct 15, 2021
Feel free to create new file, don't hesitate to pull your code, the most important thing is that the file name here must match your nickname so that file does not conflict with other people.

PHP-Projects hacktoberfest Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to cha

Firmansyah Helmi Kurniawan 43 Nov 28, 2022
PocketMine-MP Plugin for converting items & blocks name to your language.

ConvertName PocketMine-MP Plugin for converting items & blocks name to your language. Usage Due to license issue, I don't put the language files direc

null 6 Aug 25, 2022
Laravel package to convert English numbers to Bangla number or Bangla text, Bangla month name and Bangla Money Format

Number to Bangla Number, Word or Month Name in Laravel | Get Wordpress Plugin Laravel package to convert English numbers to Bangla number or Bangla te

Md. Rakibul Islam 50 Dec 26, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
Official International Name days API library

Official International Name days API library Name day API library for nameday.abalin.net This library makes it easy to send requests towards nameday.a

VojtaN 5 Feb 25, 2022
Yii Aliases - store path aliases, i.e. short name representing a long path

Yii Aliases The package aim is to store path aliases, i.e. short name representing a long path (a file path, a URL, etc.). Path alias value may have a

Yii Software 20 Nov 8, 2022