pooling media libraries - like distributed storage

I run a full media server, as well do a few friends. Now we had the idea to share our media libraries. In a first quick attempt we, mounted each other’s library folder via an smb share and imported those in jellyfin (all servers connected by VPN) Works quite well, but is kind of cumbersome the more people get in. I had the following idea: distributed storage, not as in redundancy, but more like mergerfs. Each “node” allocates a certain amount of storage, say node A, B and C provide 1TB each, these get fused into a singe mount that shows up as 3TB volume. If one node goes offline, the volume will only be 2TB and all files on the offline node will of course be unavailable.

Did a bit of research and found stuff like ceph,.glusterfs or seeweedfs, all of which I guess have a lot more functionality and thus are quite complicated and a little over my head. Do you do something like that or have any good ideas how to do that easily?

uzay,

Why do you use SMB instead of just connecting to the different jellyfin servers directly via VPN?

suntzu,

One big shared media volume has multiple benefits, each server just have to deal with their own user management, no server switching or remembering if that one movie is of this or that Server…

outcide,
@outcide@lemmy.world avatar

Ceph, GlusterFS, and I suspect SeaweedFS (but I haven’t used it) expect high speed, low latency connections to their peers. So they won’t work well over the internet.

There’s some info floating around about using IPFS as the backend for Jellyfin, which in theory should allow you to share media between friends, but I haven’t tried it.

www.youtube.com/watch?v=PHujBhq4J9A

rhymepurple,

Could you use symlinks? Not sure what the “gotchas” or downside to this approach is though.

DaPorkchop_,

Downside: it’s entirety manual and not scalable whatsoever.

rhymepurple,

Could you explain further? Wouldn’t this just need to be setup once per server that OP wants to connect?

planish, (edited )

I think you can keep doing the SMB shares and use an overlay filesystem on top of those to basically stack them on top of each other, so that server1/dir1/file1.txt and server2/dir1/file2.txt and server3/dir1/file3.txt all show up in the same folder. I’m not sure how happy that is when one of the servers just isn’t there though.

Other than that you probably need some kind of fancy FUSE application to fake a filesystem that works the way you want. Maybe some kind of FUES-over-Git-Annex system exists that could do it already?

I wouldn’t really recommend IPFS for this. It’s tough to get it to actually fetch the blocks promptly for files unless you manually convince it to connect to the machine that has them. It doesn’t really solve the shared-drive problem as far as I know (you’d have like several IPNS paths to juggle for the different libraries, and you’d have to have a way to update them when new files were added). Also it won’t do any encryption or privacy: anyone who has seen the same file that you have, and has the IPFS hash of it, will be able to convince you to distribute the file to them (whether you have a license to do so or not).

scrubbles,
@scrubbles@poptalk.scrubbles.tech avatar

Seems to me the easiest solution would be each host a replica. Now that you can get 8TB for something like a hundred bucks this would be both faster and more redundant if one would fail

zerodawn,

Likely not the solution you’re looking for but a buddy and i link a folder via syncthing and anything added to one side shows up on the other.

suntzu,

I use synching too, but it’s not what I’m looking for here.

MSgtRedFox,
@MSgtRedFox@infosec.pub avatar

What’s the cumbersome part?

VPN? Mesh overlay VPN like tailscale/nebula mesh can do easy node add.

IPFS nodes might do the trick as mentioned.

suntzu,

On each node, map all the other nodes as smb, and configure all in jellyfin.

It would be nicer to have one single mount.

MSgtRedFox,
@MSgtRedFox@infosec.pub avatar

What about using symlinks?

You creat a directory /media. Mount shares there. Your media application scans /media and just finds media files.

Still sucks because you have to mount each repo, /media/person1/movies, etc

But you don’t have to reconfigure media app anymore.

I don’t know what a pooled remote file system like what you’re wanting.

Cooljimy84,
@Cooljimy84@lemmy.world avatar

Another one to have a search for is IPFS.

kpw,

All files stored on IPFS are public. It's also incredibly slow and inefficient. You would be better off using BitTorrent.

Vendetta9076,
@Vendetta9076@sh.itjust.works avatar

I use Plex instead of jellyfin, but there’s the ability to just add a friends library and it pulls in without mounting anything. I thought Jellydin had that as well?

lemann,

I run Plex too, and indeed library sharing is built right in and ridiculously easy to set up.

I think OP is already doing things the best way possible in Jellyfin by mounting others’ servers remotely over VPN

originalucifer,
@originalucifer@moist.catsweat.com avatar

plex uses a centralized service for this kinda of nonsense. most of us are using standalone server products.

this use case calls for either centralized storage (s3 bucket) or access mechanism(all them vpns) to distributed channels (ala plex)... but friends dont let friends use plex.

im curious about ipfs as distributed file systems sound like a new kink i should have

density,
density avatar

tell me why i shouldn't use plex as I'm always tempted by it whenever these threads come up and everyone who uses it is so happy.

But free/libre is so much more delicious.

But don't let the perfect be the enemy of the good.

AtariDump,

Does Plex work for you? Keep using it.

Jellyfin is nice but has a long way to go to replicate the features of Plex [like PlexAmp and Sonic Analysis] and features that are “Plex adjacent” [like Tautulli].

Inui, (edited )

deleted_by_author

  • Loading...
  • AtariDump, (edited )

    Does Jellyfin have:

    A dedicated music app?
    Music filtering/smart playlists? Sonic analysis?
    Good 4k/x265 performance?
    Has a third party (or built in) utility that shows me streaming usage per person?
    Allows me to limit remote users to streaming from a single IP address at a time?
    Let’s me watch something together with another remote user?
    Has an app for most any device (like Plex or Emby) that does NOT require sideloading?
    Has built in native DVR steaming/recording support?
    Two factor authentication?

    When it does, I’ll switch.

    HotChickenFeet,

    I know you want a single ‘yes’ for the whole package which is fair, and Jellyfin doesn’t offer all of these things, but I’ll at least mention:

    • A dedicated music app?

      • Its FOSS and there are several excellent apps in my experience worth looking into. I absolutely love feishin (for jellyfin or navidrome). On android I’ve liked finamp and Gelli.
    • Music filtering/smart playlists?

      • smart playlists - Not that I know of
    • Sonic analysis?

      • not that I know of
    • Good 4k/x265 performance?

    • I actually am not sure what issues you have here. Are you talking about transcoding it? I most often use native play and so long as the device receiving x265 can handle it I’ve never had issues

    • Has a third party (or built in) utility that shows me streaming usage per person?

    • Allows me to limit remote users to streaming from a single IP address at a time?

      • single IP, I am not sure. But you can limit the number of simultaneous connections they can have (e.g. only one stream, etc). I realize that doesn’t have the same exact result in edge cases.
    • Let’s me watch something together with another remote user?

      • Yes. Syncplay exists on it. I have had good experiences with both users in browsers app. But on webos TV app it doesn’t work for me.
    • Has an app for most any device (like Plex or Emby) that does NOT require sideloading?

      • Pretty sure they have webos/android TV apps, android, iOS, a desktop player, web interface. I have first hand experience with android, web interface, Linux/windows, webos. There is a roku app, but I don’t knknow if it requires sideloading.
    • Has built in native DVR steaming/recording support? Jellyfin DVR capabilities exist, but I can’t speak to them.

    • Two factor authentication? Unfortunately, not. I think there are hack ways to pass it through other validators/credentials, but I agree it needs native support of some kind.

    For the music gripes - honestly, navidrome IMO. If folks are happy with experience with Plex for everything, I am happy for them, but libraries specialized for media types can have big benefits and focused features.

    • Video: Jellyfin (or Plex)
    • Music: Navidrome
    • Audiobooks: audiobookshelf
    • Podcasts: still searching. I partially use Audiobookshelf here but don’t love it for podcasts.
    AtariDump,

    I’m looking for the truth, not just a blanket “yes”.

    1. I’ve really become into the Plex music app over the iOS music app; it does so much more (especially with the sonic analysis)
    2. Not transcoding x265; solid x265 playback without transcoding.
    3. Will have to look at Jellystat and see how it compares to Tautulli
    4. 2FA is pretty important, though I know that’s offset by the fact that you can authenticate locally.
    HotChickenFeet,
    1. Nothing like a sonic analysis that I know of jellyfin.
    2. Never had issues with x265 other than for devices that don’t have the computation power to decompress. Direct play to my TV with 4K streams have always been excellent.
    3. It could heavily limit apps, but you could use authentik/authelia to enable access to jellyfin, so external access requires MFA. Internally apps could access the local IP normally without authentik. But bouncing off authentik first would likely prevent most (all?) Apps from working externally - you’d likely only have the webui externally. Can’t think of a solid solution until Jellyfin natively supports 2FA
    AtariDump,
    1. Looked at the setup directions; is it not where as simple/easy as Plex’s 2FA.
    HotChickenFeet,

    I dia just find this: …jellyfin.org/t-jellyfin-authentik-duo-2fa-soluti…

    Which claims app compatible 2FA via authentik

    AtariDump,

    Yeah, while it is technically 2FA it’s not nearly as easy as it is setting it up for Plex.

    HotChickenFeet,

    Agreed.

    originalucifer,
    @originalucifer@moist.catsweat.com avatar

    last time i checked plex required an account on their service. thats a big red flag for people who host their own shit.

    suntzu,

    This

    SheeEttin,

    Give it a try. You don’t have to do the digital equivalent of living off the grid. I self-host a bunch of stuff but I still use a bunch of Google services, because it makes more sense for me.

    I personally used Plex for a long time, but I eventually gave it up after having to reset my library one too many times. That means all my watched/unwatched data gets wiped, as well as any custom covers I’ve set. It also never really played well with Chromecast. I’ve been using Jellyfin for a while and it’s less polished, but it’s good enough for me.

    cm0002,

    but friends dont let friends use plex.

    I would love to get rid of Plex, but jellyfin failed the spouse test last summer and it never really liked my GDrive mount

    Plus, Plex clients are everywhere, so it’s all but guaranteed that whoever I decide to onboard is going to have something compatible. I’ve even had early smart TV’s from like 2013 with that weird Yahoo app store thing that had a Plex app that still worked even when the Netflix app didn’t lolol

    Vendetta9076,
    @Vendetta9076@sh.itjust.works avatar

    Funnily enough, my wife is the only person who likes jellyfin. It works perfectly for her. Everyone else? I’ve never had it work even once. And I have no damn idea why.

    Vendetta9076,
    @Vendetta9076@sh.itjust.works avatar

    Can you not just use a reverse proxy for your jeyllfin server and add multiple servers to the same client?

    originalucifer,
    @originalucifer@moist.catsweat.com avatar

    jellyfin addresses files locally. i dont know how you could stitch together remote machines

    Vendetta9076,
    @Vendetta9076@sh.itjust.works avatar

    I’m surprised the client doesn’t support switching between servers. When I had jellyfin running I exposed it through traefik to allow external playback. Figure it would make sense that you could just show multiple servers in the UI. Add several reverse proxied addresses and boom.

    originalucifer,
    @originalucifer@moist.catsweat.com avatar

    yeah, that might work for what op is tryin to do, maybe, assuming jellyfin fits his client needs

    theRealBassist,

    You definitely can. Idk why the commentor above you thinks its local only?

    I have two severs I swap between exactly like you describe.

    Vendetta9076,
    @Vendetta9076@sh.itjust.works avatar

    Thats what I thought.

    suntzu,

    Then I have multiple jellyfin servers in the app… That’s not what I want, I want a single mount where all the media of all nodes is accessible

  • All
  • Subscribed
  • Moderated
  • Favorites
  • selfhosted@lemmy.world
  • tacticalgear
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • khanakhh
  • Youngstown
  • ngwrru68w68
  • slotface
  • everett
  • rosin
  • thenastyranch
  • kavyap
  • GTA5RPClips
  • cisconetworking
  • JUstTest
  • normalnudes
  • osvaldo12
  • ethstaker
  • mdbf
  • modclub
  • Durango
  • tester
  • provamag3
  • cubers
  • Leos
  • anitta
  • megavids
  • lostlight
  • All magazines