jellyfin服务端部署及SSL配置
OMV版本:6.0.30-1 (Shaitan)
Debian版本:11 (bullseye)
jellyfin版本:10.8.4
jellyfin-android版本:v2.4.4
由于我想为的NAS安装视频内容服务,因此做了此工作。
jellyfin部署
本次部署采用简单的Docker部署方案,并配置硬件加速。
docker-compose.yarml
version: "3.8"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: 0:0
group_add:
- 106
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
volumes:
- ./config:/config
- ./cache:/cache
- type: bind
source: /mnt/pool-16T/nas/视频
target: /media
ports:
- 8096:8096
# - 8920:8920
restart: on-failure:2
- user 对应用户,我使用的是root用户,所以是0
- group_add 对应render用户组的id,
cat /etc/group | grep render命令即可查看 - volumes.source 对应我媒体库的位置,采用bind挂载
# 部署
docker-compose up -d
之后打开http://<host>:8096即可进行安装设置
配置硬件加速
硬件加速大部分情况下配置VAAPI即可,Intel和AMD的带核显CPU都支持。
若要配置N卡或树莓派,具体内容参考:jellyfin.org/docs/genera…
设置https
openssl genrsa -des3 -out server.key 2048
openssl rsa -in server.key -out server.key # 取消密码
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt
mkdir config/ssl
cp server.p12 config/ssl/
生成的server.p12即是我们需要的SSL证书。
在此处进行https的配置:
安卓客户端的SSL问题
安卓客户端使用了WebView来显示页面,但它会对SSL证书进行验证,因此配置https后会出现无法连接服务的情况。
下载jellyfin的源码:
有4处需要修改:
-
gradle.properties
增加一行:
jellyfin.version=2.2.4 -
gradle/wrapper/gradle-wrapper.properties
删除第3行:
#distributionSha256Sum=e6d864e3b5bc05cc62041842b306383fc1fefcec359e70cebb1d470a6094ca82 -
app/src/main/java/org/jellyfin/mobile/setup/ConnectFragment.kt
修改第119行:
// val httpUrl = checkServerUrlAndConnection(enteredUrl) var httpUrl = enteredUrl -
app/src/main/java/org/jellyfin/mobile/webapp/WebViewFragment.kt
删除第232、233行,并增加一行proceed:
// handler.cancel() // onErrorReceived() handler.proceed()
最后自行编译打包,即可正常使用。