Emby-Server 的安装与维护

本文重在 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

更新、卸载和其他管理命令

更新步骤:

  1. 关停: sudo systemctl stop emby-server
  2. 重新执行上面安装时的脚本
  3. 启动: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自带的证书功能,手动申请证书后,进行添加。

  1. 将域名解析到服务器
  2. 安装 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
  1. 转换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@
  1. 改证书的权限,否则 emby 无法读取证书
chmod 644 emby.pfx
  1. 将证书复制到 Emby 可读取的位置
cp emby.pfx /home/vfly2/emby/
  1. 在 Emby 后台的「网络」中填写证书相关信息。
    1. 外部域。填入域名
    2. 自定义 SSL 证书路径:/home/vfly2/emby/emby.pfx
    3. 证书密码:y7herD5f&&KQnEbNo@
    4. 保存。
    5. 重启emby服务器
    6. 后台“仪表盘”中检查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 交流依文章步骤遇到的问题。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇