跳到主要内容

安装 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 文件夹​

  1. 在绿联云“应用中心”安装并打开 Docker。
  2. 在“文件管理”创建专用数据文件夹,例如 /mnt/volume1/docker/mediora/data。
  3. 确认已有媒体库的位置,例如 /mnt/volume1/medias;其他待处理目录和本地下载目录按需准备。
  4. 检查对应目录的权限,确保下方填写的运行 UID/GID 能读写数据目录,并按任务需要读写媒体目录。

这里通过选择器选择 NAS 的真实文件夹,不需要照抄其他设备的卷编号或内部账号路径。

2. 下载 Mediora 镜像​

  1. 打开“Docker → 镜像”,在镜像仓库搜索 anoiv/mediora。

  2. 选择该仓库并点击“下载”,标签选择 latest。

  3. 下载完成后,在“本地镜像”找到它,核对完整镜像名称:

    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. 配置环境变量​

在“环境变量”中逐项添加或修改:

变量名示例值说明
TZAsia/Shanghai使用的时区。
PUID1000改为当前设备实际使用、允许访问所选目录的非 root 用户 UID。
PGID1000改为该用户在当前设备实际使用的非 root 组 GID。
TRUSTED_PROXIES127.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. 创建、检查并打开页面​

  1. 核对镜像版本、数据挂载、环境变量和端口,点击“确定”创建并启动。
  2. 到“Docker → 容器”查看 mediora 的运行状态;启动失败时先打开日志。
  3. 在局域网浏览器输入 http://NAS的内网IP:NAS页面端口。例如 NAS 地址为 192.168.1.20、页面端口为 3000 时,访问 http://192.168.1.20:3000。
  4. 注册或登录后,按首次设置测试存储、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。

如果仍然打不开,按下面顺序检查:

  1. 在 Docker 中确认容器正在运行;首次启动等待初始化完成。反复退出时查看容器日志。
  2. 核对地址中的 IP 是安装 Mediora 的设备,端口是映射左侧的实际端口。先在同一局域网内用这个地址测试。
  3. 检查设备防火墙是否允许访问该 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 来绕过问题。