在最早写的这篇N1折腾文章中,通过Entware环境安装了各种软件,实现下载浏览等媒体服务。经过上次折腾Docker下安装OpenWRT之后,就想是不是可以把这些软件做成一个Docker镜像方便使用,学习了一下不是很复杂,做成了一个镜像,特此分享。

2020.03.30更新

  1. 调整挂载路径,从/root/exmedia/media/exmedia
  2. 新增苹果afp服务,可在Finder中连接。

简介

镜像地址:https://hub.docker.com/r/taoskycn/n1-media-server

包含 Caddy,FileBrowser,Transmission,提供“BT/PT下载”,“HTTP文件浏览”,“WebDAV”,“文件管理” 服务。WebDAV可配合Potplayer, Nplayer, Kodi等软件用于播放视频。

先上几张效果图(因为把原图搞丢了,所以有张大妈的水印😓)。



镜像使用

首先要有Docker,如果是CoreELEC可以直接在插件里面安装。

安装启动

  1. 拉取镜像(之前反映有官方仓库下载慢的问题,这里用了ustc的mirror)docker pull docker.mirrors.ustc.edu.cn/taoskycn/n1-media-server:0.1
  2. 创建并后台运行容器(“/var/media/N”为外接存储路径,根据情况自行修改docker run -it -d --name N1 -p 1001-1006:1001-1006 -p 51413:51413 -p 548:548 --privileged=true --mount type=bind,source=/var/media/N,target=/media/exmedia taoskycn/n1-media-server:0.2 /bin/ash
  3. 进入容器 docker exec -it N1 /bin/ash
  4. 启动各个服务/root/start.sh 回车
  5. 如需停止 /root/stop.sh
  6. 退出容器 exit

访问和设置

  • Transmission Web:http://<N1的IP>:1001,账号密码transmission:transmission,已更换WebUI,配置文件位于/root/.config/transmission-daemon/settings.json

  • Caddy 文件浏览:http://<N1的IP>:1002,账号密码caddy:caddy,显示外接存储下的download目录,配置文件位于/etc/Caddyfile

  • Caddy WebDAV:http://<N1的IP>:1002/webdav,账号密码caddy:caddy,显示外接存储下的download目录。

  • FileBrowser文件管理:http://<N1的IP>:1003,账号密码caddy:caddy,可在Web界面修改各项设置。

  • (新增) AFP服务:在Mac OS X的Finder下Command + K 输入afp://192.168.2.107 点击连接,默认账号密码afp:afp,可通过passwd afp进行密码修改,该服务端口为548,外网访问需映射该端口。

  • 如需外网访问,使用路由器设置端口映射即可,考虑到安全因素,建议修改密码后操作

注意事项

  • docker run会映射端口,运行前确认端口未被使用。
  • 51413为transmission交换数据的端口,需要映射到公网(没有好像会影响上传)
  • 如需手动修改Transmission配置文件,先退出进程。
  • 如外网访问各服务问题,可能是运营商屏蔽了特殊端口,可尝试更换端口。

WebDAV配置

Potplayer

播放列表-新建专辑(注意:由于Windows文件命名限制问题,可能有包含特殊符号的无法打开)

NPlayer

网络-新建服务器-WebDAV

Kodi

进入文件区-添加视频-浏览-添加网络位置

总结

最小化满足了媒体服务器的需求,并且具有一定的扩展性,比如玩PT的可以配合浏览器插件远程下载,WebDAV也可以在各个终端使用,也可以分享给别人远程浏览(上行带宽要够大)。

还有一些功能没有添加,如Aria2,因为我个人没有这种需求所以暂未考虑;还有Mac上WebDAV必须缓存完才能播放,之前是用的Netatalk做的一个afp(苹果文件传输)服务器,但是这个东西由于目录权限问题(很神奇),也没有成功,有研究过的希望能分享一下。 0.2版本已增加。