I made a video about copyparty, the selfhosted fileserver I’ve been making for the past 5 years.

The main focus of the video is the features, but it also touches upon configuration. Was hoping it would be easier to follow than the readme on github… not sure how well that went, but hey :D

This video is also available to watch on the copyparty demo server, as a high-quality AV1 file and a lower-quality h264.

  • muusemuuse@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    2 months ago

    You made this on your phone on the bus ride to and from work.

    I cleaned the cat box yesterday and considered that an accomplishment.

    Fuck.

  • filcuk@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    This is insane. I think I’d use ten different applications and still not cover these features. And I can host this. Using a single python file.

  • chellomere@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 months ago

    Hey fellow scener, cool project!

    Just a few thoughts/questions:

    • BTRFS and ZFS support real deduplication via copy on write, and would eliminate all current disadvantages of symlink and hardlink deduplication. It just works.
    • Why have it be one huge python source file? This is a serious code smell imo, and something you really should avoid doing as this can be a major maintenance burden.
    • tripflag@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      BTRFS and ZFS support real deduplication via copy on write, and would eliminate all current disadvantages of symlink and hardlink deduplication. It just works.

      yeah that’s a good point, I’ll add an option to take advantage of this if you know you’re running on a filesystem where that works as intended.

      Why have it be one huge python source file?

      oh don’t worry, it’s all separate files during development – there’s a build-stage which bundles everything up into a single file for distribution. But thanks for the concern :D

      • chellomere@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        Ah, so you have compiled it into one file? Didn’t know that was possible for python, what tool do you use for this?

        • tripflag@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          sooo this is one of the things that started with someone saying “wouldn’t it be funny if…”

          if you open copyparty-sfx.py in a text editor, you’ll see how – but please make sure to use an editor which is able to handle about 600 KiB of comments which contain invalid utf8 / binary garbage 😁

          I ended up rolling my own packer since I wanted optimal encoding efficiency, and everything I could find would do stuff like base85 or ucs2 tricks, but it turns out python is perfectly happy with binary garbage in comments if you declare that the file is latin-1 so it realizes all hope is lost :D

          the only drawback of the sfx.py is that it needs to extract to $TEMP before running, so that’s the slight advantage of the zipapp (the .pyz alternative), but that suffers from some performance reduction in return, and is more hermetic (doesn’t let you swap out the bundled dependencies with fresh versions as easily if necessary)

  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    Clearly a labour of love 👍

    Maybe support for some music streaming apps (subsonic?) would be cool?

    • tripflag@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      That’s a neat idea – I’ve heard that a lot of stuff uses the subsonic API under the hood, so I’ll see what it would take to become compatible with that. At first glance it looks like I’d have to mine and index way more information about audio files, but could still be doable :>

  • KiwiTB@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Put out some in-depth docker instructions and this will be common use in a month. Good work.

    • Womble@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      Yup, I tried to run the docker image with the suggested docker command and it errored out for lack of a config file (though it did offer a fix in the logs for mounting the current directory as read/write)

  • shiftymccool@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Ho… Ly… Shit… This is great! The UI is a bit confusing at first but doesn’t take long to get what’s going on. I might even be disappointed with a UI revamp 😁 I can’t believe how much functionality this has. It’s already replacing some processes I have for mounting drives and backing up files. Maybe I missed something, but my only complaint would be the lack of an automatic one-way folder sync in the Party UP! app.

    I’m blown away, great job!

  • Palle@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    2 months ago

    Is there a way to help translate the UI.

    I would like to help translate it into Danish.

  • Leon@pawb.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    I bumped into copyparty the other month when looking for a software that could let me transfer files to a friend with the ability to pause/resume. Didn’t bother with it, tried another software instead. Never really got it to work so I gave up on it.

    Bumped into the YouTube video today, decided to give copyparty a shot, damn sir you’ve written a fine piece of software. It’s so easy to get up and configure. The UI is a bit janky, but charming at the same time. Thanks for all the hard work!

  • Kay Ohtie@pawb.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Great job on something like this! I’ll probably give it a whirl soon, I like Nextcloud but find it clunky sometimes because it’s often a bit more than I need. Maybe breaking it up into Immich + this would help! Thank you for sharing your project!

    One thing to note, your comparison against Nextcloud has a partially-incorrect point regarding file upload max size. The client does upload chunking, so is unaffected by the Cloudflare issue as well, but I believe the web client is still affected, just not the apps. https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#adjust-chunk-size-on-nextcloud-side

    I suspect a few others may be as well, but I’m only familiar with the Nextcloud one because that’s what I’ve been running, and discovered in making sure I could still upload video files recorded while out and about.

    Also love that it looks like a simpler install!

  • danhab99@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Oh my gawd what a README!! I’m on my phone and I was trying to scroll back to the top of it from the bottom and I just kept on scrolling… Holy shit I’m going to put this on my kanban board give it proper attention

  • TedZanzibar@feddit.uk
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    This is very impressive and I’m highly likely to give it a whirl. My question is, though: would it be something that my very non-tech savvy wife could use?

    Eg. I’m thinking setup the app on her phone with a default location and when she asks me for a file I can just tell her that I’ve “put it in the app”, and she’ll be able to easily retrieve it. Also same thing but vice versa, though the video seems to cover that via the Android share menu…

    Again, super impressive. Good job!

  • sun@slrpnk.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    The video are amazing. It’s entertaining and explains everything so it’s easily understood.