strm-manager —— 基于OpenList的STRM文件管理后台

  • ~3.06K 字
  • 0 次阅读 次阅读
  • 0 评论 条评论
  1. 1. 项目简介
  2. 2. 技术栈
  3. 3. Docker部署
    1. 3.1. docker run 方式
    2. 3.2. Docker Compose 方式(推荐)
  4. 4. 初始配置
    1. 4.1. 管理员登录
    2. 4.2. 忘记密码
  5. 5. 使用说明
    1. 5.1. 添加 OpenList 服务
    2. 5.2. 创建 STRM 生成任务
    3. 5.3. 文件管理
    4. 5.4. 系统配置
    5. 5.5. 配置备份
  6. 6. 与Emby/Jellyfin配合
  7. 7. 健康检查
  8. 8. 总结

strm-manager 是一个基于 OpenList 服务生成 STRM 文件的管理后台,提供可视化的 Web 界面来管理 OpenList 连接、生成任务、文件管理等功能,让 Jellyfin、Emby 等媒体服务器可以直接播放云盘视频。

项目简介

在日常使用网盘搭配媒体服务器的场景中,我们通常需要将网盘中的视频文件生成 .strm 文件,再由 Emby/Jellyfin 扫描入库实现直链播放。此前常用的工具如 autofilm 虽然能完成基本任务,但缺少一个统一的管理界面。

strm-manager 正是为了解决这个痛点而生,它提供了:

  • OpenList 服务管理,支持批量启用/禁用
  • STRM 生成任务管理,支持手动任务和 Cron 定时任务
  • 定时任务支持批量启用/禁用
  • 任务运行记录、独立详情页和 WebSocket 实时日志
  • 文件管理支持目录浏览、批量删除、双击查看 .strm 内容和复制内容
  • 系统配置支持修改端口、默认输出目录、日志清理策略和时区
  • 配置备份导出/导入,快速恢复环境

技术栈

层级 技术
前端 React 19 + Vite 8 + Ant Design 6 + TypeScript
后端 Express 5 + Node.js (>=20.19)
数据库 SQLite (better-sqlite3)
实时通信 WebSocket (实时日志)
容器化 Docker (多阶段构建)
进程管理 PM2

Docker部署

docker run 方式

1
2
3
4
5
6
7
8
docker run -d \
--name strm-manager \
-p 4173:4173 \
-e DATABASE_PATH=/app/data/database.sqlite \
-e STRM_TARGET_PATH=/media/strm \
-e TZ=Asia/Shanghai \
-v strm-manager-data:/app/data \
ghcr.io/sola614/strm-manager:latest

Docker Compose 方式(推荐)

创建 docker-compose.yml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
services:
strm-manager:
image: ghcr.io/sola614/strm-manager:latest
ports:
- '4173:4173'
environment:
NODE_ENV: production
PORT: 4173
DATABASE_PATH: /app/data/database.sqlite
STRM_TARGET_PATH: /media/strm
TZ: Asia/Shanghai
volumes:
- ./data:/app/data
# STRM 文件输出目录映射,左侧改为你的宿主机目录
- /your/host/strm:/media/strm
restart: unless-stopped
cpus: '1'
mem_limit: 128m
mem_reservation: 32m
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

运行 docker compose up -d 启动服务,访问 http://ip:4173 即可打开管理后台。

提示:如果任务需要把 STRM 文件写入宿主机目录,需要在 volumes 中额外挂载目标目录,并确保左侧宿主机路径与右侧容器路径对应正确。

初始配置

管理员登录

  • 默认用户名:admin
  • 首次进入系统时,登录页会直接展示管理员密码设置表单,设置完成后即可进入管理后台

忘记密码

可以临时设置环境变量重置密码:

1
2
environment:
RESET_ADMIN_PASSWORD: true

重启容器后进入登录页,系统会要求重新设置管理员密码。设置完成后,请删除或注释 RESET_ADMIN_PASSWORD,再次重启容器。

使用说明

添加 OpenList 服务

进入管理后台后,首先添加 OpenList 服务连接,填入 OpenList 的地址、认证信息等,支持批量启用/禁用已添加的服务。

创建 STRM 生成任务

在任务管理页面创建新任务,配置:

  • 关联的 OpenList 服务
  • 源目录(网盘中的视频文件路径)
  • 目标目录(STRM 文件输出路径)
  • 定时策略(支持 Cron 表达式,也可以手动触发)

任务执行后可以在运行记录中查看详情,包括 WebSocket 实时日志和历史日志。

文件管理

内置的文件管理器支持:

  • 目录浏览
  • 批量删除
  • 双击查看 .strm 文件内容
  • 复制文件内容

系统配置

可在管理后台修改以下配置:

  • PORT:Web 服务端口,修改后需重启应用生效
  • defaultStrmTargetPath:新建任务时默认填入的 STRM 输出目录
  • timezone:任务调度和时间显示使用的时区
  • logCleanupEnabled / logRetentionDays:运行日志自动清理策略

配置备份

支持导出/导入配置备份,方便在迁移环境或重装时快速恢复所有服务和任务配置。

与Emby/Jellyfin配合

生成的 STRM 文件可以被 Emby、Jellyfin 等媒体服务器直接识别。只需将 STRM 输出目录挂载到媒体服务器的媒体库路径中,媒体服务器扫描后即可入库,配合 nginx 反代和 alist 即可实现网盘直链播放。

具体的 Emby + Alist + STRM 直链播放方案可以参考我之前的文章:emby开心版挂载alist生成的strm文件实现网盘直链播放

健康检查

Docker 镜像内置了健康检查接口:http://127.0.0.1:4173/api/health

Dockerfile 中已配置:

1
2
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3
CMD curl -f http://127.0.0.1:4173/api/health || exit 1

总结

strm-manager 相比传统的命令行工具(如 autofilm),提供了更加友好的 Web 管理界面,支持实时日志查看、文件管理、配置备份等功能,非常适合需要管理多个网盘 STRM 生成任务的用户使用。项目基于 SQLite 轻量级数据库,Docker 部署资源占用很小(建议 128MB 内存),适合在 NAS 或 VPS 上长期运行。

项目地址:https://github.com/sola614/strm-manager

打赏
打赏提示信息
分享
分享提示信息