安装 Mediora
选择下面任意一种方式即可:三种方式都运行同一个 Mediora 镜像,只是创建和管理容器的方法不同。
| 安装方式 | 适合谁 | 配置在哪里 |
|---|---|---|
| Docker Compose | 希望保存一份完整配置,方便后续调整和升级。 | 一份 compose.yaml,镜像、目录、端口和参数直接写在文件内。 |
| docker run 命令 | 习惯通过终端管理容器。 | 一条完整命令,参数直接写在命令中。 |
| 绿联云手动界面 | 希望在绿联云 Docker 应用中通过UI表单创建。 | 镜像创建向导和容器编辑页面。 |
安装前须知
先完成安装前准备,再从下方三种方式中选择一种。无论采用哪种方式,都需要确认以下事项:
- 数据目录独立、长期保留。 在设备的本地磁盘上准备专用目录,挂载到容器的
/app/data,用于保存账户、设置、密钥和任务记录。请定期备份,不要放在网盘网络文件夹中,也不要让多个容器同时使用同一个数据目录。 - 媒体和下载目录按需挂载。 需要读取本地媒体、访问本地下载目录,或将 STRM 输出到本地时,再启用对应挂载。通过网盘账号或 OpenList 访问来源时,无需额外挂载本地来源目录。
- 分清设备路径与容器路径。 本页设备路径都只是示例,请按实际位置替换。挂载左侧填写设备上的真实目录,右侧是容器内路径。例如将
/mnt/volume1/medias挂载为/medias后,在 Mediora 页面中选择/medias。已有媒体可直接挂载,无需搬进应用数据目录。 - 运行身份必须具备目录权限。
PUID、PGID填设备上实际使用的非 root 用户 UID 和用户组 GID,1000:1000仅为示例。数据目录必须可写,媒体目录按功能需要授予读取或写入权限。查询和修改方法见本页末尾的权限问题说明。
已有容器需要调整配置时,先保存原配置、停止容器并备份完整数据目录,备份方法见备份与恢复。启动失败时,先查看容器日志并检查目录权限,排查方法见常见问题。
方式一:Docker Compose
1. 准备目录
在安装机器上选一个专门的目录保存配置,例如 /mnt/volume1/docker/mediora:
mkdir -p /mnt/volume1/docker/mediora/data
cd /mnt/volume1/docker/mediora
路径仅为示例,请换成你有权限创建和长期保存的位置。已有的影片目录不必复制到这里,也不要为了安装而递归修改整个媒体库的属主。
2. 创建完整的 compose.yaml
在上述目录创建 compose.yaml,直接填写下面这份配置。数据目录必须保留,其他映射默认注释;按需要删除对应行开头的 # 即可启用。启用前将左侧路径改为真实目录,并确认目录存在、权限正确。
services:
mediora:
image: anoiv/mediora:latest
container_name: mediora
restart: unless-stopped
stop_grace_period: 180s
ports:
# 左侧是宿主机访问端口,遇到冲突时自行更换,例如 3001:3000
# 右侧容器端口保持 3000;访问页面时使用修改后的左侧端口
- '3000:3000'
# 可选:媒体代理端口,按代理实例实际填写的端口启用
# 8090 仅为示例;多个代理实例需要分别添加各自的端口映射
# - '8090:8090'
volumes:
# 必需:Mediora 数据目录,不能移除
- '/mnt/volume1/docker/mediora/data:/app/data'
# 可选:本地媒体库、下载后整理目标或网盘媒体的本地 STRM 输出
# 网盘账号 / OpenList 的来源不需要本地挂载;无本地输出时可不启用
# - '/mnt/volume1/medias:/medias'
# 可选:其他本地待处理目录
# - '/mnt/volume1/docker/mediora/imports:/imports'
# 可选:本地下载目录;下载器也应将同一目录映射为 /downloads
# 需要整理到本地媒体库时,同时启用上面的 /medias 映射
# - '/mnt/volume1/docker/mediora/downloads:/downloads'
environment:
TZ: Asia/Shanghai
# 当前设备实际使用的非 root 用户 UID,需有目录读写权限
PUID: '1000' # 1000 仅为示例,不能填 0
# 该用户在当前设备实际使用的非 root 用户组 GID
PGID: '1000' # 1000 仅为示例,不能填 0
TRUSTED_PROXIES: '127.0.0.1,::1'
healthcheck:
start_period: 120s
logging:
driver: json-file
options:
max-size: '10m'
max-file: '5'
# 修改挂载、端口或环境参数后,执行 docker compose up -d mediora 应用
# 单纯 restart 不会增加挂载或端口
3. 启动并打开页面
在 compose.yaml 所在目录执行:
docker compose pull
docker compose up -d
docker compose ps mediora
容器启动后,在局域网浏览器打开:
http://安装机器的内网IP:3000
需要查看启动过程时执行:
docker compose logs --tail=100 -f mediora
首次启动先等待健康检查和数据库初始化完成。进入页面后注册或登录,再按首次设置连接存储和测试任务。
方式二:docker run 命令
1. 准备目录并拉取镜像
先准备数据目录,并确认它的权限与运行身份对应。目录约定与上方 Compose 相同,命令方式可以用于长期运行,不需要先创建 Compose 文件。
mkdir -p /mnt/volume1/docker/mediora/data
docker pull anoiv/mediora:latest
2. 创建并启动容器
把下面的路径、UID/GID 和访问端口换成自己的值,再按需取消可选参数行开头的 #。下面先按用途汇总参数,再执行 docker run,方便在每项参数旁添加注释;请连同最外层括号一起复制,整段执行。
(
# 后台运行,容器名为 mediora;设备重启后自动恢复,手动停止后保持停止
set -- -d --name mediora --restart unless-stopped
# 停止时留出 180 秒收尾;首次启动为健康检查预留 120 秒初始化时间
set -- "$@" --stop-timeout 180 --health-start-period 120s
# 日志采用 json-file,单个文件限制 10m,最多保留 5 份
set -- "$@" --log-driver json-file --log-opt max-size=10m --log-opt max-file=5
# 页面端口:左侧是宿主机端口,冲突时自行更换,例如 3001:3000
# 右侧容器端口保持 3000;访问页面时使用修改后的左侧端口
set -- "$@" -p 3000:3000
# 可选:媒体代理端口,以代理实例实际填写的端口为准
# 8090 仅为示例;多个代理实例需要分别添加各自的端口映射
# set -- "$@" -p 8090:8090
# 时区,按自己的所在地调整
set -- "$@" -e TZ=Asia/Shanghai
# 当前设备实际使用的非 root 用户 UID,需有目录读写权限
set -- "$@" -e PUID=1000 # 1000 仅为示例,不能填 0
# 该用户在当前设备实际使用的非 root 用户组 GID
set -- "$@" -e PGID=1000 # 1000 仅为示例,不能填 0
# 局域网直连保留此值;通过反向代理时填写实际代理地址
set -- "$@" -e TRUSTED_PROXIES=127.0.0.1,::1
# 必需:Mediora 数据目录,不能移除;左侧改为设备上的实际目录
set -- "$@" -v '/mnt/volume1/docker/mediora/data:/app/data'
# 可选:本地媒体库、下载后整理目标或网盘媒体的本地 STRM 输出
# 网盘账号 / OpenList 的来源不需要本地挂载;无本地输出时可不启用
# set -- "$@" -v '/mnt/volume1/medias:/medias'
# 可选:其他本地待处理目录;仅需读取时可在挂载末尾添加 :ro
# set -- "$@" -v '/mnt/volume1/docker/mediora/imports:/imports'
# 可选:本地下载目录;下载器也应将同一目录映射为 /downloads
# 需要整理到本地媒体库时,同时启用上面的 /medias 映射
# set -- "$@" -v '/mnt/volume1/docker/mediora/downloads:/downloads'
# 参数确认后创建容器;已有同名容器时,先保存原配置、停机并备份
docker run "$@" anoiv/mediora:latest
)
默认只挂载必需的数据目录。三种场景的选择规则见上方 Compose 示例中的注释:按需启用媒体库、其他本地目录或本地下载目录;通过网盘账号 / OpenList 访问来源时,无需为来源增加本地映射。
容器名称为 mediora,默认页面地址为 http://安装机器的内网IP:3000;修改宿主机端口后,访问地址也使用新端口。示例挂载值已用引号包住,修改成含空格的真实路径时也应保留引号。数据挂载必须保留,启用其他映射前先确认宿主机目录与权限。
3. 检查状态与日常管理
# 查看容器与健康状态
docker ps --filter name=mediora
# 查看最近启动日志
docker logs --tail=100 -f mediora
# 停止容器,保留数据和容器配置
docker stop -t 180 mediora
# 再次启动原容器
docker start mediora
不要重复执行创建命令来“重启”。需要替换同名容器时,先保存原命令、停止并移除旧容器,保留宿主机数据目录;完整备份方法见备份与恢复。
4. 增加目录或媒体代理端口
上方命令已包含三种场景的可选映射。在可选参数清单中取消对应行的注释即可;需要增加其他参数时,也通过 set -- "$@" 追加:
| 需要 | 追加参数示例 |
|---|---|
| 只读访问示例中的待处理目录 | 将对应可选行改为 set -- "$@" -v '/mnt/volume1/docker/mediora/imports:/imports:ro'。 |
| 使用你填写的媒体代理端口 | 取消上方媒体代理端口行的注释,并将 8090 改为代理实例实际填写的端口。 |
这些追加行应放在最终 docker run 之前、最外层括号之内;不要把参数追加到镜像名后面,也不要在命令执行完后单独执行可选行。
已有容器增加挂载、端口或环境参数时,需要按新命令重新创建,docker restart 不会增加这些配置。重建前先保存原命令和完整数据备份,保留原宿主机数据目录。
方式三:绿联云手动界面
本节在绿联云的 Docker 应用中手动创建容器。可以使用 PC 客户端或浏览器管理页面,字段位置可能随 UGOS Pro / Docker 应用版本变化;入口依据绿联官方 Docker 使用指南。
1. 安装 Docker,准备 NAS 文件夹
- 在绿联云“应用中心”安装并打开 Docker。
- 在“文件管理”创建专用数据文件夹,例如
/mnt/volume1/docker/mediora/data。 - 确认已有媒体库的位置,例如
/mnt/volume1/medias;其他待处理目录和本地下载目录按需准备。 - 检查对应目录的权限,确保下方填写的运行 UID/GID 能读写数据目录,并按任务需要读写媒体目录。
这里通过选择器选择 NAS 的真实文件夹,不需要照抄其他设备的卷编号或内部账号路径。
2. 下载 Mediora 镜像
-
打开“Docker → 镜像”,在镜像仓库搜索
anoiv/mediora。 -
选择该仓库并点击“下载”,标签选择
latest。 -
下载完成后,在“本地镜像”找到它,核对完整镜像名称:
anoiv/mediora:latest
镜像下载失败时先检查 NAS 网络与镜像仓库访问,按需配置可用的镜像加速器;不要随意改用来源不明的同名镜像。
3. 创建容器并填写基础设置
在“镜像 → 本地镜像”找到 Mediora,点击右侧 + 创建容器。按下面填写:
| 项目 | 填写或选择 |
|---|---|
| 容器名称 | mediora。 |
| 自动重启 | 开启;若界面可选择重启策略,使用 unless-stopped。 |
| 网络模式 | 选择 Bridge / 桥接模式,再按下一步配置端口。 |
| 启动命令、入口点 | 保留镜像默认值,不自行填写其他命令。 |
| 特权模式 | 保持关闭。 |
Mediora 不需要用特权模式、root 用户或额外共享数据库来完成安装。
镜像自带健康检查,并预留 120 秒启动初始化时间,通常保留镜像默认值即可。下面这些运行参数,仅在当前界面提供对应选项时填写:
| 可选设置 | 参考值 | 说明 |
|---|---|---|
| 停止等待 / 停止超时 | 180 秒 | 给任务和连接留出收尾时间。 |
| 日志驱动 | json-file | 与前两种方式的示例保持一致。 |
| 日志单文件大小 / 保留份数 | 10m / 5 | 设置日志轮转,限制长期运行的日志占用。 |
这些属于容器运行参数,不填进“环境变量”。界面没有对应选项、而你需要明确配置这些值时,使用 Compose 或命令方式创建容器。
4. 配置存储空间
在容器向导的“存储空间”中添加目录映射。下面的 NAS 路径都只是示例,请通过文件夹选择器选取真实目录;可选行只添加实际需要的项目。
| NAS 文件夹(示例) | 容器内路径 | 用途与条件 |
|---|---|---|
/mnt/volume1/docker/mediora/data | /app/data | 必需:应用数据。 读写,长期保留。 |
/mnt/volume1/medias | /medias | 可选:媒体库或本地 STRM 输出。 只读取时可只读;需要整理、刮削或输出时选择读写。 |
/mnt/volume1/docker/mediora/imports | /imports | 可选:其他本地目录。 按任务需要选择读取或读写。 |
/mnt/volume1/docker/mediora/downloads | /downloads | 可选:本地下载目录。 下载器也要将同一目录映射为 /downloads。 |
不要把数据目录误填成 /config。/app/data 是 Mediora 的固定数据位置,媒体目录和下载目录的容器路径则可以自定义;后续在 Mediora 页面选择右侧路径。
通过网盘账号或 OpenList 访问来源时,无需添加本地来源映射;需要本地 STRM 输出时再添加 /medias。
界面中的“读写 / 只读”控制文件访问权限。需要整理、刮削或写入 STRM 的目录选择读写;只供读取的媒体来源可以选择只读。
5. 配置环境变量
在“环境变量”中逐项添加或修改:
| 变量名 | 示例值 | 说明 |
|---|---|---|
TZ | Asia/Shanghai | 使用的时区。 |
PUID | 1000 | 改为当前设备实际使用、允许访问所选目录的非 root 用户 UID。 |
PGID | 1000 | 改为该用户在当前设备实际使用的非 root 组 GID。 |
TRUSTED_PROXIES | 127.0.0.1,::1 | 局域网直连使用此值;反向代理时按实际连接来源修改。 |
1000:1000 是本页统一示例,不一定等于你的 NAS 管理员身份。镜像会按这两个数值运行应用,不会自动修改 NAS 文件夹的属主;不要填 0 或开启特权绕过目录权限。
6. 配置端口映射
桥接模式下至少添加页面端口:
| 用途 | NAS / 本地端口 | 容器端口 | 协议 |
|---|---|---|---|
| Mediora 页面 | 3000,冲突时可改成 3001 等未使用端口。 | 保持 3000。 | TCP |
| 可选:媒体代理 | 例如 8090,以代理实例实际配置为准。 | 与代理实例实际配置一致。 | TCP |
只安装和管理媒体时,先添加第一行即可。访问页面时使用 NAS / 本地端口,例如改为 3001 后访问 http://NAS的内网IP:3001。媒体代理端口由你之后在实例里填写,8090 仅为示例;要使用时再编辑容器增加对应端口,多个代理实例分别添加映射。
7. 创建、检查并打开页面
- 核对镜像版本、数据挂载、环境变量和端口,点击“确定”创建并启动。
- 到“Docker → 容器”查看
mediora的运行状态;启动失败时先打开日志。 - 在局域网浏览器输入
http://NAS的内网IP:NAS页面端口。例如 NAS 地址为192.168.1.20、页面端口为3000时,访问http://192.168.1.20:3000。 - 注册或登录后,按首次设置测试存储、TMDB 和少量文件任务。
已有手动容器要调整参数时,在“容器”页面使用“··· → 编辑”,保存并按界面提示应用。绿联官方页面说明也区分了手动容器与 Compose 项目:Compose 创建的容器应回到“项目”修改配置。
停止容器前,先在 Mediora 暂停自动触发并等待正在写入的操作结束;需要明确设置停止等待时间时,按前面的运行参数说明配置。
8. 选择存储类型
打开 Mediora 的 云盘管理 → 存储类型,添加本地存储、115 或 OpenList,并测试连接或打开文件列表确认目录。
常见问题
端口冲突或页面打不开怎么办
启动时提示 port is already allocated 或 address already in use,通常是宿主机端口已被其他应用占用。换一个未使用的宿主机端口即可,例如把 3000 改为 3001,容器端口仍保持 3000:
| 安装方式 | 修改方法 |
|---|---|
| Docker Compose | 把 ports 中的 '3000:3000' 改为 '3001:3000'。 |
| docker run | 把 -p 3000:3000 改为 -p 3001:3000。 |
| 绿联云手动界面 | 编辑容器的端口映射,把 NAS / 本地端口改为 3001,容器端口保留 3000,协议为 TCP。 |
修改后,Compose 执行 docker compose up -d mediora;命令方式按新参数重建容器;绿联手动容器保存编辑并按提示应用。然后使用新的地址访问,例如 http://NAS的内网IP:3001。
如果仍然打不开,按下面顺序检查:
- 在 Docker 中确认容器正在运行;首次启动等待初始化完成。反复退出时查看容器日志。
- 核对地址中的 IP 是安装 Mediora 的设备,端口是映射左侧的实际端口。先在同一局域网内用这个地址测试。
- 检查设备防火墙是否允许访问该 TCP 端口。使用域名或反向代理时,先确认内网直连可用,再检查反向代理设置。
提示权限不足怎么办
日志出现 EACCES、permission denied、数据库无法创建或文件无法写入时,先核对 PUID、PGID 与目录权限。
1. 查询设备上的用户 UID 和用户组 GID
在安装设备的终端中执行,NAS 可通过 SSH 进入:
id
输出中的 uid=数字 对应 PUID,gid=数字 对应 PGID。如果当前登录的是 root,不能照填 0;请查询实际允许访问这些目录的非 root 用户,将下面的“实际用户名”替换为该用户名称:
id 实际用户名
2. 把查询结果填入容器配置
| 安装方式 | 修改位置 |
|---|---|
| Docker Compose | 修改 environment 下的 PUID 和 PGID。 |
| docker run | 修改命令中的 -e PUID=... 和 -e PGID=...。 |
| 绿联云手动界面 | 编辑容器,在“环境变量”中修改 PUID、PGID。 |
1000:1000 只是安装示例,两项都要以设备实际值为准,不能填 0。修改后按上一题的方法应用配置或重建容器,单纯“重启”不会更新原容器的环境参数。
3. 确认该用户确实有目录权限
查询到 UID/GID 不代表已经获得访问权限。确认所选用户或用户组可以进入目录,并能读写 Mediora 专用数据目录;媒体目录按任务需要允许读取或写入。NAS 可在文件夹的权限设置中检查授权。
已有数据由其他用户创建时,先停止容器并完整备份,再仅修正 Mediora 专用数据目录的权限。不要递归修改整个共享媒体库的属主,也不要使用 chmod 777 或改成 root 来绕过问题。