当前位置: 首页 > 科技观察

用Plex和Syncthing搭建一个媒体中心

时间:2023-03-20 19:12:17 科技观察

因为软件是朋友介绍的,所以本文无意写。但是因为在坑上浪费了很多时间,所以还是写出来了,可能对刚接触NAS的小伙伴有帮助。本文记录如何使用Plex和Syncthing搭建家庭NAS,具体实现这些功能:P2P文件备份。DLNA媒体服务。随时上传媒体文件。笔者的设备:宏基笔记本(Archlinux)、小米电视(Android)。它可能与您的设备不同,但原理是相似的。我了解到,即使对于Windows版本,用户和权限等策略也是相同的。或者你可以安装一个Arch。软件介绍Plex是一套软件,包括媒体服务器、安卓和其他终端设备App。支持基于元数据的转码和分类,以及在播放过程中选择不同的码率。Syncthing开放的、去中心化的文件同步软件。P2P机制很强大,在公司里可以和家里的内网服务同步。systemd是Linux下非常先进的daemon进程管理工具,使用非常简单。简单的使用示例可以参考这篇文章:使用systemd管理Node.js应用,构建Syncthing服务。Syncthing有很多二进制文件可以下载,你可以选择一个合适的下载安装。Archlinux可以从AUR安装:yaourt-Ssyncthing以systemd启动服务:systemctlstartsyncthing@harttle.servicesystemctlenablesyncthing@harttle.service@harttle后缀使其工作在harttle用户下,需要改成你的系统用户名。这样Syncthing创建的文件就拥有了harttle用户的默认权限,Owner为harttle:users。启动后即可访问使用该服务。您需要在每台设备上安装Syncthing,以便它们可以在交换ID后相互同步文件。备份策略和共享目录都可以在WebUI上设置。如果你的服务是在像[Harttle](/)这样的远程服务器上启动的,你可以使用SSH将WebUI的端口转发到本地:#useyourserveraddressssh192.168.1.xx-L8384:localhost:8384and然后访问本地的。后面的PlexWeb端口也是如此,这里不再赘述。构建Plex服务同样,安装AURplex并启动:yaourt-Splex-media-serversystemctlstartplexmediaserversystemctlenableplexmediaserver为了让Plex读写Syncthing文件,Plex需要以harttle用户身份运行。需要做以下两件事。1.更改启动用户编辑SystemdUnit文件/etc/systemd/system/multi-user.target.wants/plexmediaserver.service,将User和Group改为你自己的:[Service]User=harttleGroup=users2。更改运行时文件权限由于我们更改了Plex启动用户,因此我们还需要相应地更改Plex的工作区目录/var/lib/plex。该目录的Owner要与启动用户相同,否则无法正常启动。如果你的目录不是这个,你可以从SystemdUnit文件中的配置一直跟踪到这个目录。chownharttle:users-R/var/lib/plex日志文件也在这里,可用于调试:/var/lib/plex/Plex\Media\Server/Logs。然后重启Plex的SystemdUnit:systemctldaemon-reloadsystemctlrestartplexmediaserver访问localhost:32400管理媒体内容和目录。使用Syncthing上传到Plex只需要将Syncthing和Plex目录设置为相同,并将Syncthing节点对应文件夹的上传方式设置为仅发送即可。Client如果可以从局域网内的其他机器访问到PlexMediaServer,说明服务启动成功。启动Plex后,您可以从小米电视访问DLNA服务。安装Plex安卓客户端后使用会更方便,从这里下载:https://www.apkmirror.com/apk/plex-inc/plex/。附截图: