9 ms·
The Perfect Media Server
- thefunnyman 6y agoI’ve found TrueNAS (previously FreeNAS) to be quite good and I’m surprised to see no mention of it in the article or this comment section. I’ve had a pretty good experience running a basic NAS server for my family. It runs Plex well in a BSD jail and has a GUI that’s usable for everything I’ve needed so far. ZFS support made setting up a zraid pretty easy and it supports easy backups to a number of cloud providers. Of course it’s BSD so no native docker, but from what I’ve seen most people choose to run Docker in a vm instead of on native containers. I’m thinking of trying out proxmox for my upcoming home server because I want to give GPU pass through a shot, but I’m definitely impressed with TrueNAS and would recommend it.
- m463 6y agoI just recently read through this and it's a goldmine of hard-won information big and small, like ventoy or mounting disks using /dev/disk/by-id/
- ofrzeta 6y agoOld-time Linuxer here but it's the first time I heard of either Ventoy, MergerFS or SnapRAID.
- joch 6y agoSounds like using mergerfs together with snapraid would work similar to the popular Unraid software but more diy.
- fishtacos 6y agoUnraid provides real time data protection, whereas Snapraid with mergerfs provide disk pooling and scheduled snapshots. That's its greatest feature IMO - expandability and data protection without rigid expansion requirements. AFAIK, it's one of a kind. Flexraid on Windows was the closest I had found (a product I still use on an old install - software and owner disappeared - although I did manage to track down the patent and the developer once, seems to have moved on to other interests/employment)
- terrywang 6y agoVentoy is relatively new bootable USB creator supporting booting directly from ISOs instead of actually block by block copying (old fashioned - like dd or pv, quite like it). It works very well in most cases using popular distros, a bit glitchy on Macs LoL
- robotmay 6y agoI'm sure there's a reason mounting by ID isn't the default but that's always been a weird one for me and I make sure to swap it over when building a storage server.
- MayeulC 6y agoIt's usually the default in /etc/fstab for most distributions. It's often simpler to just mount /dev/sda if you just connected it and need to do a one-off. But if you want something reliable, for automount for instance, I don't see why anyone would use something else than UUIDs. I even put those on stickers on my external hard drives. Another tip I like is using noauto,x-systemd.automount to mount on-demand, and unmount after a set inactivity timer: https://www.freedesktop.org/software/systemd/man/systemd.mount.html#x-systemd.automount https://www.freedesktop.org/software/systemd/man/systemd.mou...
- m463 6y ago/dev/disk/by-id is different than /dev/disk/by-uuid for example, you dd a disk and by-uuid is ambiguous. meanwhile by-id still finds the original disk
- tremon 6y agoI don't see why anyone would use something else than UUIDs Some partitions don't have UUIDs, such as LUKS volumes with a detached header or plain dm-crypt volumes. In that case, I use a /by-id/wwn-* path to uniquely identify the partition. Of course, those lines are in /etc/crypttab, not in /etc/fstab.
- MayeulC 6y agoOK, I re-read the thread, and noticed where the confusion comes from. https://wiki.archlinux.org/index.php/Persistent_block_device_naming https://wiki.archlinux.org/index.php/Persistent_block_device... I am talking about UUIDs, that basically any (Linux at least) filesystem has. Those are a bit like filesystem labels, but generated during filesystem creation. Their format makes collisions virtually impossible. LUKS volumes have one, and partitions inside them have a different one too. This is my prefered way of identifying partitions, as they are persistent even when you move them around with lvm, dd, or others. I think that's also the default in many distributions. PARTUUID is also a nice way to identify partitions when you can't rely on a partition UUID for some reason. It works like UUIDs, but instead of being stored inside the partition, that information is part of the GPT (GUID partition table). If you are more interested in the drives than the partition content, by-id makes sense, though I think the use-case is rather narrow :)
- jon-wood 6y agoWhile playing with NixOS the other day I learned about /dev/disk/by-label which is the equivalent, but works with partition labels. So much more elegant than /dev/sda2.
- jgtrosh 6y agoOr mount -L and LABEL=... in fstab
- rascul 6y agoThey're filesystem labels. /dev/disk/by-label gets populated by udev [0]. The labels can be set with "e2label", "btrfs filesystem label", or other tools depending on the filesystem type. [0] https://github.com/systemd/systemd/blob/master/rules.d/60-persistent-storage.rules#L117 https://github.com/systemd/systemd/blob/master/rules.d/60-pe...
- djhworld 6y agoI recommend listening to the podcast on that page self-hosted if you're into this sort of thing.
- sdepablos 6y agoDidn't know about Ventoy https://github.com/ventoy/Ventoy https://github.com/ventoy/Ventoy but the possibility to install something in an USB and from now on being able to boot from any (and multiple) ISO/WIM/IMG/VHD(x)/EFI that I copy there is pretty sweet.
- m-p-3 6y agoInteresting, that could be a replacement if/when my iodd2541 fails.
- morsch 6y agoThe DLNA/UPNP server that came with my Synology NAS is surprisingly competent. I just wish it had more RAM and a faster CPU. I also wanted a media server on my desktop, with mixed results... Gerbera and MiniDLNA are both annoying to configure and buggy. If there's something better out there, I didn't find it.
- philjohn 6y agoI mean, Plex is the go-to answer, and if you pay for the Plus Pass you can do hardware transcoding on Intel or Nvidia GPU's for smaller-screen devices. Of course, non free (as in freedom)
- oarsinsync 6y agoWhich then nicely leads us to Jellyfin, which is free (as in freedom)
- philjohn 6y agoYes - keeping an eye on it, waiting for the WebOS client though, as the "DLNA" client built into my OLED works, but not particularly well.
- morsch 6y agoThanks, I'll give it a go. Like Plex, it seems to do way more than I need or even want it to do. But I guess as long as it does what I need also...
- MayeulC 6y agoInteresting post. They do get a lot of things right, but I tend to prefer a full OSS stack, so jellyfin instead of plex, and btrfs instead of ZFS. I didn't know some parts they mentioned, I guess I'll investigate :) One data point about btrfs, FWIW: I've been using it since 2016, the only "issue" I had is that it forced a failing drive into read-only, while other filesystems didn't detect the upcoming failure, thank checksuming for this. The main missing feature for me is caching on faster disks, though there are some ways to get that. No mention of LVM nor LUKS either, I guess the understanding is either still a bit superficial (everyone has their own areas of interest), or they didn't want to complexify the setup too much. For self-hosting, I can recommend https://yunohost.org/ https://yunohost.org/ which makes easy some traditionally hard parts of self-hosting, though it is quite opinionated (which isn't always a bad thing). Certainly saved me some time on maintenance, though I do see the limitations. The holy grail of a "perfect homeserver" for me would be to run everything in GUIX, with a declarative configuration I can locally test before deploying, and rolling back. More packaging efforts are needed before this can become reality. I'd also like the option to have simple distributed storage, trough something like hypercore. This would help for backups, and for overcoming low-bandwidth links. But maybe it's the Internet that needs to be fixed, with public key routing and content-based addressing, plus "heavy" clients and light, dumb servers instead of pushing everything to the browser.
- m463 6y agoI wonder about BTRFS after reading this: One thing I will not run is btrfs, aka ENOSPCfs. I saw it fail again, and again, and again, and again, AND AGAIN, and again, and again. Then I saw it fail some more. The promised features never materialized, and the drama and surprising behaviors never ceased. All costs, no benefits? I'll leave that on the shelf, a few spots down from reiserfs (which was plenty sketchy BEFORE you know who did you know what). https://rachelbythebay.com/w/2020/12/11/feedback/ https://rachelbythebay.com/w/2020/12/11/feedback/ As to file systems in general, I think they covered them very well.. As to Plex, he also mentioned the others: Jellyfin and Emby are two notable players in this space (playback on any device) but we should also mention Kodi. Kodi is great if your use case is local only as automated media transcoding for the target device isn't something that this software does. But, for me, Plex is still the best overall in this category. It has the slickest UI and the most features. Despite this, the progress being made by Emby and Jellyfin recently is very impressive and these are both projects to watch closely.
- cjdell 6y agoAre there any decent alternatives to Plex that work with smart TVs? The only reason I'm still using Plex is because my TV has a client for it in its app store (as do most TVs).
- mStreamTeam 6y agoEnby is a good alternative
- morsch 6y agoI mean I ask for alternatives in another comment, because they are not perfect, but Gerbera and miniDLNA do work. My LG TV supports DLNA natively, no app needed, it's just another source, like HDMI3.
- oarsinsync 6y agoJellyfin has some SmartTV native apps. Or rather than making your panel dependent on some already-out-of-date-when-shipped embedded computing hardware, attach an external embedded computing device to the HDMI port (e.g. roku, firetv, appletv, shield, etc). and liberate your app experience to a more powerful device. A Fire TV Lite (2020) starts at $30.
- saberdancer 6y agoWould this mean a new remote? I've already got two (TV and STB), I'd prefer to have only one.
- gravypod 6y agoIf your TV supports HDMI-CEC then most TV boxes will control both the TV audio and power with a single remote.
- oarsinsync 6y agoAnd most TV remotes will be able to control the third party box too, assuming it's not developed by total control-freaks beyond that of even a popular controlling fruit company - my fruitTV comes with the world's worst remote, but at least I can use my TV's remote to control the fruitTV too.
- crisdux 6y agoThe guide briefly mentions Unraid, which I'm glad to see. But I understand it doesn't fit the criteria since it's not free. IMO it's worth every penny for those of us who want an experience without a lot of this sysadmin(for lack of a better term) stuff. Unraid has been the perfect home/media server experience for me.
- thefunnyman 6y agoI’m curious if you’ve tried TrueNAS (was previously called FreeNAS). It offers a pretty streamlined GUI for the common stuff and is free and open source.
- tomnipotent 6y agoUnraid is fantastic, well worth the money. Believe it's only $60 for up to 6 drives, and it's a one-time charge ($130 for unlimited). More than paid for itself considering how much time it saved me, and the "app store" (community apps) makes it dead simple to install additional services. Alternatively, you can accomplish most of the same with OpenMediaVault just with less polish.
- matheusmoreira 6y agoWhat's a good way to expand storage capacity? File systems like ZFS have software RAID which require all drives to bought up front. In order to add more capacity, the whole array must be more or less rebuilt from scratch: https://raid.wiki.kernel.org/index.php/Growing#Expanding_existing_partitions https://raid.wiki.kernel.org/index.php/Growing#Expanding_exi... Ceph gets it right but is too heavy weight for home use. Btrfs can add new drives to an heterogeneous pool and rebalance data but it still has problems with the parity implementation. There's gotta be a way to do this...
- craftkiller 6y agoWith ZFS you have two (soon to be three) options for expanding without buying the drives upfront: 1. Add more vdevs. For example, you can start with a pair of drives in a mirror. Then when you need more space, you can add another pair of drives in a mirror and add that mirror to your pool. This way lets you smoothly increase your available space over time but you do end up with half your drives being parity while still potentially suffering a data loss if two drives in a mirror break at the same time. 2. Replace all of your drives with larger drives (one at a time so the pool can resilver the data onto the drive). This is nice because you can do it as your old drives fail, but the new space won't be available until all drives have been replaced. 3. There is a feature under development for raidz expansion. (Raidz is like raid5/6). The work on the alpha is up at: https://github.com/openzfs/zfs/pull/8853 https://github.com/openzfs/zfs/pull/8853
- matheusmoreira 6y agoOption 3 seems to be exactly what I had in mind! When it's stable I suppose we might as well establish ZFS as the perfect file system.
- bane 6y agoIn addition to plex serving a bunch of video/music media, my home media server also serves: - Old Videos Games via shared folders to local setups of retroarch via Steamlink to my TV. I have literally thousands of retro games available from Atari VCS to PS2 I can play at a moment's notice. Using playnite I've also pulled together all the games from Steam, Gog and Epic into one place which all streams relatively well to my TV via Steamlink. - Books, Comic books, Papers, and Magazines. I use ubooquity over calibre since it just fits my style and needs better. I have almost 100,000 pieces of readable media organized and available. - Photos, we travel a lot and I like photography. So I have hundreds of thousands of photos also served up via plex. I use two computers to do this. One is a cheap file/media server that's running plex and ubooquity. It's attached to two Mediasonic 4-bay probox serving up somewhere around 70TB of raw storage. The other is a higher-end daily-use computer with a decent GPU that can push the steamlink games and emulate old games with filters really well. It has 32GB of RAM but only around 4.5TB of storage -- which is fine since I use the file serve for most everything. I should probably consolidate both machines down to one higher-end system and offload my desktop activities to a lower-end system but this setup is more something that's grown organically over time and wasn't really "designed". However, the end effect is, I can plop in front of my TV, and choose from a virtually unlimited collection of media. And when I want to read something, I'm exclusively tablet now on the couch or in bed, and have virtually unlimited amount of reading material available as well. I'll watch, play, and read something pretty much every day, so this setup has proven itself immensely. It's also allowed me to eliminate rooms full of media, game systems, and other The only remaining hangup that I'm not happy about is how to best handle audiobooks. Right now I shove them into plex as another audio library, but it's kind of a mess and plex thinks they're all music or something. Tbh, I don't really like how plex serves up audio anyways. I also love it if plex just supported ebooks in the way ubooquity does, then I could unify my servers and also more easily serve reading material outside my home network. The last remaining media I really want to be able to serve up in someway without converting them all are old chiptunes, amiga mods and other demoscene tracker music. I have a huge collection but haven't yet found a good way to serve them up in a way I like and have them accessible in the ways I have my other media available.