前言:
插件系统是unraid的特色,有很多东西都可以通过插件系统,安装在unraid系统里面,此教程需要一些基本条件,有能力的兄弟们可以弄个属于自己的插件服务器!
教程:
在制作插件之前,我们需要注意两个问题:
- 第一个:本地安装插件,制作好以后,将文件放入指定位置,重启系统自动安装。
- 第二个:使用nginx 搭建web服务器,然后使用本地web服务器在线安装,也可以分享给小伙伴进行在线安装,无需重启系统。
这里我更推荐,使用web服务器进行在线安装,无需重启。
web服务器:
服务器可以选择的类型很多,比如apache,nginx,iis 或者是OSS, 7牛的镜像都可以。
这里我推荐linuxserver的nginx服务器镜像,在APPS商店查找,之后默认安装就可以,阿里云的oss 和其他7牛的镜像存储,都有个刷新的问题,可能你上传了插件,你当地的CDN 迟迟不更新还需要手动刷新!所以本地的web服务器是一个不错的选择。
默认即可什么都不需要配置!
注意:这里配置完成后,nginx的默认根目录在/mnt/user/appdata/nginx/www
我们在根目录下创建一个名为plugins的插件目录!
mkdir -p /mnt/user/appdata/nginx/www/plugins
下面是重点!
插件的解析:
下面这些 是我之前写的加速插件,我针对下面的内容进行注释!
插件其实结构也很简单
开头基本可以不变,修改对应的名字 图标 插件地址即可!
插件的流程基本就是开头基本信息,然后日志,插件前期运行的前期准备,比如创建文件夹,给文件夹特定权限!
然后下载数据包,并安装。
到最后是不用插件了,删除的部分!
<?xml version='1.0' standalone='yes'?> <!DOCTYPE PLUGIN [ <!ENTITY title "unRAID 加速插件"> ###插件名字 <!ENTITY name "speed.rsg"> ###插件路径的名字 <!ENTITY author "RSG-人生观"> ###作者的名字 <!ENTITY version "2020.08.23a"> ###这里是版本更新版本,但是默认我都是按照日期来当作版本 <!ENTITY pluginURL "https://download.unraid.info:2018/plugins/&name;/&name;.plg"> ###这里是插件的地址,开头部分是服务器地址,端口(2018)后面的服务器的路径。 把这行里面所有的变量加进去,的出来的结果是https://download.unraid.info:2018/plugins/speed.rsg/speed.rsg.plg希望大家能理解。 ] 注意:上面的内容凡是开头带有ENTITY全部都是插件内的环境变量,注意书写的内容,再就是unraid的插件变量是&开头不是shell脚本的$开头这里需要注意,别写错了! <PLUGIN name="&title;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="6.6.6" support="https://www.lxg2016.com" icon="users">###这里无特殊求可以不用更改 这里的内容,大致就是支持这个插件的教程页面图标以及最低安装版本!可以根据自己情况修改或者不改 <CHANGES> ###每次更新的版本内容,类似于更新日志 ###2020.08.23a - 修复BUG - 移除对媒体库搜刮支持 ###2020.08.23-1 - 修复Openssl错误 - 精简插件包体积 ###2020.08.22 - 修复服务器错误 ###2020.08.08 - 增加TLS通讯加密 - 使用时需要将unraid HTTPS 端口改为非443端口 - 解密客户端需要占用443端口 - 最好删掉旧插件重新安装插件 ###2020.08.05 - BUG修复 ###2020.08.04-2 - 增加针对NVIDIA插件支持 ###2020.08.04 - 修复逻辑错误导致的部分文件体积增长 - 修复部分bug ###2020.08.03-3 - 修复逻辑错误,更新前,请删除插件,重启unraid服务器,在进行安装 ###2020.08.03 - 修复BUG ###v0.2 - 增加plex部分支持 - 增加部分PT站点支持 ###V0.1 - 初始测试版本 </CHANGES> <FILE Run="/bin/bash"> ###插件的前期准备工作,注意 Run后面的指定的解释器,这里给的是bash在INLINE开头到/INLINE之间的内容,是执行的脚本,可以输入命令,脚本以及变量 <INLINE> mkdir -p /boot/config/plugins/&name; if [ ! -f "/tmp/hosts" ]; then cp /etc/hosts /tmp/hosts fi </INLINE> </FILE> ###注意:准备工作不是必须,根据自己情况选择这一段。 <!-- The 'source' file. ### 下载插件的文件包,并执行安装,这里的txz文件 可以自己封包,也可以去下载! --> <FILE Name="/boot/config/plugins/&name;/&name;-&version;.txz" Run="upgradepkg --install-new --reinstall"> <URL>https://download.unraid.info:2018/plugins/&name;/&name;-&version;.txz</URL> ###txz的安装包位置 </FILE> ###注意:如果你只是为了用插件安装特定的软件包,例如unraid的perl这个包大家都出现无法安装网络问题,就可以去参考unRAID 拆包安装自定义应用 - RSG-人生观 (lxg2016.com)此篇内容去下载txz安装包 <!-- The 'post-install' script ### 安装部分 这里没什么好说的,如果只是为了安装支持包 这里是可以直接删掉的 --> <FILE Run="/bin/bash"> <INLINE> echo "config" ps -ef | grep stunnel | grep -v grep | awk '{print $2}' | xargs kill -9 cat '/tmp/hosts' >> /etc/hosts stunnel echo "" echo "----------------------------------------------------" echo " &name; 安装完成." echo " 如有问题请访问www.lxg2016.com" echo " Version: &version;" echo "----------------------------------------------------" echo "" </INLINE> </FILE> <!-- The 'remove' script. ###插件卸载的时候需要执行的命令,部分插件可能会运行,所以我们需要增加kill命令在卸载之前杀死在运行的进程 --> <FILE Run="/bin/bash" Method="remove"> <INLINE> ps -ef | grep stunnel | grep -v grep | awk '{print $2}' | xargs kill -9 cat 'tmp/hosts' > /etc/hosts rm -rf /boot/config/plugins/&name; removepkg &name;-&version; ###卸载命令 echo "" echo "----------------------------------------------------" echo " &name; 卸载完成." echo " 如有问题请访问www.lxg2016.com" echo " Version: &version;" echo "----------------------------------------------------" echo "" </INLINE> </FILE> </PLUGIN>
上面就是整个插件内容所有的解释了, 大家需要什么部分就复制粘贴,之后修改里面的内容即可。
插件的整体流程就是 开头插件名字变量信息–更新日志–插件前期准备–下载txz并安装–启动安装内容–卸载 整体就是这么个流程,如果你只是为了安装部分软件包,PERL这种的扩展支持包,只需要前期变量信息,下载txz,以及卸载即可,其他流程全部都可以省略掉不要!
插件制作好以后,我们把上面的内容保存为plg结尾的文件,然后把文件,以及制作或者下载的txz一起放在nginx的plugins的文件夹内,注意插件的路径位置
之后我们用http://服务器地址/plugins/插件名字(此路径看自己配置)/plugins.plg 写在unraid插件页面的安装路径,既可安装我们写好的插件了!
结尾!
此教程有点难度,有点linux操作经验或者shell脚本书写经验的,可能很快就知道内容的意思,我这里只是分享了一些我在制作插件的时候的一些经验!
请登录后查看评论内容