进阶 docs.stashapp.cc 2026-10-20 02:59:21 · 13 阅读

第10章 Synology 设备 Stash 安装指南

Synology

作者:Muldec

前言

Synology 设备分为两类:支持通过 Docker 进行容器化的设备,以及不支持的设备。要确定你的设备属于哪一类,请参考 Docker 软件包页面的“适用机型”部分。现在,请根据你是否可以使用 Docker,选择相应的安装说明。

通过 Docker 安装 Stash

注意:即使你的 NAS 支持 Docker,你也可以选择在不使用 Docker 的情况下运行 Stash。这样可以更灵活地控制 Stash 实例的启动方式。例如,你可以将影片存储在加密共享文件夹中,仅在该加密文件夹已挂载(解密)时才运行 Stash。

如果你使用的是 Synology DSM 7.2 或更高版本,请启动 Container Manager 应用。否则,请确保 Docker 应用已安装并正常运行。

在软件包注册表中搜索 stash 并安装。

在“高级设置”中,使用以下配置创建一个 stash 镜像:

“卷设置”部分

文件/文件夹挂载路径说明
docker/Stash/generated/generated缩略图、剪辑等
docker/Stash/metadata/metadata数据库
docker/Stash/config/root/.stash配置文件
docker/Stash/cache/cache缓存文件
docker/Stash/blobs/blobs场景封面、艺人图片等二进制数据
(你的影片存储位置)/data影片存放位置

“环境变量”部分

(这些需要与你在“卷”选项卡中创建的卷路径保持一致。)

变量名值
PATH(保持默认)
STASH_CACHE/cache
STASH_METADATA/metadata
STASH_GENERATED/generated
STASH_STASH/data

“端口设置”部分

你需要在“端口”部分设置一个默认端口,否则 Docker 每次启动 Stash 时都会分配不同的端口。保持容器端口设置不变。

“网络”部分

选择“host”网络,而不是“bridge”。

(感谢支持者 Herelam80 提供这些指导)

不通过 Docker 安装 Stash

警告:此方法使用 SSH 在 NAS 上运行命令行指令。如果你不熟悉 SSH 或 Linux 命令行,建议不要继续操作,因为在 SSH 会话中的错误操作可能会严重损坏你的 NAS。

此方法适用于 DSM 7.0 及更高版本。在 7.0 之前的版本上无法使用。

安装前置依赖

在 DSM 中,进入“软件中心 > 设置”。在“软件来源”选项卡中,点击“添加”,输入 SynoCommunity 作为名称,输入 https://packages.synocommunity.com/ 作为位置,然后点击“确定”。

回到软件中心,在“社区”选项卡中查找 Python 3.11。点击“安装”,并同意第三方软件包警告。

然后在“社区”选项卡中查找 Ffmpeg 7。点击“安装”,并同意第三方软件包警告。

启用 SSH

在 DSM 中,进入“控制面板 > 连接 > 终端 & SNMP”,勾选“启用 SSH 服务”。

创建一个用于运行 stash 的用户

在 DSM 中,进入“控制面板 > 文件共享 > 用户与群组”。

点击“创建”。

输入用户名(例如 stash)和密码(你稍后需要用到)。

点击“下一步”,直到进入“加入群组”界面。

将该用户分配到“administrators”群组(稍后移除此设置,但 Synology 要求此设置才能使用 SSH 并正确完成安装(我知道这很糟糕))。

点击“下一步”,直到进入“分配共享文件夹权限”界面。

对你的影片文件夹分配读/写权限(写权限允许从 stash 应用中删除剪辑)。

点击“下一步”,直到进入“分配应用程序权限”界面。

对所有应用程序勾选“拒绝”。

点击“下一步”,直到可以点击“完成”。

连接到你的 NAS

在终端中,使用刚创建的、属于 administrators 群组的账户连接到你的 NAS。

ssh stash@your_nas_hostname

链接 ffprobe 和 ffmpeg

ffmpeg 之前已经安装,但缺少指向 ffprobe(也已安装)和新版本 ffmpeg 的链接。运行以下命令。

sudo ln -sf /var/packages/ffmpeg7/target/bin/ffprobe /usr/local/bin/ffprobe
sudo ln -sf /var/packages/ffmpeg7/target/bin/ffmpeg /usr/local/bin/ffmpeg

下载 Stash

从 GitHub 下载最新版本的 Stash 及其校验和。

# 查找你的 Synology 正在运行的架构
uname -m

# 根据架构,你需要下载正确版本的 stash

# x86_64
wget https://github.com/stashapp/stash/releases/latest/download/stash-linux
# armv6l
wget https://github.com/stashapp/stash/releases/latest/download/stash-linux-arm32v6
# armv7l
wget https://github.com/stashapp/stash/releases/latest/download/stash-linux-arm32v7
# aarch64
wget https://github.com/stashapp/stash/releases/latest/download/stash-linux-arm64v8

# 下载校验和
wget https://github.com/stashapp/stash/releases/latest/download/CHECKSUMS_SHA1

# 执行校验和验证
sha1sum -c --ignore-missing CHECKSUMS_SHA1

# 你应该会看到一行 `stash-linux: OK`
# 如果没有,说明下载过程中出现了错误

# 清理不再需要的文件
rm CHECKSUMS_SHA1

危险:不要现在运行 stash,否则会在我们不想出现的位置生成一堆文件/文件夹。

Python

准备 Python 环境(用于爬虫和插件)。

python3.11 -m ensurepip --upgrade
python3.11 -m venv stash-env
source stash-env/bin/activate
pip3 install pipreqs

配置 NAS 以运行 Stash

创建配置文件

echo 'PATH=/usr/local/bin:$PATH' > .profile
echo 'source stash-env/bin/activate' >> .profile

运行 cat > stash.service 创建服务文件,复制/粘贴以下内容,完成后按 CTRL+D 保存文件(如果未回到提示符,请再按一次):

[Unit]
Description=Run Stash at startup
After=network.target

[Service]
WorkingDirectory=/var/services/homes/stash
Type=simple
User=stash
ExecStart=/bin/bash -c -l '\
exec ./stash-linux'
Restart=on-failure

[Install]
WantedBy=multi-user.target

注意:通过提供之前下载的 stash 可执行文件的准确名称来更改 ExecStart 行。

启动并激活服务

sudo systemctl enable "$(pwd)/stash.service"
sudo systemctl start stash.service

验证是否正常工作

现在,你可以通过访问 NAS 地址的 9999 端口来访问 stash:http://nas-hostname:9999

安装爬虫和插件

每当安装新的 Python 爬虫或插件时,请从 stash 用户的家庭目录执行以下操作:

pipreqs .stash/.
pip3 install -r .stash/requirements.txt

注意:使用 pipreqs 可以扫描所有已安装的爬虫和插件,并找出它们所需的依赖项。你也可以不使用 pipreqs,而是进入每个单独目录并运行 pip3 install -r requirements.txt 来达到相同效果。

将 stash 用户从管理员组中移除

返回 DSM,进入“控制面板 > 文件共享 > 用户与群组”。

点击 stash 用户,然后点击“编辑”。

在“用户群组”选项卡中,取消勾选“administrators”,然后点击“保存”。

评论 (0)