OMV功能扩展
除了提供网络存储之外,OMV官方还提供了很多插件,可以用来扩展OMV的功能,例如,安装运行Plex或者启用docker来运行jellyfin搭建一个家庭多媒体平台。
这些功能就需要设计安装 OMV-extra 插件来启用docker再来安装相应的功能,对于初学者来说暂时不用了解什么是docker,可以将他当成一个功能插件或者一个配置好的虚拟机运行在OMV上就行了。
接下来我们将尝试启用docker并安装一个Jellyfin来搭建一个家庭媒体平台,Plex方法类似(不过Plex一些功能会需要订阅付费,所以选择了Jellyfin)。
安装OMV-extra
OMV-extra 是OMV的一个插件,在使用docker运行jellyfin之前,需要先启用extra插件才可以使用一些高级功能。
需要通过SSH登陆或本地登陆OMV后台,然后执行下面的命令来安装:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
执行后会下载需要的组件,并自动执行安装。等待运行完成后,根据提示需要登陆GUI后使用 Ctrl+Shift+R
来重新加载页面。
重新加载后,可以看到 system 菜单下多了一个 omv-extras 菜单,随后我们还要安装一个docker compose插件。
进入 Plusgins 搜索compose就能看到,选中后安装,确认后等待安装完成,期间还会安装一个依赖插件sharerootfs,这个是不能卸载的,否则会影响使用。
启用docker
安装完成后,在omv-extra 中勾选 docker repo 启用docker,然后点击 Apply 应用变更。
在 services 中可以看到多了一个compose服务,点击进去,可以看到 docker compose 服务已经启用。
配置docker
首先需要创建docker使用的文件目录,在share folder中创建三个目录提供docker使用,分别为 docker, appdata, data,如果需要还可以创建一个docker_backup。
创建完成后需要记录下docker的绝对路径,后面配置需要填入。
然后需要配置docker,进入Services - Compose - Settings,关联相关目录,Compose Files选择 appdata,Data 选择 data,Docker 填入创建的 docker绝对路径。完成后应用配置,
接下来还需要创建一个docker用户,进入 Users - Users 创建一个用户,这里就跟官方文档一样取名 appuser 也可以按自己喜好命名,将他添加到users用户组。
完成后记录下用户的UID和GID,通常UID从1000开始分配,如果appuser是第二个用户,那就是1001,user用户组GID为100,如果不确定可以登陆到服务器后台,输入cat /etc/passwd
也可以看到 UID:GID
。
现在可以开始进行docker配置了,返回Services - Compose - Files,选择Edit global environment file配置全局环境变量。
在编辑框输入以下内容(TZ为TimeZone,可以在System - Date & Time里面的Time zone查看):
PUID=1001
PGID=100
TZ=Asia/Hong_kong
到这里,基础配置已经完成,接下来就可以开始安装并配置jellyfin了。
安装jellyfin
首先需要确认使用的docker镜像,可以在 Docker Hub 中搜索你需要的镜像,例如,搜索jellyfin之后,可以看到有大量的镜像可以选择,这里推荐选择jellyfin/jellyfin或者linuxserver/jellyfin,点击进去可以看到镜像的描述,通常建议使用latest版本,这个版本为最新的稳定版,如果想尝试一些新功能也可以选择其他的,比如最新发布的unstable版也是可以的。
找到需要的镜像后,先回到OMV,进入Services - Compose - Files,点击Add进行设置,也可以选择Add from Example根据示例配置快速创建jellyfin的配置,示例配置如下:
---
# https://jellyfin.org/downloads/docker
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1001
- PGID=100
- TZ=Asia/Hong_kong
- JELLYFIN_PublishedServerUrl=192.168.4.199 #optional
volumes:
- ./config:/config
- ${DATA}/jellyfin/tvseries:/data/tvshows
- /srv/dev-disk-by-uuid-a5a771ab-4ee8-4c47-bb5b-67754baf02ce/data/jellyfin/movies:/data/movies
ports:
- 8096:8096
- 8920:8920 #optional
- 7359:7359/udp #optional
- 1900:1900/udp #optional
restart: unless-stopped
./config:/config
前面的./config
指本机的相对路径,根据前面定义,他会放在/appdata/jellyfin/config
中,其中jellyfin子目录会由插件自动创建。
${DATA}/jellyfin/tvseries:/data/tvshows
前面的${DATA}/jellyfin/tvseries
使用的变量DATA
,相当于是前面设置的/data
的目录下,你也可以使用完整的绝对路径/srv/dev-disk-by-uuid-a5a771ab-4ee8-4c47-bb5b-67754baf02ce/data
。
ports部分为docker的端口映射,他需要通过你的OMV server来暴露端口提供服务,为了配置简单,这里没有修改端口,全部默认,如果想要修改端口,就可以修改冒号前面部分,将docker的端口映射到其他端口。
编辑完配置文件后,选中刚才创建的配置文件,先进行一次配置检查,选择 check,如果正常运行,就可以选择up来启动这个docker服务。
等待拉取完镜像并成功启动(需要注意命令行提示窗是否有失败或者报错),就可以通过浏览器访问 http://serverip:8096
进行初始化设置了。
关于jellyfin的设置,这里就不详细介绍了,可以参考官方文档进行操作。
需要注意的是,添加媒体库路径时,因为docker默认是临时存储在容器中,一旦重启或删除容器数据也会清除,因此需要将数据存储在容器之外的持久化存储中,也就是前面配置中映射的路径(图中的/data/tvshows和/data/movies),如果有更多分类需求(music, photos等)也需要自己添加配置,当然也可以全部放在同一个目录下。
另外Jellyfin相当于也是一个独立的服务,因此他也需要创建自己的用户,创建用户时如果不作为管理员也可以不创建密码方便平时使用。
并且需要注意还要赋予用户访问不同媒体库的权限,避免进入之后什么都看不到。
最后只需要把媒体文件上传到服务器(OMV对应目录中),然后在管理台扫描一次就可以开始开心的追剧刷电影了,后续变更更新只需要对单独的媒体库扫描就可以了,不用每次都花费大量时间来 Scan All Libraries。
参考资料:
OMV Extras Plugin
OMV6 Docker Compose
Docker in OMV
Plex in OMV6