前言
他来了他来了,他带着免费 Nas 系统走来了, 前一阵子(大概是一年前?)飞牛 Nas 横空出世,那说来可能大家不信,博主其实是第一时间体验了的…至于为什么现在才发博文,我也不知道啊,应该是穿越了吧…嗯!一定是这样的!
不过作为 Nas 系统的新星,我小用了一下确实很不错,不过作为新系统,在套件自由度和生态上确实不太自由,这让博主想让他提供一些那种服务都不行,于是才去想,有没有什么办法让飞牛系统自装应用,彻底变成自己的形状呢?
好在飞牛的底层就是来者不拒的 Debian 系统,想要强制爱其实就按照在 debian 系统上自装应用就行了,于是林师傅的调教过程开始了~
前置知识
-
文件目录 首先要熟悉飞牛系统的文件目录,其实很简单,存储空间 i 就对应根目录下的 voli,比如
存储空间 路径 存储空间 1 /vol1 存储空间 2 /vol2 在用户界面创建的文件夹就在这些路径下,具体可以在用户界面复制完整路径查看,这里就不多赘述了 -
套件路径 套件就是在飞牛用户界面的应用中心中没有 docker 图标的应用, 点击下载安装时会询问安装在哪个存储空间, 安装套件的存储空间会出现如下的文件目录
/vol1 |-- @appcenter |-- @appconf |-- @appdata |-- @apphome |-- @appmeta `-- @apptemp
套件的应用程序就在@appcenter 目录中,同时作为 Nas 系统权限控制肯定也是很重要的, 所以本次也会按照套件程序的权限逻辑来进行操作
调教开始了哦
我们以漫画服务器 kavita 为例, 慢慢让牛子熟悉我们的强制爱, kavita 安装包在这,有兴趣了解 kavita看这
创建新用户
我们首先使用管理员账户 ssh 连接飞牛,sudo -i
变为 root 用户
然后我们创建新用户
useradd -r -s /usr/sbin/nologin Kavita
# 查看是否创建成功
cat /etc/passwd | grep Kavita
# 这步其实不重要,只是飞牛新用户的默认组都是AppUsers
usermod -g AppUsers Kavita
# 添加Kavita用户组,这个也是飞牛会有的配置,我相当于完全照抄
usermod -aG Kavita Kavita
# 查看是否生效,提示 Kavita : AppUsers Kavita则生效
groups Kavita
创建目录
# 有关程序运行的配置和二进制文件都在/vol1/@appcenter/Kavita目录下
mkdir -p /vol1/@appcenter/Kavita/bin
mkdir -p /vol1/@appcenter/Kavita/home
上传程序
解压下载下来的 kavita 压缩包,并将文件上传到/vol1/@appcenter/Kavita
路径下,
上传完成后将文件移动到 bin 和 lib 目录下
mv /vol1/@appcenter/Kavita/Kavita/config /vol1/@appcenter/Kavita/home
mv /vol1/@appcenter/Kavita/Kavita/wwwroot /vol1/@appcenter/Kavita/home
mv /vol1/@appcenter/Kavita/Kavita/I18N /vol1/@appcenter/Kavita/home
mv /vol1/@appcenter/Kavita/Kavita/EmailTemplates /vol1/@appcenter/Kavita/home
mv /vol1/@appcenter/Kavita/Kavita/I18N /vol1/@appcenter/Kavita/home
mv /vol1/@appcenter/Kavita/Kavita/* /vol1/@appcenter/Kavita/bin
rm -rf /vol1/@appcenter/Kavita/Kavita
chown -R Kavita:Kavita /vol1/@appcenter/Kavita
chmod -R 755 /vol1/@appcenter/Kavita
# 对存储漫画的文件夹设置可读写权限
setfacl -R -m d:u:Kavita:rw /vol2/1000/medias/kavita
# 这步可以让飞牛用户界面正确显示该文件夹的acl权限
setfacl -R -m u:Kavita:rw /vol2/1000/medias/kavita
- setfacl 参数详解
- -R:递归操作,且必须在-m 前面
- -m:修改权限
- d:设置目录的默认权限, 即子文件夹也会继承父文件夹的权限
- u:表示设置用户权限
配置守护进程
cat > /etc/systemd/system/kavita.service << EOF
[Unit]
Description=Kavita Server
After=network.target
[Service]
User=Kavita
Group=Kavita
Type=simple
WorkingDirectory=/vol1/@appcenter/Kavita/home
ExecStart=/vol1/@appcenter/Kavita/bin/Kavita
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now kavita
安装结束,之后访问 5000 端口就可以了
对 kavita 做一些初始化配置
-
设置语言
-
设置书签和媒体库路径
到这里就结束啦