跳转到内容

NAS、群晖和 Unraid

新手入门

在你的 NAS 上运行 HolyArrs,把文件夹、属主和重启设置配对。先读安装。

  • /config 放在本地卷或存储池上。绝不要放在网络共享上。
  • 媒体放在一个共享文件夹里,里面有 downloads、movies、tv 和 music。可以逐个挂载,也可以只挂载一次上级文件夹来用硬链接。见文件夹。

::tab[Synology]

  1. 在 File Station 里创建 docker/holyarrs/config。
  2. 创建一个共享文件夹 media,里面有 downloads、movies、tv 和 music。
  3. 在 Container Manager 里打开 Project > Create(项目 > 新增),粘贴安装页面里的 Compose 文件。
  4. 把卷设为 /volume1/docker/holyarrs/config:/config,然后是 /volume1/media/movies:/movies、/volume1/media/tv:/tv、/volume1/media/music:/music 和 /volume1/media/downloads:/downloads。
  5. 把 PUID 和 PGID 设成你的用户,通常是 1026 和 100。通过 SSH 用 id <user> 确认。
  6. 给这个用户 media 的读写权限:Control Panel > Shared Folder > Edit > Permissions(控制面板 > 共享文件夹 > 编辑 > 权限)。
  7. 勾选 Enable auto-restart(启用自动重新启动)。
  8. 打开 http://your-server:6262。你应该会看到首次运行的设置向导。把 /movies、/tv 和 /music 添加为媒体库文件夹。

::tab[Unraid]

现在还没有 Community Applications 模板,所以要手动添加容器。

  1. 在 Docker 选项卡里,用 HolyArrs 镜像添加一个容器。
  2. 映射端口 6262。
  3. 把 /config 映射到一个存储池路径,例如 /mnt/<pool>/appdata/holyarrs。<pool> 是你的存储池名。不要用 /mnt/user/appdata。
  4. 把你的媒体文件夹映射到 /movies、/tv、/music 和 /downloads,用磁盘或存储池路径,例如 /mnt/<pool>/media/movies:/movies、/mnt/<pool>/media/tv:/tv、/mnt/<pool>/media/music:/music 和 /mnt/<pool>/media/downloads:/downloads。
  5. 设置 PUID=99、PGID=100(Unraid 的 nobody:users)和 UMASK=022。
  6. 给容器打开自动启动,这样它会自己重启。
  7. 打开 http://your-server:6262。你应该会看到首次运行的设置向导。

::tab[QNAP]

  1. 创建 Container/holyarrs/config 和一个 media 共享,里面有 downloads、movies、tv 和 music。
  2. 在 Container Station 里打开 Applications > Create(应用程序 > 创建),粘贴 Compose 文件。
  3. 使用 /share/Container/holyarrs/config:/config,然后是 /share/media/movies:/movies、/share/media/tv:/tv、/share/media/music:/music 和 /share/media/downloads:/downloads。
  4. 把 PUID 和 PGID 设成 media 共享的属主。
  5. 把重启策略设为 unless-stopped。
  6. 打开 http://your-server:6262。你应该会看到首次运行的设置向导。

::tab[TrueNAS SCALE]

  1. 创建 2 个数据集:apps/holyarrs-config 和 media,并在 media 里建 downloads、movies、tv 和 music 文件夹。
  2. 在 Apps 里,用 Compose 文件通过 YAML 添加一个自定义应用。
  3. 使用 /mnt/<pool>/apps/holyarrs-config:/config,然后是 /mnt/<pool>/media/movies:/movies、/mnt/<pool>/media/tv:/tv、/mnt/<pool>/media/music:/music 和 /mnt/<pool>/media/downloads:/downloads。
  4. 把 PUID 和 PGID 设成数据集的属主,通常是 568。在数据集 ACL 里给这个用户写入权限。
  5. 把重启策略设为 unless-stopped。
  6. 打开 http://your-server:6262。你应该会看到首次运行的设置向导。

所有 NAS 都一样:在 NAS 的权限界面里给 PUID 对应的用户媒体文件夹的读写权限;配置文件夹 HolyArrs 会自己处理。给容器打开自动重启(Docker 的 unless-stopped 策略)。

硬链接不占额外空间,而且瞬间完成。要用硬链接,就只挂载那一个媒体文件夹,不要分成四个挂载,并且让下载器用同样的路径挂载同一个文件夹。见媒体文件夹。

把 /movies、/tv、/music 和 /downloads 逐个挂载也能用,但每次导入都会变成完整复制。每个挂载点在容器里都是独立的文件系统,而硬链接不能跨文件系统。同一个上级下面的独立共享或数据集也一样会复制。HolyArrs 不得不复制时,Settings > Library folders(设置 > 媒体库文件夹)会给出警告。

下面这些后台任务会唤醒媒体磁盘。可以在 Schedules(计划)页面调整它们的运行频率。

后台任务 读取什么
Rescan the Library(重新扫描媒体库) 每个媒体库文件夹。唤醒磁盘最多。
Check Library folders(检查媒体库文件夹) 每个文件夹的详情和可用空间。写入和硬链接测试只在启动时、点 Run now(立即运行)时和文件夹有变动时运行。
Look for missing subtitles(找缺失的字幕)、Look for better subtitles(找更好的字幕) 每个视频所在的文件夹。
  • 把 /config 和下载文件夹放在 SSD 或缓存池上。
  • 存放 /config 的磁盘要留出 1 GB 可用空间。低于这个值会有健康警告。
  • 在 Unraid 上,Cache Directories 插件会把文件夹列表留在内存里,这样扫描就不用碰磁盘。
  • 导入、添加和删除会在发生时访问它们操作的那块磁盘。
  • 把重新扫描设为每 7 天一次或关闭。之后你手动添加的文件,只有在 Rescan the Library 上按 Run now 时才会被发现。
  • 做种中的种子会读取它的文件。如果这个文件硬链接到了你的媒体库,那块磁盘会一直醒着,直到做种停止。
现象 原因 解决办法
无法启动,提示里提到 FUSE 路径、网络共享或 Unraid 用户共享 /config 不在本地磁盘上(在 Unraid 上,它指向了 /mnt/user) 把 /config 移到本地磁盘或存储池路径,例如 /mnt/<pool>/appdata/holyarrs。
重启或恢复之后一直是停止状态 自动重启没开 打开它,然后启动容器。
导入失败,提示权限错误 PUID 对应的用户无法写入媒体文件夹 在 NAS 的权限界面里给它读写权限(群晖上是 Control Panel > Shared Folder > Edit > Permissions)。
导入是复制,不是硬链接 下载内容和媒体库在不同的挂载点或磁盘上 在 HolyArrs 和下载器里都只挂载一次同一个共享文件夹。

更多解决办法:故障排查。

为什么 HolyArrs 会拒绝某些配置路径

HolyArrs 把数据库放在 /config 里。网络共享和 FUSE 路径可能损坏数据库,所以 HolyArrs 会拒绝在这类路径上启动,并说明原因。

在 Unraid 上,/mnt/user 是 FUSE 路径。请用存储池路径,或者把 appdata 设成 Exclusive:在 Settings > Global Share Settings(设置 > 全局共享设置)里打开 Permit exclusive shares(允许独占共享),然后把 Shares > appdata(共享 > appdata)的主存储设为某一个存储池,次存储设为无。

如果 /config 的路径在一个不存在的存储池上,数据会落在内存里,重启机器就没了。HolyArrs 也会拒绝这种情况。媒体同样不要用 /mnt/user;跨它做硬链接可能失败。

为什么自动重启很重要

应用内重启、安全模式和恢复备份都会停止 HolyArrs,并指望 Docker 把它重新启动。没有自动重启,它就一直停着。见功能模块和安全模式。

端口和更新
  • 端口 6262 只映射到你的家庭网络。向外面的任何人开放之前,先读安全基础。
  • 更新时,拉取新镜像并重新创建容器。你的数据留在 /config 里。见更新。

HolyArrs 是免费的。如果它帮你省了时间,欢迎在 GitHub 上点个 Star、赞助它或请我喝杯咖啡。