introducing copyparty, the FOSS file server

a year ago by tripflag to c/selfhosted

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 66 points a year 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.

path: 0 18456566, hotness: undefined, score: 66, children: 1
markstos 20 points a year ago

Congrats on the cat box cleaning!

path: 0 18456566 18472024, hotness: undefined, score: 20, children: 0
johntash 48 points a year ago

Your readme looks super in depth, thanks for that! I haven't watched the video yet but will later.

I didn't see it mentioned from a quick glance, but is either sftp or ftps supported?

path: 0 18449500, hotness: undefined, score: 48, children: 3
tripflag 40 points a year ago

SFTP is not currently on the roadmap, but it's not entirely implausible.

FTPS is supported, but it requires an optional dependency to be installed (pyopenssl), so it's not available in the Windows EXE. And I just realized that the dependency is currently not present inside the docker images either, so I'll get that fixed right away.

path: 0 18449500 18449593, hotness: undefined, score: 40, children: 2
xnx 10 points a year ago

Screenshots of the ui at the top of the readme would be nice

path: 0 18449500 18449593 18455905, hotness: undefined, score: 10, children: 0
fmstrat 7 points a year ago path: 0 18449500 18449593 18450879, hotness: undefined, score: 7, children: 0
poVoq 36 points a year ago

Clearly a labour of love ๐Ÿ‘

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

path: 0 18449449, hotness: undefined, score: 36, children: 2
tripflag 19 points a year 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 :>

path: 0 18449449 18449523, hotness: undefined, score: 19, children: 1
Serinus 1 point a year ago

Looking at and/or incorporating Navidrome might be helpful.

path: 0 18449449 18449523 18451289, hotness: undefined, score: 1, children: 0
chellomere 28 points a year 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.
path: 0 18452302, hotness: undefined, score: 28, children: 9
tripflag 29 points a year 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

path: 0 18452302 18453256, hotness: undefined, score: 29, children: 6
chellomere 5 points a year 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?

path: 0 18452302 18453256 18458502, hotness: undefined, score: 5, children: 3
tripflag 16 points a year 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)

path: 0 18452302 18453256 18458502 18458717, hotness: undefined, score: 16, children: 2
chellomere 2 points a year ago

Ah, reminds me of the old self-extracting gzip executable trick. I used that once a very long time ago to make a 4k linux intro, before I realized to be competitive I should switch to windows to be able to use Crinkler, which is superior even though the decompressor is part of the executable.

path: 0 18452302 18453256 18458502 18458717 18466370, hotness: undefined, score: 2, children: 0
tatterdemalion 1 point a year ago path: 0 18452302 18453256 18458502 18458717 18479283, hotness: undefined, score: 1, children: 0
RecallMadness 1 point a year ago

What do you use to bundle into one file?

path: 0 18452302 18453256 18462748, hotness: undefined, score: 1, children: 1
tripflag 3 points a year ago

copyparty-sfx.py is a custom packer (see this reply) created by make-sfx.sh, and copyparty.pyz is a standard zipapp, created by make-pyz.sh. The zipapp has more disadvantages than the sfx.py, so that's the default/recommended build.

path: 0 18452302 18453256 18462748 18465427, hotness: undefined, score: 3, children: 0
suzune 3 points a year ago

Just a remark from someone who runs ZFS since the beginning. Many people don't like the deduplication feature because of its memory footprint.

It's also nice to have this feature without relying on a certain filesystem.

path: 0 18452302 18460713, hotness: undefined, score: 3, children: 1
chellomere 2 points a year ago

I assume you mean automatic deduplication? I haven't used ZFS, but BTRFS does not have that. There are a variety of ways to perform deduplication, I have duperemove scheduled to run regularly.

If ZFS is still capable of being instructed to perform deduplication when automatic deduplication is turned off, which it really should be able to do, then this should work even with it turned off.

path: 0 18452302 18460713 18475465, hotness: undefined, score: 2, children: 0
perishthethought 26 points a year ago

The fact you mention security features, without ever saying it's 'super secure' tells me you know a lot about what you're doing. I'm so sick of apps like this that start with "most secure app on the net" but you know they're delusional. Thank you, going to check this out.

path: 0 18458647, hotness: undefined, score: 26, children: 1
tripflag 6 points a year ago

so uhh, sorry for the late response to this -- was going to reply much earlier, but then suddenly it became more timely than ever...

the good news is, I'm fairly confident in how it handles the filesystem and permissions, preventing unauthorized access to files.

but the part I'm a bit less sure about is sanitizing user data; the kind of vulnerabilities where someone uploads a malicious file and bad stuff happens if you then open that file in a certain way, or someone sends you a malicious link and trick you into clicking it -- in other words, the kind of vulnerabilities which require the attacker to have a certain level of access already, or that requires tricking you into doing something.

...and with version 1.18.5 released just now, we got a prime example of exactly one of those. Really unfortunate timing, but it's a blessing to have so many new and curious eyes on it to spot these sooner rather than later. It is what it is.

path: 0 18458647 18477039, hotness: undefined, score: 6, children: 0
KiwiTB 22 points a year ago

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

path: 0 18472849, hotness: undefined, score: 22, children: 4
Dezorian 5 points a year ago

Agreed.

path: 0 18472849 18473095, hotness: undefined, score: 5, children: 0
Womble 5 points a year 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)

path: 0 18472849 18475196, hotness: undefined, score: 5, children: 0
TehNomad 3 points a year ago

The docker compose file worked great for me.

path: 0 18472849 18532446, hotness: undefined, score: 3, children: 1
KiwiTB 2 points a year ago

They may have patched it. I'll check it out thanks.

path: 0 18472849 18532446 18534839, hotness: undefined, score: 2, children: 0
Pall 18 points a year ago

Is there a way to help translate the UI.

I would like to help translate it into Danish.

path: 0 18468319, hotness: undefined, score: 18, children: 2
cows_are_underrated 13 points a year ago

Would also be willing to help translate the UI.

path: 0 18468319 18469873, hotness: undefined, score: 13, children: 0
awake 1 point 5 months ago

Did you hear anything about translations? Iโ€™d also be down to help translate.

path: 0 18468319 22796009, hotness: undefined, score: 1, children: 0
pwalker 17 points a year ago

you even mention ladybird as browser, nice ๐Ÿ˜Ž

path: 0 18454212, hotness: undefined, score: 17, children: 3
tripflag 21 points a year ago

it's such an impressive project! Amazing what they've accomplished in so little time, and so important too -- we need as many options as we can get.

path: 0 18454212 18454613, hotness: undefined, score: 21, children: 2
pwalker 6 points a year ago

I agree but it's still in an early development state. Not really usable for everyday work let alone most people never heard about it ๐Ÿ˜… But yeah still cool to mention it under "modern" browsers. I wish them good luck with the first alpha next year. I hope it'll be successful.

path: 0 18454212 18454613 18457355, hotness: undefined, score: 6, children: 1
tiramichu 3 points a year ago

Can claim "It even works with browsers from the future!"

path: 0 18454212 18454613 18457355 18468051, hotness: undefined, score: 3, children: 0
buddascrayon 16 points a year ago

Holy shit this is so unbelievably full featured it's not even funny. This is going to rattle some big names. I wonder how long till they try to shut it down because it's better than anything commercially available.

path: 0 18468405, hotness: undefined, score: 16, children: 1
tiramichu 15 points a year ago

I haven't even tried it yet, but just from the video you can tell it's going to be insanely good. I'm so impressed.

It's the first bit of software I've seen in a long time where I took one look and immediately thought "Fuck me, I need that!"

I use Unraid for my NAS server and just on the off-chance I checked the Unraid community 'app store' and someone's already created a Docker definition for it, published just today! The hype is real

I'll be giving this a shot

path: 0 18468405 18469025, hotness: undefined, score: 15, children: 0
2xsaiko 16 points a year ago

Oh my god, this seems really good and closer to what I want than anything yet. Been looking for something to replace Nextcloud and found nothing good so I might take a look at this.

path: 0 18450630, hotness: undefined, score: 16, children: 7
tux0r 6 points a year ago

I replaced nextCloudโ€™s file sharing with Syncthing just recently, as I found myself only synchronising between two computers (one desktop, one smartphone) anyway. :-)

path: 0 18450630 18451223, hotness: undefined, score: 6, children: 1
2xsaiko 3 points a year ago

That wonโ€™t work for me since I have multiple people using this Nextcloud instance, and I also use it to publicly share files. I also have a big network share (currently 5 TB of data) that I would like to better integrate somehow (right now itโ€™s available from Nextcloud read-only in essentially โ€œanonymous modeโ€ with no access to private user files).

path: 0 18450630 18451223 18466392, hotness: undefined, score: 3, children: 0
gedaliyah 5 points a year ago

Just curious, why did you replace nextcloud? I'm looking into transitioning from my current file server, and I've mostly heard only good things and not NextCloud.

path: 0 18450630 18451490, hotness: undefined, score: 5, children: 4
2xsaiko 9 points a year ago

I want something with a permission model that works the same when accessed over a network share (SMB, ideally NFS) and access over a web interface. Ideally it would have a Mac File Provider sync client and whatever the Windows equivalent is called as well.

Nextcloud is fine but itโ€™s not that.

path: 0 18450630 18451490 18454578, hotness: undefined, score: 9, children: 0
RheumatoidArthritis 6 points a year ago

Nextcloud is like Windows 95, it works great when you install it then it just keeps getting slower as you fill it with content

path: 0 18450630 18451490 18453668, hotness: undefined, score: 6, children: 2
tux0r 7 points a year ago

Also, itโ€™s like Wordpress, growing new slow features youโ€™ll never need with each new release.

path: 0 18450630 18451490 18453668 18454875, hotness: undefined, score: 7, children: 1
Tibi 2 points a year ago

They recently recieved a "Blauer Engel" certificate for nextcloud-server. Iirc that seal requires the user to be able to choose what he wants. So new features are OK but they have to be optional. That certificate is handed out by a german government Institution. And very recently they started handing it out to software too, with nextcloud beeing the first BIG reciever.

path: 0 18450630 18451490 18453668 18454875 18469975, hotness: undefined, score: 2, children: 0
Dojan 14 points a year 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!

path: 0 18475422, hotness: undefined, score: 14, children: 1
enthusiasm_headquarters 4 points a year ago

"It's janky. It's charming. It works. It's Copyparty." ยฎ

path: 0 18475422 18476327, hotness: undefined, score: 4, children: 0
utopiah 12 points a year ago

Thanks for making the video but also for providing non Youtube link. Maybe there is a PeerTube server that would enjoy hosting it.

path: 0 18470105, hotness: undefined, score: 12, children: 0
atomicbocks 10 points a year ago

This looks great but I really wish it had SFTP.

path: 0 18453968, hotness: undefined, score: 10, children: 1
tripflag 11 points a year ago

thanks for the vote, I hear ya :>

path: 0 18453968 18454690, hotness: undefined, score: 11, children: 0
ayyy 10 points a year ago

Everyone loves CP. Tell all your friends about CP.

path: 0 18464773, hotness: undefined, score: 10, children: 5
ouRKaoS 26 points a year ago

Really?

path: 0 18464773 18465641, hotness: undefined, score: 26, children: 0
Mubelotix 5 points a year ago

Every single time I have seen one of your comments, you have disappointed me

path: 0 18464773 18471868, hotness: undefined, score: 5, children: 0
sxan 4 points a year ago

Are China Parties like Tupperware Parties, where friends get together and one shills a pyramid scheme? That's what CP is, right?

path: 0 18464773 18467906, hotness: undefined, score: 4, children: 1
gandalf_der_12te 3 points a year ago

no, CP is copypasta, the thing you put into your food boxes.

path: 0 18464773 18467906 18476202, hotness: undefined, score: 3, children: 0
vale 2 points a year ago

path: 0 18464773 18495173, hotness: undefined, score: 2, children: 0
jlh 10 points a year ago

I would probably remove python 2 support, it was end of life when the project was started.

path: 0 18450270, hotness: undefined, score: 10, children: 3
tripflag 17 points a year ago

As long as it's not causing any issues or drawbacks for modern python versions (and it isn't), I don't see any reason to do that -- on the contrary, I know people are running copyparty on retro equipment, so I'd very much prefer to keep it for as long as possible :>

path: 0 18450270 18450469, hotness: undefined, score: 17, children: 1
tux0r 2 points a year ago

I donโ€™t think there is a Python 2 version for retro equipment (DOS?). ;-)

path: 0 18450270 18450469 18451199, hotness: undefined, score: 2, children: 0
Onomatopoeia 1 point a year ago

Just because something is EOL doesn't make it useless.

So long as it's known and managed, it's fine.

path: 0 18450270 18452234, hotness: undefined, score: 1, children: 0
Admax 10 points a year ago

I'm properly in awe at this project. Not only does it support a wide range of protocols and runs practically everywhere, but it can play audio, video, display images and has keyboard shortcut support ???

It's got everything I could think about and so much more.

I can't wait to try it out !

Thank you so much for your time and for making this open source.

path: 0 18451546, hotness: undefined, score: 10, children: 1
tripflag 6 points a year ago

Thanks a lot for the kind words! ready to answer questions if you hit any bumps :>

path: 0 18451546 18451701, hotness: undefined, score: 6, children: 0
HexesofVexes 9 points a year ago

Elderly raspberry pi B [โœ“]

Large portable drive gathering dust [โœ“]

Guess I'm setting up a locally hosted file server in the near future.

path: 0 18465190, hotness: undefined, score: 9, children: 0
shiftymccool 9 points a year 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!

path: 0 18476760, hotness: undefined, score: 9, children: 1
MysteriousSophon21 2 points a year ago

That "functional but charming" UI reminds me of audiobookshelf with the soundleaf app - same vibe where it dosn't look fancy but gets the job done better than most polished alternatives!

path: 0 18476760 18558690, hotness: undefined, score: 2, children: 0
RheumatoidArthritis 9 points a year ago

I have a question, and I want to emphasise thar this is not criticism but a request for dive into technicalities.

In the video you mentioned copyparty has an one-way sync tool. Is there a good reason why it's not two-way, or is this just something you weren't motivated to do?

path: 0 18464120, hotness: undefined, score: 9, children: 5
tripflag 18 points a year ago

No worries, good question :>

The problem with bidirectional filesync is that it's an absolutely massive can of worms, very easy to mess up, and the consequences of messing up are usually the worst kind (loss of data). There's an insane amount of edgecases to keep in mind, and you need to get every edgecase right every single time, otherwise you might wipe someone's vacation photos, or suddenly downgrade someone's keepass database to an older version... And stuff like syncing multiple devices to the same server makes it balloon further.

I've started becoming more confident in copyparty's filesystem-index database, but it's still just a hint/guideline, with the filesystem being the only source of truth -- it's still not something I'd trust with tracking sync-state against one or more clients.

The bigger guys who offer bidirectional sync (nextcloud, syncthing, etc.) have spent years perfecting their logic, so I'd like to leave this in their capable hands.

path: 0 18464120 18465489, hotness: undefined, score: 18, children: 4
null_dot 9 points a year ago

Sync is one of those things that seems like it should be trivial but is actually super complicated.

path: 0 18464120 18465489 18467239, hotness: undefined, score: 9, children: 0
RheumatoidArthritis 4 points a year ago

Thank you for your answer! Do you think copyparty would work together with Syncthing on the same backing directory, or would they compete for changes etc? Copyparty in this scenario would be for sharing content with friends and occasional remote upload

path: 0 18464120 18465489 18466017, hotness: undefined, score: 4, children: 2
tripflag 4 points a year ago

that should be totally fine, I think a lot of people are doing that :>

path: 0 18464120 18465489 18466017 18466216, hotness: undefined, score: 4, children: 1
RheumatoidArthritis 3 points a year ago

Great software!

path: 0 18464120 18465489 18466017 18466216 18468083, hotness: undefined, score: 3, children: 0
danhab99 9 points a year 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

path: 0 18462332, hotness: undefined, score: 9, children: 1
cwista 7 points a year ago

At this rate might be faster to read code than a read me. Or convert to a wiki style if this much details are really needed.

path: 0 18462332 18463289, hotness: undefined, score: 7, children: 0
jhoward 8 points a year ago

Well done! This is exactly what I've been looking for! And it's fun to use and has an aesthetic that reminds me of browsing ftp servers back in the day. And these themes?! I love the whimsy mixed with actual usability.

And its a damn good file server so far: fast, easy to use, makes reasonable security choices, and accessible in the ways I want (rclone mount)

path: 0 18472539, hotness: undefined, score: 8, children: 0
craftrabbit 8 points a year ago

Don't believe it. This is easily too good to be true.

path: 0 18466379, hotness: undefined, score: 8, children: 0
tux0r 8 points a year ago

Can we have Gopher support?

path: 0 18450506, hotness: undefined, score: 8, children: 2
tripflag 6 points a year ago

I was thinking of that!! But then I realized that even Firefox removed gopher support by now, so the joke was dead on arrival :P

path: 0 18450506 18450837, hotness: undefined, score: 6, children: 1
tux0r 7 points a year ago

Firefox isnโ€™t that great for FTP either. Gopher still exists :-) and Iโ€™d love to use it even more.

path: 0 18450506 18450837 18451172, hotness: undefined, score: 7, children: 0
uzay 8 points a year ago

Look cool! I think you should consider putting a screenshot of the UI somewhere near the top of the README

path: 0 18463226, hotness: undefined, score: 8, children: 1
tempest 1 point a year ago

There is a link to a live demo pretty close to the top.

path: 0 18463226 18471886, hotness: undefined, score: 1, children: 0
Pika 7 points a year ago

Alright, you bought me with this

Amazing presentation and nice that you have a demo!

path: 0 18454777, hotness: undefined, score: 7, children: 0
kayohtie 7 points a year 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/...

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!

path: 0 18454675, hotness: undefined, score: 7, children: 1
tripflag 5 points a year ago

Thanks for the correction; confirmed that Nextcloud now does chunked uploading (with the web-client too). Fixed :>

Good luck, and let me know if you hit any issues o/

path: 0 18454675 18455934, hotness: undefined, score: 5, children: 0
gusgalarnyk 7 points a year ago

Sometimes I feel so new to setting up my own digital ecosystem because I look at a thing and think "that's so cool" but struggle to imagine it at home. So could someone help me understand.

This would be a replacement for something like Google Drive or Proton Drive? The actions I would use this for would be:

  • sending files to friends
  • managing a collection of files like PDFs, music, ISO's that could be accessible by my friends (or just my household)

So I would spin this up on my NAS or my main PC and replace those services and accomplish those actions using this software?

Are there other services or actions I'm missing? Am I misunderstanding the premise entirely?

path: 0 18452471, hotness: undefined, score: 7, children: 4
muusemuuse 2 points a year ago

Oh yea, copyparty could do that. I might just do that too. My issue is more how do I grant them access to my network to get the thing tough? I currently use wireguard profiles and lock down where they can reach with rules and shit on a firewalla on a per account basis but thatโ€™s really complex and inelegant. It works and would working copypasta, but I kind of wish there was a simple webUI where I could define what a WireGuard user should be able to reach on my network with simple checkboxes by rules I have created over time. Probably wouldnโ€™t tie into firewalla nicely though it could be more likely with OPNsense.

Hmm. Surely someone must have thought of that already. It would make adopting things like copypasta much simpler and less risky.

path: 0 18452471 18456670, hotness: undefined, score: 2, children: 0
RheumatoidArthritis 2 points a year ago

I think Copyparty would be great for that purpose. The only thing you're missing is a way to expose it to the internet, such as a public IP or some tunnel

path: 0 18452471 18453638, hotness: undefined, score: 2, children: 2
tripflag 11 points a year ago

Yep! Depending on what your home connection looks like, you have a few options:

if you are lucky enough to have your own private IP-address and are able to open ports, then you're almost done already -- you can put copyparty on some port (or keep the default 3923), and then anyone could connect to it by going to https://your.ip.address:3923/

(with this approach, you will want to create your own HTTPS certificate so the traffic is properly encrypted -- the best option here is to get a domain and get a certificate for the domain)

however, if you are behind CGNAT, meaning your internet provider has given you a shared IP-address, then people cannot connect directly to your home-PC. One way around that issue is by setting up a machine somewhere on the internet which bridges the gap back home to your PC. Cloudflare offers this as service, and this is explained in the copyparty readme -- see the "at home" section for one way to do that.

if you are against using Cloudflare for idealistic reasons (they are becoming quite powerful since they run a whole lot of the internet), then you can set up a cheap VPS which serves the same purpose. That's my setup, and how you are accessing the copyparty demo server right now -- I have the cheapest VPS you can get from Hetzner. The VPS is running nginx, and it forwards the traffic to my homeserver through an SSH tunnel. I haven't documented this approach in the copyparty readme, but I have a feeling a lot of other people have :>

path: 0 18452471 18453638 18456198, hotness: undefined, score: 11, children: 1
garret 1 point a year ago

Please, it would be nice to document this VPS setup!

path: 0 18452471 18453638 18456198 18520167, hotness: undefined, score: 1, children: 0
sun 7 points a year ago

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

path: 0 18467365, hotness: undefined, score: 7, children: 0
_cryptagion 6 points a year ago

I've been using copyparty for months, and it's just been an absolute gem. and the fact there are even iOS shortcuts to upload things you stumble across while doomscrolling is just icing on top.

path: 0 18451799, hotness: undefined, score: 6, children: 0
TedZanzibar 5 points a year 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!

path: 0 18456794, hotness: undefined, score: 5, children: 2
tripflag 6 points a year ago

I have a hunch that the true answer, to be honest, is "no" -- at least with the current UI as it is. I've come to terms with not being the best at making intuitive user interfaces, so I went all-in on making it poweruser-friendly and efficiency instead.

Yeah, there's the android app for sending files to the server, and it'll always send files to the same folder, so that part should be pretty solid. But actually grabbing files from the server, perhaps not so much. Not sure I'd risk it, but I'll leave the decision to you hehe

I'm not aware of any user-friendly android/iOS apps for connecting to a webdav / ftps / sftp server, but if those exist, then that would probably have been a good option!

path: 0 18456794 18458474, hotness: undefined, score: 6, children: 1
jhoward 1 point a year ago

Been using DAVx5 on Android with it (you don't set it up as a full account, just a WebDAV mount) and the full exported filesystem shows up in the android file browser (as a remote mount like google drive)

path: 0 18456794 18458474 18472659, hotness: undefined, score: 1, children: 0
lemmyhavesome 5 points a year ago

Haven't looked at the project yet, but that's just the greatest name for a fileserver...

path: 0 18462473, hotness: undefined, score: 5, children: 0
herseycokguzelolacak 5 points a year ago

I have a samba fileserver behind wireguard. Would copyparty be an improvement over samba?

path: 0 18449806, hotness: undefined, score: 5, children: 4
tripflag 16 points a year ago

If all you need is basic remote file storage such as a samba server, and especially if you need samba in particular, then your current solution is probably a better fit for you.

Copyparty's main selling points is the large number of features in one package, and being pretty good at receiving file uploads (usually faster than other alternatives), but it does not have good samba support. Instead of samba, copyparty has WebDAV support, so you can still connect to it from your file manager -- but the performance will be different; depending on your access pattern and the type of files, it could be faster or slower than samba.

path: 0 18449806 18449886, hotness: undefined, score: 16, children: 3
herseycokguzelolacak 4 points a year ago

I like samba because I can mount it as a folder in the file explorer of my Linux desktop. But Samba is a little slow.

path: 0 18449806 18449886 18450300, hotness: undefined, score: 4, children: 2
wildbus8979 4 points a year ago

Why use smba when there's NFS?

path: 0 18449806 18449886 18450300 18450859, hotness: undefined, score: 4, children: 0
poVoq 3 points a year ago

You can also mount WebDAV folders like that.

path: 0 18449806 18449886 18450300 18451919, hotness: undefined, score: 3, children: 0
LifeInMultipleChoice 5 points a year ago

Thank you so very much. I needed to transfer some files locally yesterday and didn't have a NAS set up. So I thought I would quickly set up a samba share on my pop-os media server so my spouse (windows) and I (mint) could swap/store files on the fly in the future. It took me 25 minutes and I almost gave up because my config file was having issues.

This looks sooooo much nicer. May every road rise up to meet you

path: 0 18468234, hotness: undefined, score: 5, children: 4
cravl 4 points a year ago

I would add PairDrop to your list to have bookmarked. It's completely web-based so no download required and thus fully cross-platform. It also works across different networks (i.e. over the internet) by pairing devices or creating a room. Basically Apple AirDrop, but universal and on steroids.

path: 0 18468234 18474220, hotness: undefined, score: 4, children: 1
LifeInMultipleChoice 1 point a year ago

Bookmarked, thanks. I'll have to try them all out at some point and see what works quickest. Obviously the storage aspect of the poster is a different ball game, but out and about this sounds useful

path: 0 18468234 18474220 18474266, hotness: undefined, score: 1, children: 0
not 3 points a year ago

For such operations we use LocalSend.

path: 0 18468234 18470772, hotness: undefined, score: 3, children: 1
LifeInMultipleChoice 2 points a year ago

That's for the recommendation. That could be useful as well!

path: 0 18468234 18470772 18471908, hotness: undefined, score: 2, children: 0
Skipcast 5 points a year ago

This looks sick. Thanks for making and sharing it!

path: 0 18449864, hotness: undefined, score: 5, children: 0
01189998819991197253 5 points a year ago

Very sleek project. The language switcher bit was brilliant hahaha. Seriously, good job.

path: 0 18462214, hotness: undefined, score: 5, children: 0
filcuk 5 points a year 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.

path: 0 18491020, hotness: undefined, score: 5, children: 0
LSNLDN 4 points a year ago

This is cool. Idk if itโ€™s just me but the h.264 version of your video has no sound!

path: 0 18466800, hotness: undefined, score: 4, children: 3
tripflag 5 points a year ago

man... that's really unexpected, I went with h264+mp3 which should be the most conservative / broadly-supported combination you could possibly use, yet still (๏พ‰ ๏พŸใƒฎ๏พŸ)๏พ‰ ~โ”ปโ”โ”ป

what webbrowser / device / player are you using?

path: 0 18466800 18467782, hotness: undefined, score: 5, children: 2
LSNLDN 5 points a year ago

This is me browsing slrpnk.net using the voyager app,on iOS latest version on iPhone 14 Pro, it then opens it in whatever built in player the app uses. Other versions work fine though. This app has me excited as I consider starting self hosting!

path: 0 18466800 18467782 18468308, hotness: undefined, score: 5, children: 1
tripflag 5 points a year ago

awesome thanks, should be able to reproduce it then :>

path: 0 18466800 18467782 18468308 18468470, hotness: undefined, score: 5, children: 0
MacStainless 4 points a year ago

Iโ€™m in the market for a self hosted file server so I can use it as a destination for website backups. Absolutely going to give this a look next week. Thanks for posting about it!

path: 0 18454214, hotness: undefined, score: 4, children: 0
tehn00bi 4 points a year ago

Looks really cool. Might spin up a test bed to try.

path: 0 18450430, hotness: undefined, score: 4, children: 0
sun 4 points a year ago

Have been playing around with it for a bit and it's AMAZING.

path: 0 18467992, hotness: undefined, score: 4, children: 0
twikz 3 points a year ago

Now it would be interesting to setup a raspberry pi with harddrives plugged in the USB 3 ports๐Ÿ’ก

path: 0 18465310, hotness: undefined, score: 3, children: 0
piranhaconda 3 points a year ago

Ok this is too damn cool. Will be checking it out soon, but moving to a new apartment this week so I probably shouldn't dive into new distractions just yet...

path: 0 18471642, hotness: undefined, score: 3, children: 0
sexy_peach 3 points a year ago

OMG I just posted this to lemmy and saw it had already been posted. Great work! Amazing video!!

path: 0 18471519, hotness: undefined, score: 3, children: 0
hexagonwin 3 points a year ago

Looks fantastic, I'll actually be trying this. Love how it doesn't lock my files into some obscure format like seafiles.

path: 0 18458868, hotness: undefined, score: 3, children: 0
AllHailTheSheep 3 points a year ago

nice project! I'll check it out! I've also really enjoyed your replies here. it's obvious you really know your stuff. thanks!

path: 0 18468408, hotness: undefined, score: 3, children: 0
nibbler 3 points a year ago

๐Ÿคฏ

path: 0 18465498, hotness: undefined, score: 3, children: 0
interdimensionalmeme 2 points a year ago

Wo wo wow, is that my man JC Denton ??

path: 0 18475508, hotness: undefined, score: 2, children: 1
interdimensionalmeme 2 points a year ago

"There are two editors in case you hate one of them"

You crack me up !!!

path: 0 18475508 18475536, hotness: undefined, score: 2, children: 0
sefra1 2 points a year ago

OMG! I've been looking for something like this for quite some time!

I will try this as soon as I have time. Thank you!

path: 0 18458688, hotness: undefined, score: 2, children: 0
doostee 2 points a year ago

I see flake.nix, i install.

path: 0 18485243, hotness: undefined, score: 2, children: 0
gandalf_der_12te 2 points a year ago

this looks amazing! (from the youtube video. also the controls/features seem to be well thought-through) i'll give it a shot tomorrow

path: 0 18476156, hotness: undefined, score: 2, children: 0
disobey2623 2 points a year ago

I looked at the comparison for Seafile as that's the one I'm most familiar with. In my opinion Seafile's greatest strength is its encryption, but in your comparison you seem to see this as a negative as I assume this bullet refers to the encryption? "isolated on-disk file hierarchy, incompatible with other software. much worse than nextcloud in that regard"

path: 0 18471779, hotness: undefined, score: 2, children: 3
tripflag 3 points a year ago

the intention with that statement was that seafile, by default, places all the files inside its own proprietary file container thing, where the files are not easily accessible from the server's actual filesystem, using regular linux utilities. My knowledge of seafile is really minimal, so this could be wrong -- in which case I'll fix that right away! or, at the very least, try to clarify what I meant to avoid this confusion.

in case you happen to know -- are you aware if it's possible to use Seafile while having it just place all the files and folders on the disk like any other program would?

path: 0 18471779 18475102, hotness: undefined, score: 3, children: 2
Andres4NY 1 point a year ago path: 0 18471779 18475102 18475236, hotness: undefined, score: 1, children: 1
disobey2623 1 point a year ago

And obviously, encrypted folders can't be accessed through the file system even with the fuse add on, because that would break the whole point of encryption.

To me, the one big advantage Seafile has is its e2e encryption and encrypted folders, as it allows me to host it externally without allowing access to my files to the server administrator.

path: 0 18471779 18475102 18475236 18480475, hotness: undefined, score: 1, children: 0
theorangeninja 2 points a year ago

I played around with copyparty and I have to say it is just awesome! The config is just fun to mess around with and everything feels snappy.

But I ran into an issue with FTP (probably just something I configured incorrectly) and could not find a discussion for that. I should probably start an issue on Github but as a non-developer I'm not sure how to do that in the correct way.

Edit: I managed to "solve" the problem. Apparently the user uploading to a subfolder over FTP needs the move permission for the folder above said subfolder.

path: 0 18520194, hotness: undefined, score: 2, children: 0
KarnaSubarna 2 points a year ago

Any way to run the server as a docker container?

path: 0 18457232, hotness: undefined, score: 2, children: 2
tripflag 5 points a year ago path: 0 18457232 18458314, hotness: undefined, score: 5, children: 0
boonhet 3 points a year ago

You can run absolutely anything as a docker container that you have the binary (and other files if needed), or you can go fancy and compile from source in docker.

Just create a dockerfile.

From (some base image you want to use like Ubuntu or Alpine)

Copy necessary files

Run the binary

You can run it straight from command line, put it in a docker compose file, or even tag it and upload it to a repository (and then reference that in your docker compose)

path: 0 18457232 18457947, hotness: undefined, score: 3, children: 0
cyrano 2 points a year ago

This is really impressive

path: 0 18458751, hotness: undefined, score: 2, children: 0
gedaliyah 2 points a year ago

Wow! This is great. I may give it a shot.

path: 0 18451462, hotness: undefined, score: 2, children: 0
No_Bark 1 point a year ago

This is incredible! I'm going to play around with this in my docker stack.

path: 0 18570345, hotness: undefined, score: 1, children: 0
irmadlad 1 point a year ago

I'll have to say that this is about one of the most detailed instructions I've seen, replete with copious screenshots. I'm going to have to give it a go just based on that. LOL

path: 0 18473085, hotness: undefined, score: 1, children: 0
freebee 1 point a year ago

Wow.

This works crazy fast and performant. Keep up the incredible work!

path: 0 18540591, hotness: undefined, score: 1, children: 0
libre_warrior 1 point a year ago

This looks nighsome as blossom!

path: 0 18457789, hotness: undefined, score: 1, children: 0
Tiger 1 point a year ago

This looks great, nothing to check it out.

path: 0 18476297, hotness: undefined, score: 1, children: 0
SilentKnightOwl 1 point a year ago

Does anyone know if you can manage multiple devices from a single interface? If I had it on a couple of old phones and a laptop, for example.

path: 0 18589249, hotness: undefined, score: 1, children: 1
RobotZap10000 1 point a year ago

I'm not sure what you mean by this. Copyparty is a fileserver that I'm using for quick sharing of files and folders with others. "Managing multiple devices" is not what I would use it for, whatever you might mean by that. It does have one-way sync, if that's what you're looking for.

path: 0 18589249 18635250, hotness: undefined, score: 1, children: 0
Vendetta9076 1 point a year ago

Hey! Just set this up today and it seems pretty good. Only issue I'm having is that is pretty slow to download (~2mb/s) what are some good ways to speed it up?

path: 0 18455127, hotness: undefined, score: 1, children: 0
cyclicircuit 1 point 16 days ago

Hello!

Its been just about a year since someone forwarded this post to me, and I just want to say, I ABSOLUTELY LOVE COPYPARTY

I've kinda started using it for everything. It may have gotten out-of-hand...

A short list:

  • I use it as the primary file sharing server for a small community I help run
  • I use it as a personal file storage system with search (I wrote a custom plug-in for it that adds content-based search via meilisearch)
  • Perhaps most-unhinged, I started using it the primary network-based file system on my LAN. It has so many more useful features for this than NFS, SSHFS, and Samba that it just became the obvious choice. I set up a webDAV share with a username/password and then mount it via systemd-mount and rclone, and its been working shockingly well.

Thank you so much for making copyparty, and thank you for posting this <3

path: 0 25120418, hotness: undefined, score: 1, children: 1
Andres4NY 1 point 16 days ago

@cyclicircuit @tripflag I loved copyparty, but my non-technical users sadly found it confusing. Even with White-Gold-Theme-For-Copyparty.

I want to take the copyparty backend and glue on the frontend from the (now-archived) File Browser project..

path: 0 25120418 25121353, hotness: undefined, score: 1, children: 0
hperrin 1 point a year ago

Can you point me to the WebDAV code? Iโ€™m interested to see your implementation. There are some parts of the spec that are ambiguous, and I like to see how those are implemented in different servers.

path: 0 18463512, hotness: undefined, score: 1, children: 2
tripflag 3 points a year ago

sure! my implementation is really basic, just the stuff that's needed to make the clients i've tested happy, so there's probably still clients that won't be able to connect (And i'll fix those as soon as I hear about them!)

httpcli.py is the http methods handler, and the webdav-specific handlers are all next to eachother, propfind // proppatch // lock // unlock // mkcol // and there's also put for the uploads, but that's not entirely webdav-specific, just webdav-aware.

path: 0 18463512 18465408, hotness: undefined, score: 3, children: 1
hperrin 2 points a year ago

Thanks! So you put in the displayname prop even if itโ€™s not set by the client. For the life of me, I canโ€™t figure out what that prop is supposed to be in the spec. It calls it a live prop, but doesnโ€™t give an explanation or an equivalent HTTP header.

I love how you named the error for 400 statuses, โ€œPebkacโ€! xD

path: 0 18463512 18465408 18467983, hotness: undefined, score: 2, children: 0
selfhosted
selfhosted

@lemmy.world

login for more options
61555
6650
5623

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

go to feed...