NAS、群晖和 Unraid
新手入门
在你的 NAS 上运行 HolyArrs,把文件夹、属主和重启设置配对。先读安装。
开始之前
开始之前 的链接/config放在本地卷或存储池上。绝不要放在网络共享上。- 媒体放在一个共享文件夹里,里面有
downloads、movies、tv和music。可以逐个挂载,也可以只挂载一次上级文件夹来用硬链接。见文件夹。
设置你的 NAS
设置你的 NAS 的链接::tab[Synology]
- 在 File Station 里创建
docker/holyarrs/config。 - 创建一个共享文件夹
media,里面有downloads、movies、tv和music。 - 在 Container Manager 里打开 Project > Create(项目 > 新增),粘贴安装页面里的 Compose 文件。
- 把卷设为
/volume1/docker/holyarrs/config:/config,然后是/volume1/media/movies:/movies、/volume1/media/tv:/tv、/volume1/media/music:/music和/volume1/media/downloads:/downloads。 - 把
PUID和PGID设成你的用户,通常是1026和100。通过 SSH 用id <user>确认。 - 给这个用户
media的读写权限:Control Panel > Shared Folder > Edit > Permissions(控制面板 > 共享文件夹 > 编辑 > 权限)。 - 勾选 Enable auto-restart(启用自动重新启动)。
- 打开
http://your-server:6262。你应该会看到首次运行的设置向导。把/movies、/tv和/music添加为媒体库文件夹。
::tab[Unraid]
现在还没有 Community Applications 模板,所以要手动添加容器。
- 在 Docker 选项卡里,用 HolyArrs 镜像添加一个容器。
- 映射端口
6262。 - 把
/config映射到一个存储池路径,例如/mnt/<pool>/appdata/holyarrs。<pool>是你的存储池名。不要用/mnt/user/appdata。 - 把你的媒体文件夹映射到
/movies、/tv、/music和/downloads,用磁盘或存储池路径,例如/mnt/<pool>/media/movies:/movies、/mnt/<pool>/media/tv:/tv、/mnt/<pool>/media/music:/music和/mnt/<pool>/media/downloads:/downloads。 - 设置
PUID=99、PGID=100(Unraid 的nobody:users)和UMASK=022。 - 给容器打开自动启动,这样它会自己重启。
- 打开
http://your-server:6262。你应该会看到首次运行的设置向导。
::tab[QNAP]
- 创建
Container/holyarrs/config和一个media共享,里面有downloads、movies、tv和music。 - 在 Container Station 里打开 Applications > Create(应用程序 > 创建),粘贴 Compose 文件。
- 使用
/share/Container/holyarrs/config:/config,然后是/share/media/movies:/movies、/share/media/tv:/tv、/share/media/music:/music和/share/media/downloads:/downloads。 - 把
PUID和PGID设成media共享的属主。 - 把重启策略设为
unless-stopped。 - 打开
http://your-server:6262。你应该会看到首次运行的设置向导。
::tab[TrueNAS SCALE]
- 创建 2 个数据集:
apps/holyarrs-config和media,并在media里建downloads、movies、tv和music文件夹。 - 在 Apps 里,用 Compose 文件通过 YAML 添加一个自定义应用。
- 使用
/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。 - 把
PUID和PGID设成数据集的属主,通常是568。在数据集 ACL 里给这个用户写入权限。 - 把重启策略设为
unless-stopped。 - 打开
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 把它重新启动。没有自动重启,它就一直停着。见功能模块和安全模式。
相关页面
相关页面 的链接HolyArrs 是免费的。如果它帮你省了时间,欢迎在 GitHub 上点个 Star、赞助它或请我喝杯咖啡。