今天讲一下怎么从零开始搭建一个emby私人影院。
准备工作
- 一个vps,内存要大于4G,硬盘稍大一些,最好60G以上。
- 一个域名,最好托管到CloudFlare
- 时间和耐心
安装docker
此教程搭建的所有服务,都是基于docker,所以docker的知识你还是要有的,如果不懂docker,可能会有一些吃力,但是跟着我的步骤,也能完成。安装过程移步:Debian 12安装Docker Compose完整指南
安装emby
1.创建存放emby项目的文件夹
mkdir -p /root/docker_data/emby
2.在emby文件夹中创建docker-compose.yml
cd /root/docker_data/emby
vim docker-compose.yml
3.编辑docker-compose.yml文件,在其中加入以上代码
services:
emby:
image: emby/embyserver:latest
container_name: emby-server
restart: always
environment:
- UID=1000 # 通常 Linux 普通用户的 ID
- GID=100 # 通常为 users 组或 1000 (你的主组)
- GIDLIST=100 # 允许访问的附加组 ID
ports:
- "8096:8096"
- "8920:8920"
volumes:
# 使用相对路径,将数据和媒体保存在当前目录下
- ./config:/config
- ./share1:/mnt/share1
- ./share2:/mnt/share2
# 如果有 Intel 核显,取消下面两行注释以支持硬解
# devices:
# - /dev/dri:/dev/dri
deploy:
resources:
limits:
memory: 4G # 限制内存使用,防止程序异常占用过多资源
networks:
# 默认创建桥接网络,不依赖外部或 1Panel 网络
default:
driver: bridge
4.创建文件夹: 在你的 emby 目录下运行:
mkdir -p config share1 share2
5.修正权限(关键): 由于你之前可能用 root 运行过,或者文件夹权限不属于用户 1000,请执行以下命令确保 Emby 有权写入:
sudo chown -R 1000:1000 ./config ./share1 ./share2
6.启动容器:
docker compose up -d
安装nginx proxy manager,为emby添加域名
1. 创建nginx proxy manager项目文件夹
mkdir -p /root/docker_data/npm
2.进入文件夹创建docker-compose.yml
cd /root/docker_data/npm
vim docker-compose.yml
3.编辑文件写入以下内容
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
4.启动npm
docker compose up -d
5.解析域名:
来到你的域名服务提供商,解析你的域名到你搭建emby的这台vps的地址

6.登录npm,添加反向代理,申请证书




7.尝试用域名访问emby
如下图,代表域名解析成功

完成emby向导
此步比较简单,略过
安装openlist
openlist用来挂载onedrive网盘和生成影视资源的的strm,我这里用的是微软的E3开发者的onedrive,挂载E3 onedrive的流程可以参考官方文档
这里先讲怎么安装openlist,注意安装的oepnlist要安装4.1.2以下的版本,最新的版本生成strm会为空
1. 创建openlist目录
mkdir -p /root/docker_data/openlist
2. 进入openlist并创建docker-compose.yml
cd /root/docker_data/openlist
vim docker-compose.yml
3. 编辑并写入以下内容
services:
openlist:
image: openlistteam/openlist:v4.1.0
container_name: openlist
restart: always
ports:
- '5244:5244'
volumes:
# 使用绝对路径,确保 Docker 引擎能准确找到目录
- /root/docker_data/openlist/data:/opt/openlist/data
environment:
- PUID=0
- PGID=0
- UMASK=022
- TZ=Asia/Shanghai
4. 在openlist文件夹下执行
mkdir data
chmod -R 777 ./data
docker compose pull
docker compose up -d
5. 查询openlist的密码
docker logs openlist
6. 生成密码(此处以123456举例)
docker exec -it openlist ./openlist admin set 123456
7. 安装好openlist以后,记得给openlist也套上域名,这里我的openlist域名是list.kjzxs.de,具体过程略
用openlist挂载E3 onedrive
此处请详细观看 官方文档,具体步骤可以看视频,里面也有讲,这里只简单纪录几个关键点
1.挂载时选择onedrive分享,选择企业账号,勾选:使用openlist提供的参数


2. 如果你是E3 子号,需要管理员同意,先用管理员账号登录一下,然后勾选代表组织同意,确定后,它会跳转到openlist生成刷新令牌的界面,此时的刷新令牌是管理员的令牌,不是子账号的令牌,我们需要再次点击:获取token,然后这次再用子账号登录,然后这次获取到的令牌才是子账号的刷新令牌。
生成strm
添加存储,设置完成点击底部的添加
类型选Strm,挂载路径随意命名,只要不重名,这里我起名叫做:movie

下方的路径复制你的电影所在文件夹的路径,只要域名后面的部分


然后可以在主页中看到生成的strm


关键步骤:在设置-->全局中,把签名所有这个选项关闭

Rclone复制strm文件夹到emby的媒体目录下
1. 安装Rclone
sudo apt update
sudo apt install unzip -y
sudo curl https://rclone.org/install.sh | sudo bash
2. 用rclone挂载strm目录,添加配置
你需要先让 Rclone 连接到 OpenList 的 WebDAV 服务。
输入 rclone config。
输入 n (新建)。
名字起为 openlist。
在存储类型列表中找到 webdav
URL: 输入 OpenList 的 WebDAV 地址:https://list.kjzxs.de/dav
Vendor: 选择 other。
User: 输入 OpenList 的用户名。
Password: 输入 OpenList 的密码(选 y 手动输入确认)
3.复制openlist挂载的strm目录到emby的share1文件夹下(share1是存放媒体文件的文件夹)
rclone copy openlist:/movie /root/docker_data/emby/share1 --include "*.strm" -P
4.此时我们share1文件夹的内容是这样的

在emby中添加媒体库,可以看到我们的内容已经可以识别

正常观看没有问题

评论区