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?

  • Vendetta9076@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    6 months ago

    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?

    • originalucifer@moist.catsweat.com
      link
      fedilink
      arrow-up
      7
      arrow-down
      3
      ·
      6 months ago

      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

    • 𝒍𝒆𝒎𝒂𝒏𝒏@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      6 months ago

      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

  • zerodawn@leaf.dance
    link
    fedilink
    English
    arrow-up
    4
    ·
    6 months ago

    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.

  • Outcide@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 months ago

    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.

    https://www.youtube.com/watch?v=PHujBhq4J9A

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    6 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    Git Popular version control system, primarily for code
    IP Internet Protocol
    Plex Brand of media server package
    VPN Virtual Private Network

    4 acronyms in this thread; the most compressed thread commented on today has 6 acronyms.

    [Thread #399 for this sub, first seen 4th Jan 2024, 03:05] [FAQ] [Full list] [Contact] [Source code]

  • Scrubbles@poptalk.scrubbles.tech
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    6 months ago

    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

  • planish@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    6 months ago

    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).

  • uzay@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 months ago

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

    • suntzu@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      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…

  • RedFox@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 months ago

    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@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 months ago

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

      It would be nicer to have one single mount.

      • RedFox@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 months ago

        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.