this post was submitted on 26 Sep 2023
33 points (100.0% liked)

Selfhosted

37756 readers
786 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 1 year ago
MODERATORS
 

Is there an app I can self-host that will let users upload stuff to my server? I need something where I can send a link to someone, and they can upload files & folders to my server (it doesn't matter much to me where, as long as I can transfer them out to wherever I need later).

For example, I'm working to archive my parents' family photos which right now live on a bunch of external HDDs. I need a way for my (non-technical) father to be able to upload a folder with potentially 10k plus files to my server. Because of his poor internet reliability, and the potentially large size, I need something that has resumability (so that if it fails, it can pick up where it left off and not re-start from scratch)

Security-wise, it would be nice to be able to only have uploads work when I send a link. Other than that, I'm not worried about malicious uploads or anything.

Does anyone have any recommendations for this? (Or, if nothing exists, would folks find this useful? I might end up making it if I can't find it)

top 29 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 9 months ago

Sounds like you could use an old fashioned FTP server

[–] [email protected] 17 points 9 months ago

There is NextCloud. It has the possibility to create an upload link where people can upload stuff. We use it daily to receive stuff from our customers.

If you need the resuming part, you would be better off giving them a NextCloud account and share a folder. Their NextCloud app will sync it in the background and resume automatically.

[–] machinin 7 points 9 months ago (1 children)

Would Syncthing work for you?

[–] nopersonalspace 5 points 9 months ago (2 children)

It's not really the workflow I was imagining for this, but it might actually not be a bad idea. It might be a bit weird to use, but if I setup a "drop folder" on his machine that he could plop folders/files into then maybe it could work. Thanks!

[–] [email protected] 2 points 9 months ago (1 children)

Do you want the entirety of a directory system uploaded? If that’s the case you could use syncthing to just share the source directory. Then your dad wouldn’t have to move anything. Add in something like Tailscale or ZeroTier and you could control all the syncthing settings from the webui.

[–] nopersonalspace 1 points 9 months ago (1 children)

Yeah, I'm doing a test-run rn with syncthing and finding it pretty slow. Not sure why but it's downloading files at like 100Kbps even though I know the upload speed of the network is much higher. I don't have any bandwidth limits setup in syncthing so I don't think that's why...

[–] [email protected] 2 points 9 months ago

That’s a bummer. Might be worth running an iperf test between your machine and your dad’s just to get a baseline speed. Could be something in between your two networks is routing slowly.

[–] machinin 0 points 9 months ago

Glad to help 👍

[–] [email protected] 7 points 9 months ago (1 children)

Take a look at NextCloud - very easy to host and has great user management and sharing.

There are also a good amount of apps that are one click integration if you need to expand on functionality.

[–] nopersonalspace 6 points 9 months ago (3 children)

Thanks! I already use NextCloud and quite like it! Hover, I find their file upload feature to be lacking for this use-case. Sadly, it crashes/freezes the browser when I try to upload a folder with a lot of files (which is the main thing I'll need to do with this)

[–] [email protected] 9 points 9 months ago (1 children)

Maybe install the nextcloud client on his PC and have him copy over the files there. The Nextcloud client has sync and resume functionality and you don't have to watch it like a hawk. It just does it's thing in the background.

[–] nopersonalspace 7 points 9 months ago (1 children)

Huh yeah that's not a bad idea. I actually sort of dislike the nextcloud client normally (as I'd prefer it to not actually download the remote files, but act like a virtual filesystem). But in this case, it might actually work...

[–] [email protected] 1 points 9 months ago (1 children)

It acts as a virtual file system on Windows.

[–] nopersonalspace 1 points 9 months ago (1 children)

Oh, didn’t know that. Sadly I’m only on Mac & Linux

[–] [email protected] 1 points 9 months ago (1 children)

I believe it is able to do so on Windows because it uses the same system that OneDrive does, and is baked in to the OS. Not sure what the excuses are on MacOS and Linux.

But if you're using Dolphin or Nautilus on Linux, does setting up a WebDAV network location not meet your needs?

[–] nopersonalspace 2 points 9 months ago

That would work fine for linux, but the folks who need to upload stuff to me server can't do that. They're running Macos which doesn't really support webdav well (and SMB is a mess too), plus they're on an external network and I don't want to have to get them on my VPN

[–] [email protected] 3 points 9 months ago (1 children)

If you’re doing the uploads yourself, the fastest solution for large files (e.g. compress into a tar/7z) will be rsync.

It requires minimal setup (ssh or vpn connection) and uses chunk transfer which is typically faster and can be resumed in event of connection failures

[–] nopersonalspace 4 points 9 months ago

I love rsync, and also have been using croc a lot recently for similar stuff. It's not really feasible for non-technical users who don't even want to think about using a terminal though.

[–] [email protected] 1 points 9 months ago

browser-based 'clients' with large directories and large numbers of files in a single multi-file upload are going to choke. you need binary bits on the parents' end, such as a dedicated backup or sync utility.

if you could populate your server with their existing files using a physical drive, that would be better, and perhaps faster and easier, too--then a browser-based upload solution could probably handle the much smaller 'updates' of new stuff. have them consolidate all the existing files on one external (plus also on a second for a local backup). hell, you could do that bit via remote desktop and all they'd need to do is connect the drives and let you in. then somehow get one of those drives to you (ship, deliver, you pick up. whatever is feasible).

[–] [email protected] 5 points 9 months ago* (last edited 9 months ago)

Filebrowser, it's a basic web interface you can drag files into.

But if he needs to upload a lot of files like 10k plus, then that's not going to work well. Instead Syncthing would be the best option. It will automatically handle resuming uploads, and you can set a bandwidth limit so it doesn't cause bufferbloat from upload saturation.

[–] [email protected] 4 points 9 months ago

I use pingvin to share files for non technical ppl, but i don't think it's made for your case.

Maybe syncthing would work.

[–] thirdBreakfast 3 points 9 months ago

When I've had need of collecting files from someone, I've normally thrown up a FileBrowser instance. Pretty sure it's not resume-able though.

[–] nutshell7827 2 points 8 months ago

Try out sharry. Sharry is a self-hosted file sharing web application.

It works pretty well for my use cases. I also like the alias feature, what is pretty much what you are searching for. The only thing I miss, is the possibility to download a share as a zip folder. But there is an open issue for it, so maybe it will be added in future (again).

[–] [email protected] 2 points 9 months ago

Down this way there be dragons.

[–] SheeEttin 1 points 9 months ago

I would just use a backup tool to get everything on the computer.

[–] [email protected] 1 points 9 months ago (1 children)
[–] nopersonalspace 1 points 9 months ago (2 children)

Transfer.sh seems cool enough, but I'd rather avoid having to coach non-technical folks on how to use the command line

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

I'm pretty sure it also has a web interface where you can drag and drop files

Edit: after a second look I can't find anything like that. I swear I saw it somewhere...

[–] [email protected] 1 points 9 months ago

There's also Jirafeau, but I can't speak for any continuation of uploads