- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
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.
This looks sick. Thanks for making and sharing it!
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!
you even mention ladybird as browser, nice 😎
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.
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.
Can claim “It even works with browsers from the future!”
This is really impressive
Clearly a labour of love 👍
Maybe support for some music streaming apps (subsonic?) would be cool?
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 :>
Looking at and/or incorporating Navidrome might be helpful.
Wow! This is great. I may give it a shot.
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?
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.
Screenshots of the ui at the top of the readme would be nice
I have a samba fileserver behind wireguard. Would copyparty be an improvement over samba?
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.
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.
Why use smba when there’s NFS?
You can also mount WebDAV folders like that.
Looks really cool. Might spin up a test bed to try.
I would probably remove python 2 support, it was end of life when the project was started.
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 :>
I don’t think there is a Python 2 version for retro equipment (DOS?). ;-)
Just because something is EOL doesn’t make it useless.
So long as it’s known and managed, it’s fine.
Can we have Gopher support?
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
Firefox isn’t that great for FTP either. Gopher still exists :-) and I’d love to use it even more.
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.
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.
Nextcloud is like Windows 95, it works great when you install it then it just keeps getting slower as you fill it with content
Also, it’s like Wordpress, growing new slow features you’ll never need with each new release.
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.
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.
I replaced nextCloud’s file sharing with Syncthing just recently, as I found myself only synchronising between two computers (one desktop, one smartphone) anyway. :-)
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).
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.
Thanks a lot for the kind words! ready to answer questions if you hit any bumps :>
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.
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.
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
Ah, so you have compiled it into one file? Didn’t know that was possible for python, what tool do you use for this?
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-1so it realizes all hope is lost :Dthe 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)
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.
What do you use to bundle into one file?
copyparty-sfx.pyis a custom packer (see this reply) created by make-sfx.sh, andcopyparty.pyzis a standard zipapp, created by make-pyz.sh. The zipapp has more disadvantages than thesfx.py, so that’s the default/recommended build.
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.
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.









