this post was submitted on 30 Apr 2025
62 points (95.6% liked)

Selfhosted

46546 readers
1509 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 thought of this after a recent trip with some friends. We shared the photos when we were still in person. But sometimes we need to share a lot of photos over the internet. In the past, we have used a shared google drive directory for this. But I'd prefer a self-hosted option. There should be some sort of password protection as well (ideally per share, and no need for accounts). One should be able to both access the current files and upload new ones, just like google drive or dropbox.

I currently have FileShelter, which works for 1-to-1 sharing but not for groups. I guess something like ProjectSend would work, but it's too complex for my usecase. I'd prefer something more lightweight since I'll maybe use it once every few months. Also, it should be noob-friendly, and accessible using a browser.

Update: I'm very happy with copyparty. It does what I want, and much much more. I even replaced my older webdav server with it since it provides more granular control over share locations and permissions. Kudos to the developer @tripflag@lemmy.world!

all 42 comments
sorted by: hot top controversial new old
[–] ironhydroxide@sh.itjust.works 27 points 2 days ago (1 children)

I use nextcloud for this. It's a bit much for just simple file share, but it works for me.

[–] SinTan1729@programming.dev 7 points 2 days ago (1 children)

Yeah, it's a bit too much I think.

[–] atzanteol@sh.itjust.works -5 points 2 days ago (2 children)

Too much what exactly? Don't use the functionality you don't want.

[–] SinTan1729@programming.dev 19 points 2 days ago* (last edited 2 days ago) (2 children)

Storage, RAM, CPU usage. I prefer not to have such a large piece of software running for no reason. It might seem silly, but I hate using resources for no reason. I'll rather have 5 lightweight apps running instead of a huge one, of which I'll only use a few parts.

[–] Cerothen@lemmy.ca 0 points 2 days ago

This confuses me a bit, technically nextcloud is just a PHP script that only runs when you actually perform a page request.

If you don't enable the Cron then it does even less than a normal install.

[–] markstos@lemmy.world 1 points 1 day ago

You still have manage upgrades due security vulns in all the features you are ignoring.

[–] tripflag@lemmy.world 8 points 2 days ago (3 children)

Mind if I suggest my own software, copyparty?

Regarding authentication, someone who has an account (in this case just yourself) can create password-protected shares which other people can browse, or upload, or browse+upload to (configurable when creating the share).

There is WebDAV support, and it should integrate well enough with shares, but I haven't tested that specifically.

It has photo and video thumbnails, and a basic image-viewer, and with some elbow-grease it can also show exif-tags (gps-coordinates etc).

There is also optional file dedup, so if two people upload the same file, it'll detect and skip that during the 2nd upload (doesn't waste any bandwidth) and swap out the new file with a symlink to the existing one. Default disabled to avoid surprising someone with symlinks.

I think the following command would be enough to get you started:

wget https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py
python3 copyparty-sfx.py -a sintan:yourpassword -v .::A,sintan --shr=/shr -e2dsa -e2ts

but since that's entirely unreadable, you can do it with a config file instead,

[global]
  e2dsa  # enable filesystem indexing 
  e2ts  # enable media indexing (music tags)
  shr: /shr  # enable shares under this url

[accounts]
  sintan: yourpassword 

[/]  # create a volume at this url
  /srv/share/partypics  # the filesystem path to share
  accs:
    sintan: A  # give sintan read-write-move-delete-admin

and use it like this:

python3 copyparty-sfx.py -c the.conf

there's another example here and here for inspiration.

[–] SinTan1729@programming.dev 1 points 1 day ago* (last edited 1 day ago)

Hey, that looks awesome. I'll try it out when I get back from work.

Edit: This is awesome! It satisfies my requirements and goes beyond. Great app!

[–] irmadlad@lemmy.world 2 points 1 day ago

To me, it's always nice meeting the face behind the software. I have never used copyparty, but if I had a use case, it would be high on the list just based of the volume of detailed instructions. I think that is probably the most detailed selfhosted piece of software I've seen at GitHub......gotta be something good going on with that. And...and replete with pictures of the UI in a variety of scenarios. That's just top drawer in my book. If a need ever arises, I have bookmarked it, because that's where I'll start. Awesome job my man, and thank you for your dedication to the craft.

[–] haverholm@kbin.earth 2 points 2 days ago (1 children)

Oh hey, this is just what I was looking for recently! I wanted to recommend PirateBox to another thread on here, but realised it was eol'ed six years back. This is pretty much similar usage, right?

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

Hadn't heard about PirateBox before -- love the concept, but nah aside from a small amount of overlap they're very different things :-)

When users join the PirateBox wireless network and open a web browser, they are automatically redirected to the PirateBox welcome page. Users can anonymously chat, post images or comments on the bulletin board, watch or listen to streaming media, or upload and download files inside their web browser.

I guess if you put copyparty on a raspberry pi (or boot the copyparty live-cd on a nuc) then you get something vaguely similar -- a wifi node where you can download and upload files, but none of the other stuff (chat, messageboard, captive portal). Maybe cool ideas for future spinoff projects hehe

[–] haverholm@kbin.earth 2 points 2 days ago

Right, it was the local filesharing part (like at a W/LAN party) that I wanted to recommend pirate box for, so I overlooked the other functions 🙂

Either way, bookmarked your GH repo for future reference, excellent project!

[–] Darkassassin07@lemmy.ca 12 points 2 days ago* (last edited 2 days ago) (1 children)

I use https://filebrowser.org/ for this.

Nice lightweight filebrowsing/sharing with user management. Users can have their own dedicated directories, or collaborate.

You can also create share links that allow anyone with the link to view/download files. Optionally password protected.

Here's a demo you can mess with: https://demo.filebrowser.org/ User: demo Pass: demo

[–] SinTan1729@programming.dev 2 points 2 days ago* (last edited 2 days ago) (1 children)

Thanks, I took a look. It's very close to what I want, but it still doesn't support uploads in shared directories. It seems to be a pretty highly requested feature though. So maybe it'll happen at some point.

[–] Darkassassin07@lemmy.ca 7 points 2 days ago* (last edited 2 days ago) (1 children)

You could setup a user account like the share you're describing. There's a setting to prevent the user from changing their password.

Just pass out those credentials to anyone you want to collaborate with; they don't need their own individual accounts.

[–] SinTan1729@programming.dev 2 points 2 days ago (1 children)

That's a pretty good idea, actually. I'll try that out. Thanks.

[–] q7mJI7tk1@lemmy.world 2 points 2 days ago (1 children)

Yes, as @Darkassassin07@lemmy.ca says, just create a new user for each event you want to share photos about: 'BeachBBQ', 'WeekendStay-July' etc, then bind those user accounts to whatever folders you want to have the photos in and set the user restrictions to upload, share, but not delete for example.

I also use various FileBrowser instances, with a different subdomain pointing to them, also as a way to filter out usage as well. collegefriends.mydomain.com could take you to a FileBrowser instance that only has access to photos from a certain friend group. Not sure how useful that would be to you, but it's another way of controlling the data flow.

[–] Ulrich@feddit.org 1 points 1 day ago

just create a new user for each event you want to share photos about: 'BeachBBQ', 'WeekendStay-July' etc

I use Immich for that. You just create a shared link and then tick the setting to allow other users to upload.

Won't work for other filetypes though.

[–] Appoxo@lemmy.dbzer0.com 3 points 2 days ago

Pictures specifically Immich.
But I don't know how (well) it works without any password and shared albums.

[–] Onomatopoeia@lemmy.cafe 9 points 2 days ago* (last edited 2 days ago)

Resilio Sync or Syncthing

Ah, just saw the browser requirement.

In nextcloud discussions I've heard of Seafile. I've never used it, so not sure what it's capable of.

[–] HelloRoot@lemy.lol 6 points 2 days ago (1 children)
[–] N0x0n@lemmy.ml 3 points 2 days ago* (last edited 1 day ago)

I think this one fits the bill ! From what I saw in the options you can even share a directory with multiple users while everyone has it's own place and create public links... Never used these functions, but seems possible !

There's also a webdav share functionality if thats something OP is interested in !

[–] Xanza@lemm.ee 4 points 2 days ago

https://lychee.electerious.com/

Super small. Lightweight. Web focused. Only downside is no multi-user access. Setup an account to share between your friends, and give them the login information. Then they can upload albums, edit albums, whatever. Anything uploaded is private unless shared, then anyone with the link can view the photos.

Seems like a decent fit for you. They're also working on multiple users.

[–] flightyhobler@lemmy.world 5 points 2 days ago

I still haven't tried it but I think someone suggested sftpgo for a similar use case a couple of days ago.

[–] AbidanYre@lemmy.world 5 points 2 days ago
[–] hperrin@lemmy.ca 2 points 2 days ago* (last edited 2 days ago)

I’ve used WebDAV with Nephele:

https://hub.docker.com/r/sciactive/nephele

It works with multiple users and has built in browser support.

Owlfiles on mobile makes it easy to import all your photos to it.

[–] poVoq@slrpnk.net 3 points 2 days ago (1 children)
[–] dan@upvote.au 1 points 2 days ago (1 children)

Does this have a way of sharing a directory publicly?

[–] poVoq@slrpnk.net 1 points 2 days ago

Being worked on apparently.

[–] 42yeah@lemm.ee 2 points 2 days ago* (last edited 2 days ago)

Self-plug: PENEfiles! (yes it’s an unfortunate name but I didn’t know back then cuz I am not a native speaker). Comes with a tag system and file ownership management. Supports direct link sharing, and the whole website can be visited without logging in. Here is a detailed intro and here is the source code.

[–] StrawberryPigtails@lemmy.sdf.org 3 points 2 days ago (1 children)

Might take a look at NextCloud though it may be overkill as it’s intended to be a full Google Cloud or Office365 replacement. On the other hand, it is modular so you only have to set up what you actually need.

[–] SinTan1729@programming.dev 4 points 2 days ago

I'm strictly against Nextcloud or something similar. I prefer to run a bunch of lightweight apps, rather than one big one.

[–] sneezycat@sopuli.xyz 3 points 2 days ago (1 children)

Maybe something like xbackbone? I've used it to share small-ish files and it works fine; I don't know how much of a pain it would be to use for a group of people, but as long as everyone has an account they should be able to access files with a link.

[–] SinTan1729@programming.dev 2 points 2 days ago* (last edited 2 days ago) (1 children)

This looks pretty promising. Do you know if it's possible to add per-share passwords, so that I don't need everyone to open an account?

Edit: It's not.

[–] sneezycat@sopuli.xyz 2 points 2 days ago (1 children)

Unfortunately that doesn't seem possible, afaik. Although you could always create a zip file with a password, and share it with an open link (anyone with the link can download it, no need for account).

[–] SinTan1729@programming.dev 2 points 2 days ago* (last edited 2 days ago)

Yeah, but that's already possible with my current setup using FileShelter. I'd like them to be able to upload as well.

[–] theorangeninja@sopuli.xyz -1 points 1 day ago

Many great options already but I would like to add filestash to the list. I did not test it out yet but maybe it fits your need.

[–] matron1049@lemmy.dbzer0.com 0 points 2 days ago
[–] just_another_person@lemmy.world -3 points 2 days ago (1 children)

You're kind of asking the wrong question.

Are there ways to share stuff with a group of people that are self-hosted? Absolutely.

Can you get security through those means? Not without some unified authentication.

Maybe back up a few steps and figure out specifically how much trouble you're willing to go through for this. There's a reason these photo sharing platforms exist with sharing and permissions.

[–] SinTan1729@programming.dev 1 points 2 days ago (1 children)

I don't care too much about security, since I'll delete everything in a few days after copying them to my gallery. Then, I usually share a link with them to an album on my PhotoPrism instance. So, per share password is fine by me.

[–] just_another_person@lemmy.world -1 points 2 days ago

Then just start an Immich instance and share them that way. Easiest route if you want to make them browsable first.