@jordanhubbard ~ Sir, an honor and a privilege to have you visit these parts! Really appreciate your historical perspective and pragmatic outlook.
I do get it and can definitely understand Plex viewpoint. I hope my posts didnāt sound like complaining because thatās not what the intent was. I just love FreeBSD and it just disappoints me to see Plex or any other software developer drop support for it.
Thank you @jordanhubbard for your perspective.
I feel that Docker in a VM does provide a large boon to FreeBSD. Not only does it provide a means to run software not ported to FreeBSD (such as the Gracenote library which was the whole reason this thread was started in the first place), but it also opens up a large ecosystem drawing on the work of those who have no concern at all for FreeBSD. Someone just wanting to make a container for their Linux box has now has created something that FreeBSD users can also run. Weāve even seen people running the Plex docker container on Windows (which, incidentally, also uses a VM but in this case through Hyper-V).
As to the future, Iād image that Docker inside of bhyve is very good solution that will only get better. I know that virtfs is coming to bhyve, which reduces the need for storage in the VM, and I expect thatās just the beginning of enhancement weāll see. I donāt know the feasibility of these ideas, but imagine if they were implemented: What if memory ballooning or some similar technique were implemented in the hypervisor/VM so the host can reclaim unused memory from within the VM? What if Docker running in the VM could use a ZFS-backed storage provider running on the host instead of using aufs? With these two, how heavy is the VM really?
P.S. FWIW, sometimes Java does succeed very well at the write once run anywhere. At $lastJob I primarily did server-side Java development and the applications there worked on Windows, Linux, and Mac with the only differences being configuration (for paths and the like). It worked really well and freed up the developers to use the platform of their choice (each of the above 3 were used by developers). While we didnāt test with FreeBSD, I have no reason to believe it wouldnāt have worked there.
Currently using NAS4Free and its plex extension.
Reading this thread, I undertand I have to consider to switch to freenas 10 for long term suppport of Plex.
I currently have a HP microserver Gen8 with 8 GB ECC RAM. It is only meeting the minimum requirements of freenas.
What will be the HW requirements of a ālightā install: freenas 10 + Plex + few afp/smb shares to populate the media library ?
What could be the OS alternatives to NAS4Free / freenas :
- docker support
- Configuration (storage, shares) through web interface
I donāt believe there has been an official requirement set for FreeNAS 10 but would have to hazard a guess that at least 16GB will be needed. My server currently has 72GB.
For Docker support you will need to make sure your CPU(s) support it. I have Xeon 55xx series and, while they support virtualization, there is one aspect of docker they donāt support so I need at least 56xx series CPUās.
My belief is that any OS you choose will need more that 8GB so you are probably better off staying with FreeNAS.
@gbooker02 said:
Thank you @jordanhubbard for your perspective.
As to the future, Iād image that Docker inside of bhyve is very good solution that will only get better. I know that virtfs is coming to bhyve, which reduces the need for storage in the VM
JFYI, but Docker in FreeNAS user 9pfs (which we have also substantially enhanced in FreeBSD) to share storage with the host, which weāve measured at yielding performance in the range of 1Gbyte/sec (many times faster than local-loopback NFS). The VirtFS stuff will be cool, but for now we can still do a lot with 9pfs! The balloon driver and other performance enhancements to dynamically scale the āsizeā of the VM to the host, and to the target environment, will certainly also be interesting areas for enhancement.
@elan said:
I wouldnāt go so far as to call Docker an emulator.From my perspective we get to bring all the features of the platform to FreeBSD, without incurring the cost of maintaining a separate build which is missing features, for <1% of our users.
What are the downsides of Docker, in your view? Saying things like āitās not nativeā or āitās an emulatorā isnāt super helpful. Are there resource limitations? Something else Iām missing?
On FreeBSD itās exactly an emulator - everything goes via the linux ABI layer. . It requires somebody to ensure that every linux syscall that plex requires, for every library, has an equivalent wrapper through to the FreeBSD kernel. This may or may not be complete to date, but it would be naive to assume that docker will magically make that go away.
The alternative is full virtualisation of plex, under bhyve. While almost everybody I know who has a NAS at home is using FreeNAS, many of these systems are not really ready to run a full virtualisation via bhyve, either due to insufficient CPU support, or because they are low end machines.
I bought a plex pass because of FreeBSD support, and given that Iāve suffered bitrot in the past, I really donāt want to end up using linux and giving up the reliability.
@jordanhubbard said:
The VirtFS stuff will be cool, but for now we can still do a lot with 9pfs!
I was under the impression that the virtfs in bhyve was done via 9pfs. Are you saying that what youāve done is a separate daemon to share out 9pfs and is not the virtfs? Still cool either way.
@cottlehubers said:
On FreeBSD itās exactly an emulator - everything goes via the linux ABI layer. . It requires somebody to ensure that every linux syscall that plex requires, for every library, has an equivalent wrapper through to the FreeBSD kernel. This may or may not be complete to date, but it would be naive to assume that docker will magically make that go away.
TBH, given jordanhubbardās comments as well as the results of some tests, I doubt the Linux syscall emulation will ever be a viable mechanism for running Linux docker containers. I did some tests using Plexās docker container through this layer and discovered that several syscalls REQUIRED by S6 are not only not implemented, but they arenāt even present in the version of Linux the emulation is targeting. These syscalls were added in the decade since that version of Linux was released. Given that S6 is growing in popularity as a light-weight supervisor in containers, this is a fairly hard barrier for running Linux containers in FreeBSD without using a VM.
I gave a try to have docker on my NAS, initially through virtualbox & Ubuntu serveur. The VM was freezing every 24h (NFS lockd not responding), that I didnāt manage to dix.
On a second attempt, I went through bhyve & coreOS, and this combination is working OK (so far so good)
Being pragmatic, I would say that if I can keep my NAS as is, and run the latest and fully supported PMS, then I will be fine with the ābhyve wayā
Iāve run Ubuntu inside bhyve continually for over a month now without any issue. I would certainly recommend it.
BTW, since you mentioned NFS, I should add that you should not put any sqlite databases (which Plex has one in its config dir) on a NFS mount. The file locking required by sqlite doesnāt exist over NFS and even using local posix locking doesnāt seem to work either. You likely already know this but I felt I should mention it regardless just in case.
Ooops, I am using NFS for the config part as wellā¦
What is the consequence ? Database corruption likely to happen ?
What is the consequence ? Database corruption likely to happen ?
Yeah, database corruption can occur.
@jordanhubbard said:
(ā¦)
That said, there will always be a tension between that POV and the ISV perspective, the latter of which is always trying to minimize development and support costs by porting to only those platforms which are absolutely necessary.(ā¦)
- Nvidia Shield
- Xbox One
- Xbox 360
- PlayStation 3
- PlayStation 4
- Smart TV
- Amazon Alexa
- Apple TV
- Amazon Fire TV
- Android TV
- Chromecast
- Roku
- TiVo
- Sonos
- Android
- iOS
- Windows Phone
- Web
- Windows
- Plex Media Player
- Kodi
After almost 7 years using Plex in Linux, Iām almost deciding to migrate to FreeBSD, and then I found this thread.
Iām sorry if I lack the technical knowledge to discuss this matter, but why on earth Plex supports so many things/devices (Windows Phone? Are you kidding?) and is considering to drop support for a solid and robust UNIX OS just because an ephemeral technology (docker) that will not survive for more than 3 years, if so, is the new kid on the block?
I really canāt understand.
Please, stop to spread Plex laterelly, and focus on whatās important: native development.
@zamana said:
After almost 7 years using Plex in Linux, Iām almost deciding to migrate to FreeBSD, and then I found this thread.
Speaking purely as a FreeBSD user for this one: Having migrated to FreeNAS (derivative of FreeBSD) myself several years ago, Iād urge you to not change. Several software packages are quite painful to get working correctly on FreeBSD which they are a simple apt install or docker run away on Linux (the apt command is obviously for Debian based). In fact, some are so painful that I spent less time creating an Ubuntu VM from the command-line, installing docker inside that VM, and installing the same software containers in far less time than it took to get it working initially in a jail. Then these upgrades which mean repetition of that same pain for the jails but quite trivial in docker. I still have an Ubuntu box around to take some tasks than I never got working in FreeBSD. As soon as the native ZFS encryption lands in Ubuntu, Iām switching back.
Iām sorry if I lack the technical knowledge to discuss this matter, but why on earth Plex supports so many things/devices (Windows Phone? Are you kidding?) and is considering to drop support for a solid and robust UNIX OS ā¦
There are many issues at play (many already mentioned), but putting it succinctly: FreeBSD is proving itself to be the most painful target for Plex Media Server while having the smallest user-base.
⦠just because an ephemeral technology (docker) that will not survive for more than 3 years, if so, is the new kid on the block?
Funny, itās already survived more than 4 years. Guess your prediction is already proven wrong.
Is it just that the GNSDK is supported on FreeBSD?
From GraceNotes website they also offer a Web API for retrieving song/album/artist information and for generating mixes using their Rhythm algorithms.
Would it be possible to implement these Web APIās for FreeBSD if the GNID for each track in your PLEX library was populated by an external application?
So running their Thin Client on a Windows/Linux/OS X Box against my library to store the GNID in the PLEX metadata or NFO/XML file that PLEX can consume (Iām assuming PLEX stores this value having done the fingerprinting with the GNSDK for the other OSās). Which would then allow for the additional artist/album information to be pulled from their Web API (HTTP Requests) and for PLEX Mixes to be generated against their Rhythm API.
If Plex drops native support for FreeBSD I will (a) migrate to something else, likely Emby, and (b) demand a Plex Pass refund. I donāt imagine I will get the refund, but I sure will demand it many times over. Why was it not shown during the Plex Pass buying process that native support for FreeBSD will be coming to an end? Not happy.
Wait, are you really considering dropping the FreeBSD build?
Thatās⦠disappointing. Really, āinfuriatingā is a better word but Iām trying to be nice and reserve judgment. The entire reason I bought a lifetime PlexPass is because there was a native FreeBSD build.
Being able to run it on my custom (FreeBSD-based) server image was a big selling point. Having done work on both BSD and Linux kernel code ā including parts of ZFS on the former ā I try to keep the mess of spaghetti that is Linux as far away from my servers as possible.
The linuxulator is⦠less than ideal. Iāve had dependency hell issues with it in the past, so I actively avoid software that canāt be built natively.
docker? Ugh, so much extra complexity that is not needed for a system that would only run a single container. Removing old files during upgrades is what pkg was invented for.
bhyve is even more pointless in my situation since my Plex server is already a VM (albeit in ESXi). I might as well just create a linux vm at that point, if I felt like maintaining a separate OS.
Though I doubt youāll take me up on it, if it came down to it Iād be willing to sign an NDA and maintain the damn thing myself to keep the BSD build alive. 
I urge you to not drop the FreeBSD build, even if things like the gracenote library donāt work. Otherwise Iāll be looking for something else I guess. Pretty sure I canāt run the current build forever since the mobile apps eventually stop supporting older server versions.
Subscribing to see any updates to the thread. Iām very invested in FreeNAS too. Very glad @KCBTV Offered to keep it maintained. 
Dropping FreeBSD support would be very unfortunate⦠On the other hand if the docker version just works on FreeBSD it might not change that much for meā¦
Whatās the update here? Iām assuming FreeBSD support isnāt going anywhere, but I want to check!