在Linux系统上安装和使用Dim设置自托管媒体管理器
本文介绍在Linux系统上安装和使用Dim设置自托管媒体管理器(self-hosted media manager)的方法。Dim是一个从头开始构建的免费开源媒体管理器,它允许人们扫描、组织媒体收藏,并从任何地方远程访问和播放媒体文件。当前,Dim是Emby、Jellyfin和Plex等媒体经理的替代品。
安装Dim自托管媒体管理器
有几种方法可以使用Dim安装自托管媒体管理器,比如从二进制文件中运行Dim、使用Docker运行Dim、从源运行Dim。在本文中,我将演示在Linux系统上运行Dim自托管媒体管理器的两种方法。
方法1、使用二进制文件运行Dim自托管媒体管理器
这是让Dim自托管媒体管理器在Linux系统上运行的最基本方法。
首先,安装所需的依赖项,有libva2和libva-drm2:
##在RHEL/CentOS/Rocky Linux 8上
sudo yum install https://extras.getpagespeed.com/release-el8-latest.rpm
sudo yum install vim unzip curl libva2 libva-dev libva-drm2
##在Debian/Ubuntu上
sudo apt install vim unzip curl libva2 libva-dev libva-drm2
然后,从Dim GitHub发布页面下载Dim,地址在https://github.com/Dusk-Labs/dim/releases。或者,您可以用下面的下载链接,并使用Wget提取存档,如下所示:
curl -s https://api.github.com/repos/Dusk-Labs/dim/releases/latest |grep browser_download_url | cut -d '"' -f 4 | wget -i -
Dim档案下载成功后,按如下方式提取:
unzip release.zip
tar -xvzf release.tar.gz
现在导航到提取的文件夹,并使用以下命令安装dim:
cd release
./dim
样本输出:
$ ./dim
INFO ffmpeg version git-2021-10-19-407acc0 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --pkg-config-flags=--static --prefix=/home/runner/work/ffmpeg-static/ffmpeg-static/target --bindir=/home/runner/work/ffmpeg-static/ffmpeg-static/target/bin --extra-cflags='-I /home/runner/work/ffmpeg-static/ffmpeg-static/target/include -I /usr/local/cuda/include/' --extra-ldflags='-L /home/runner/work/ffmpeg-static/ffmpeg-static/target/lib -L /usr/local/cuda/lib64/' --extra-libs=-lpthread --disable-autodetect --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-vaapi --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libaom --enable-pthreads --enable-nvenc --enable-nvdec --enable-ffnvcodec --enable-cuda --enable-cuda-sdk
INFO Enabling profile, profile: AacTranscodeProfile
INFO Enabling profile, profile: H264TranscodeProfile
INFO Enabling profile, profile: H264TransmuxProfile
INFO Enabling profile, profile: RawVideoTranscodeProfile
INFO Enabling profile, profile: WebvttTranscodeProfile
INFO Enabling profile, profile: CudaTranscodeProfile
WARN Disabling profile, profile: VaapiTranscodeProfile, reason: Profile not supported Device <null_device> doesnt support profile VAProfileH264ConstrainedBaseline (Supported profiles: )
安装完成后,将能够设置为访问Dim Web UI。
方法2、使用Docker运行Dim自托管媒体管理器
这种方法适用于那些希望避免运行所有必需的依赖包的任务,但希望将Dim作为Docker容器运行的人。
这种方法也很简单,因为它不需要过多的操作步骤。首先,您需要借助下面的指南在系统上安装docker和docker-compose:
如何在Ubuntu 22.04系统上安装Docker CE:https://www.hmxthome.com/linux/4941.html
安装docker后,将您的用户添加到docker组:
sudo usermod -aG docker $USER
newgrp docker
安装docker后,继续使用docker运行Dim自托管媒体管理器,如下所示:
docker run -d -p 8000:8000/tcp --mount type=bind,source=/media,target=/media vgarleanu/dim:latest
将按如下方式提取多个images:
Unable to find image 'vgarleanu/dim:latest' locally
latest: Pulling from vgarleanu/dim
80d63867ecd7: Already exists
59e5b688585c: Pull complete
36f8009159f9: Pull complete
e25c2edc91aa: Pull complete
d4cb28e07db3: Pull complete
Digest: sha256:5cef4fee712b25fc2e80032b3ef494e013cdcd15358bfda2473d41aa1e9ee086
Status: Downloaded newer image for vgarleanu/dim:latest
4477be5b340d3a57a39197b5e284ac382d7e62f75ec8ff785ca55005a4b3d83d
docker: Error response from daemon: driver failed programming external connectivity on endpoint interesting_kare (d03f4b9ad679f8987c954c1236eade9111e9e009dd2d0
完成后,验证容器是否正在运行:
$ docker ps
c6218d977185 vgarleanu/dim:latest "/opt/dim/dim" 13 seconds ago Up 12 seconds 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp clever_feistel
可以使用以下命令停止此容器:
docker stop <CONTAINER ID>
至此,可以继续操作并访问Dim Web UI了。
访问Dim自托管媒体管理器Web UI
现在您已经使用最适合您的上述方法之一安装了Dim,请继续并访问Web UI。但在此之前,您需要允许端口8000通过防火墙。
对于使用Firewalld的,请运行以下命令:
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
对于使用UFW的,请运行以下命令:
sudo ufw allow 8000
使用URL访问Dim Web UI,地址格式为http://IP_Address:8000或http://hostname:8000,如下图所示:
单击创建新帐户(Create a new account),然后按如下截图操作:
现在,您将被重定向到Dim面板,如下所示:
单击添加库(Add library),添加要显示在Dim自托管介质管理器上的介质:
现在,您添加的媒体将显示在控制面板上,并且可以从任何地方访问。
至此,使用Dim设置自托管媒体管理器的操作完成了。