this post was submitted on 26 Jul 2025
573 points (99.3% liked)

Selfhosted

49821 readers
819 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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.

top 50 comments
sorted by: hot top controversial new old
[–] buddascrayon@lemmy.world 6 points 1 hour ago (1 children)

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.

[–] tiramichu@sh.itjust.works 2 points 49 minutes ago* (last edited 48 minutes ago)

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

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

[–] Pall@piefed.social 4 points 1 hour ago* (last edited 1 hour ago)

Is there a way to help translate the UI.

I would like to help translate it into Danish.

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

[–] sun@slrpnk.net 3 points 1 hour ago

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

[–] LifeInMultipleChoice@lemmy.world 2 points 1 hour ago* (last edited 1 hour 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

[–] sun@slrpnk.net 4 points 2 hours ago

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

[–] craftrabbit@lemmy.zip 7 points 4 hours ago

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

[–] LSNLDN@slrpnk.net 3 points 3 hours ago (1 children)

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

[–] tripflag@lemmy.world 2 points 2 hours ago (1 children)

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?

[–] LSNLDN@slrpnk.net 2 points 1 hour ago* (last edited 1 hour ago) (1 children)

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!

[–] tripflag@lemmy.world 2 points 1 hour ago

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

[–] ayyy@sh.itjust.works 7 points 7 hours ago (2 children)

Everyone loves CP. Tell all your friends about CP.

[–] sxan@midwest.social 1 points 2 hours ago

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

[–] RheumatoidArthritis@mander.xyz 8 points 8 hours ago (1 children)

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?

[–] tripflag@lemmy.world 7 points 5 hours ago (2 children)

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.

[–] null_dot@lemmy.dbzer0.com 2 points 2 hours ago

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

[–] RheumatoidArthritis@mander.xyz 2 points 4 hours ago (1 children)

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

[–] tripflag@lemmy.world 2 points 4 hours ago (1 children)

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

Great software!

[–] HexesofVexes@lemmy.world 3 points 6 hours ago

Elderly raspberry pi B [✓]

Large portable drive gathering dust [✓]

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

[–] nibbler@discuss.tchncs.de 2 points 5 hours ago
[–] twikz@sopuli.xyz 2 points 6 hours ago

Now it would be interesting to setup a raspberry pi with harddrives plugged in the USB 3 ports💡

[–] uzay@infosec.pub 7 points 9 hours ago

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

[–] danhab99@programming.dev 7 points 11 hours ago (1 children)

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

[–] cwista@lemmy.world 4 points 9 hours 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.

[–] lemmyhavesome@lemmy.world 4 points 11 hours ago

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

[–] 01189998819991197253@infosec.pub 3 points 11 hours ago

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

[–] hperrin@lemmy.ca 1 points 9 hours ago (1 children)

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.

[–] tripflag@lemmy.world 1 points 6 hours ago (1 children)

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.

[–] hperrin@lemmy.ca 1 points 1 hour 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

[–] perishthethought@piefed.social 18 points 17 hours 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.

[–] muusemuuse@sh.itjust.works 36 points 20 hours ago* (last edited 20 hours 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.

[–] chellomere@lemmy.world 24 points 1 day ago* (last edited 1 day ago) (2 children)

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.
[–] suzune@ani.social 3 points 14 hours 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.

[–] tripflag@lemmy.world 24 points 23 hours ago (2 children)

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

[–] RecallMadness@lemmy.nz 1 points 10 hours ago (1 children)

What do you use to bundle into one file?

[–] tripflag@lemmy.world 1 points 6 hours 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.

[–] chellomere@lemmy.world 4 points 17 hours ago (1 children)

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.world 10 points 17 hours ago (1 children)

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)

[–] chellomere@lemmy.world 2 points 4 hours 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.

[–] pwalker@discuss.tchncs.de 13 points 22 hours ago* (last edited 22 hours ago) (1 children)

you even mention ladybird as browser, nice 😎

[–] tripflag@lemmy.world 15 points 22 hours ago (2 children)

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.

load more comments (2 replies)
[–] hexagonwin@lemmy.sdf.org 3 points 17 hours ago

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

[–] johntash@eviltoast.org 40 points 1 day ago (3 children)

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?

load more comments (3 replies)
load more comments
view more: next ›