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 | docker run -d \ |
Docker Compose 方式(推荐)
创建 docker-compose.yml 文件:
1 | services: |
运行 docker compose up -d 启动服务,访问 http://ip:4173 即可打开管理后台。
提示:如果任务需要把 STRM 文件写入宿主机目录,需要在 volumes 中额外挂载目标目录,并确保左侧宿主机路径与右侧容器路径对应正确。
初始配置
管理员登录
- 默认用户名:
admin - 首次进入系统时,登录页会直接展示管理员密码设置表单,设置完成后即可进入管理后台
忘记密码
可以临时设置环境变量重置密码:
1 | environment: |
重启容器后进入登录页,系统会要求重新设置管理员密码。设置完成后,请删除或注释 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 | HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 |
总结
strm-manager 相比传统的命令行工具(如 autofilm),提供了更加友好的 Web 管理界面,支持实时日志查看、文件管理、配置备份等功能,非常适合需要管理多个网盘 STRM 生成任务的用户使用。项目基于 SQLite 轻量级数据库,Docker 部署资源占用很小(建议 128MB 内存),适合在 NAS 或 VPS 上长期运行。