本文重在 Emby 服务端的部署流程,介绍和具体使用方法请到:自建流媒体指南 – 技焉洲 (yanh.tech)
指标 | 描述 |
---|---|
适用系统 | Debian 系发行版,包括 Ubuntu, Armbian,其他发行版稍改命令一般也可 |
走通流程时间 | 20 分钟 |
安装 Emby 服务端
官网下载地址: Emby Server for Linux – Emby
全复制并执行,一键安装
# 获取最新版本
github_project="MediaBrowser/Emby.Releases"
tag=$(curl -m 10 -sL "https://api.github.com/repos/${github_project}/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
# 获取系统架构
arch=$(uname -m)
if [[ $arch == "aarch64" ]]; then ARCHITECTURE="arm64"
elif [[ $arch == "x86_64" ]]; then ARCHITECTURE="amd64"
else echo "Unknown architecture: $arch"; exit 1
fi
# 下载安装包 安装
curl -OL https://github.com/MediaBrowser/Emby.Releases/releases/download/${tag}/emby-server-deb_${tag}_$ARCHITECTURE.deb && \
sudo dpkg -i emby-server-deb_*.deb
rm emby-server-deb_*.deb
通过端口访问。打开浏览器,输入: http://YOUR_IP:8096
如果开启了 ufw,放行端口
sudo ufw allow 8096 comment "embyserver"
初始化
访问网址: http://YOUR_IP:8096 ,第一次打开会有一个引导,根据提示走就行了。不过先不要添加媒体库,引导走完手动添加。
在设置媒体库之前,十分建议规范电影、电视剧的命名格式,体验会上一个档次: 自建流媒体指南 – 技焉洲 (yanh.tech)。
添加媒体库时,建议的设置:
- 图像的下载语言选英语,图片质量会更好。
- 媒体资料储存方式勾上 Nfo。
- 勾上媒体图像保存到媒体所在文件夹,
- 字幕插件配置不要选,质量差,建议自己找字幕。
媒体目录权限
注意,Emby 不区别目录大小写,因此 TV 和 tv 两个目录对于它来说会混淆;还有注意权限授予,emby-server 的用户是 emby,需要授予它读取电影等所在目录的读权限才能添加入库,也要有写权限用于刮削。
推荐创建一个用户组 media,通过组权限授予读写权限。首先确保已经创建组 media
sudo groupadd media
# getent group media
emby 加入 media 组
sudo usermod -aG media emby
设置媒体目录所有者。假设登录用户是 vfly2,所有媒体文件的根目录是 ~/mmp,那么使用 acl 设置 ~/mmp 下创建的文件所属用户为 vfly2,所属组为 media,并且都有读写权限,其他用户只能读取。
sudo apt-get update && sudo apt-get -y install acl && \
mkdir ~/mmp && \
sudo setfacl -d -m u:vfly2:rwx,g:media:rwx,o::r /home/vfly2/mmp/ && \
sudo setfacl -m u:vfly2:rwx,g:media:rwx,o::r /home/vfly2/mmp/
指定 Emby 运行时的组为 media
# /lib/systemd/system/emby-server.service
# 之所以不直接修改 emby 的 `systemd` 服务文件,也就是上一行,是因为这样修改,更新后会被重置,从而每次更新都要改一次。
# 利用 systemctl edit 命令覆盖服务设置,可以避免上述问题
sudo systemctl edit emby-server.service
添加三行
[Service]
Group=
Group=media
重新加载并重启
sudo systemctl daemon-reload
sudo systemctl restart emby-server
更新、卸载和其他管理命令
更新步骤:
- 关停:
sudo systemctl stop emby-server
- 重新执行上面安装时的脚本
- 启动:
sudo systemctl start emby-server
卸载:如果通过上面脚本安装,也就是 dpkg 安装: dpkg -r emby-server
其他管理命令
- 重启:
sudo systemctl restart emby-server
- 设置开机启动(安装时默认就是):
sudo systemctl enable emby-server
- 查看状态:
sudo systemctl status emby-server
- systemd 配置文件:
vim /lib/systemd/system/emby-server.service
Docker 版服务端
个人推荐使用官方的 dpkg 包进行安装,而不是 Docker。下面是一个开心版,仅供参考。DockerHub: lovechen/embyserver – Docker Image | Docker Hub
myserve="embyserver"
sudo ufw allow 8096,8920/tcp comment $myserve && \
sudo ufw allow 1900,7359/udp comment $myserve && sudo ufw reload
mkdir -p ~/myserve/$myserve && cd ~/myserve/$myserve && mkdir config data
cat > docker-compose.yml << EOF
---
version: '3'
services:
emby:
image: lovechen/embyserver:latest
container_name: EmbyServer
restart: always
devices:
- /dev/dri:/dev/dri
environment:
- TZ=Asia/Shanghai
- UID=0
- GID=0
- GIDLIST=0
# - HTTP_PROXY=http://127.0.0.1:10811/ # 容器内是否使用代理
# - HTTPS_PROXY=http://127.0.0.1:10811/ # 若使用,取消注释,并修改代理地址
volumes:
- ./config:/config # 源数据目录
- ./data:/data # 影视资源目录
ports:
- '8096:8096' # http
- '8920:8920' # https
- '1900:1900/udp' # dlna
- '7359:7359/udp' # local network discovery
EOF
docker compose pull
docker compose up -d
docker compose down
如果要迁移,打包保存 config 目录。data 里放的是媒体文件。
使用 https
一般是没必要上 HTTPS。方法有两种,一种是用 nginx 等反代,这就不说了。下面说第二种采用emby自带的证书功能,手动申请证书后,进行添加。
- 将域名解析到服务器
- 安装 acme.sh 并申请证书,使用 root:
sudo -i
安装并启用 acme.sh 脚本(记得改邮箱):
sudo apt install -y curl socat && \
curl https://get.acme.sh | sh -s email=your@email.com && \
cd ~ && source .bashrc
切换证书签发机构
acme.sh --set-default-ca --server letsencrypt
签发证书
acme.sh --issue -d emby.vfly2.com --standalone
会显示证书位置在
[Mon Jul 17 12:30:19 AM CST 2023] Your cert is in: /root/.acme.sh/emby.ahfei.blog_ecc/emby.ahfei.blog.cer
[Mon Jul 17 12:30:19 AM CST 2023] Your cert key is in: /root/.acme.sh/emby.ahfei.blog_ecc/emby.ahfei.blog.key
- 转换PKCS#12证书(不使用fullchain而是采用certfile)
cp /root/.acme.sh/emby.ahfei.blog_ecc/emby.ahfei.blog.cer ./cert.pem
cp /root/.acme.sh/emby.ahfei.blog_ecc/emby.ahfei.blog.key ./key.pem
openssl pkcs12 -export -out emby.pfx -inkey key.pem -in cert.pem
# 命令执行后,要填入 export 密码,输入密码,并记录 y7herD5f&&KQnEbNo@
- 改证书的权限,否则 emby 无法读取证书
chmod 644 emby.pfx
- 将证书复制到 Emby 可读取的位置
cp emby.pfx /home/vfly2/emby/
- 在 Emby 后台的「网络」中填写证书相关信息。
- 外部域。填入域名
- 自定义 SSL 证书路径:
/home/vfly2/emby/emby.pfx
- 证书密码:y7herD5f&&KQnEbNo@
- 保存。
- 重启emby服务器
- 后台“仪表盘”中检查https链接是否开启: 「HTTP 端口在 8096 端口上运行,且 HTTPS 端口在 8920 上运行」
备份、迁移数据库
通过开头脚本也就是 dpkg 包安装的服务端的用户文件、元信息文件、数据库位置:/var/lib/emby
,打包保存这一个目录就够了。
有个备份插件叫作 Server Configuration Backup Plugin。国内打不开插件目录,下不了,没了解过
先更新旧服务器上的到最新版,防止不兼容
然后打包数据库
sudo tar -Jcf ~/emby.bak.tar.xz /var/lib/emby -p
在新机器上复制数据库
scp -P 22 vfly2@1.2.3.4:/home/vfly2/emby.bak.tar.xz ./
在新机子上安装 Emby ,再停止其运行 sudo systemctl stop emby-server
,将新生成的 /var/lib/emby
改名(如 /var/lib/fresh_emby
),用上面打包的替代,再重启即可。命令如下:
改名
sudo mv /var/lib/emby /var/lib/fresh_emby
解压
mkdir temp_emby && tar -Jxf emby.bak.tar.xz -C temp_emby
替代
sudo mv temp_emby/var/lib/emby /var/lib/
查看效果
ls /var/lib/emby -l
确保目录的所有者是 emby
sudo chown -R emby:emby /var/lib/emby
最后,媒体文件也要转移,要注意目录路径要一致,否则就要删除媒体库重新创建,emby 目前不支持更改媒体库路径。
rsync -avuzP -e "ssh -p 22" -r vlfy2@1.2.3.4:/home/vfly2/mmp/ ./
VPS 扩展硬盘
一般 VPS 的硬盘就 20g,一部电影就占满了。如果有条件,最好还是选大硬盘的使用。不过利用网络挂载硬盘、网盘也能使用。
- 用 Rclone 挂载 Google Drive: [[33商业网盘]]
- 用 nfs 挂载另一台服务器的硬盘: [[16网络存储]] 。但是注意:
- nfs 不支持有新文件后程序,因此 emby 不能即时显示新的电影,可以设置每小时扫描一次来缓解
- nfs 挂载的目录,如果迁移后路径不一样,必须移除媒体库重新扫描。
原文链接: https://yanh.tech/2024/06/emby-server-installation-and-maintenance/
版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech) 。
保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,如果能留言互动就更好了。
可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。