[Docker] 自建 emby 影音库

docker-emby.png

emby 介绍

 

Emby(原名Media Browser)是一个主从式架构的媒体服务器软件,可以用来整理服务器上的视频和音频,并将音频和视频流式传输到客户端设备。

Emby服务器端支持Microsoft Windows、Linux、MacOS、FreeBSD,客户端支持HTML5网页,Android和IOS等移动操作系统,Roku、Amazon Fire TV、Chromecast和Apple TV等流媒体设备,LG智能电视和三星智能电视等智能电视,以及PlayStation3 PlayStation4 Xbox 360和Xbox One等游戏机。

(引自wikipedia)

 

换句话说就是把自己收集的资源,通过 emby 自建个人电影和音乐资料库。

 

工具介绍

  • 服务器,建议为Debian 11,4GB内存。
  • SSH 工具,建议使用 Putty 或者 taddy。
  • 域名*1(可选)

部署步骤

安装 bt 面板英文版

宝塔面板(bt.cn)是一个不错的服务器管理界面,但是中文版需要输入手机号。因此安装英文版(www.aapanel.com)是一个不错的选择。

Putty 通过 SSH 连接到远程服务器。

输入以下命令(复制后在 Putty 窗口右键可以直接粘贴)

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh aapanel

回车后,安装,不需要 SSL。

安装成功后,自动显示访问地址、登录账号、登录密码。复制留存备用。

安装 docker

通过 docker 对生产环境部署,可以方便进行迁移和升级。

wget -qO- https://get.docker.com/ | sh

回车后完成安装。

 

确认是否服务器能驱动核显
ls -la /dev/dri
输入下面命令,给所有用户给予/dev/dri文件可执行权限。
chmod a+x /dev/dri

安装 emby

本次使用 docker 镜像为 lovechen/embyserver:latest ,其他镜像可以自行网络搜寻。

可以根据影音库地址设置,比如我的本地地址为 /home/gdrive,对应emby可以看到的就是 gdrive

修改以下内容完毕后,整体复制后回车。

docker run -d \
    --name emby \
    --network=host \
    --restart always \
    -p 8096:8096 \
    -p 8920:8920 \
    -p 1900:1900/udp \
    -p 7359:7359/udp \
    -v /etc/emby:/config \
    -v /home/gdrive/:/gdrive \
    -e TZ="Asia/Shanghai" \
    --device /dev/dri:/dev/dri \
    -e UID=0 \
    -e GID=0 \
    -e GIDLIST=0 \
    lovechen/embyserver:latest

Nginx 反代(reverse proxy)添加域名

在 putty 连接上服务器后,输入 docker inspect emby,获取 emby 本地 IP 地址。

输入 bt,获取登录地址和登录账号密码登录 bt 面板。

安装 nginx ,其他不需要可以去掉。

选择新建网站,添加域名,申请 SSL。

点开网站配置,选择反向代理(reverse proxy),添加。

点开配置,全选后替换为以下内容:

两处 ip:port 内容请自行修改,例如 http://127.0.0.1:8096
#PROXY-START/

client_max_body_size 5000M;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for';
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
    proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
    proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
    proxy_cache off;
    proxy_redirect off;
    proxy_buffering off;
location / {
        proxy_pass ip:port;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_ssl_verify off;
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
location ~* \.(gif|png|jpg|css|js|woff|woff2)$
{
    proxy_pass ip:port;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    expires 12h;
}

#PROXY-END/

 

使用

网页访问 IP:8096,根据步骤添加文件库和视频库。

docker 操作

docker ps  # 显示当前运行镜像
docker start emby # 启动 emby
docker restart emby # 重启 emby
docker stop emby # 关闭 emby

 

阅读剩余
THE END