this post was submitted on 05 Jun 2025
21 points (92.0% liked)

Selfhosted

60074 readers
589 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.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

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

  5. Submission headline should match the article title.

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

I find myself often having to transfer a random files from another person's device to mine. Existing file sharing solutions aren't exactly ideal because they either require me to remember a very long URL (file shares), or requiring me to log in on others' device (cloud). I'm wondering if there's a program where anyone can upload files, but can only be viewed and downloaded from the server by authenticated users. I understand it's not wise to accept files from unauthenticated users, but it would be so damn convenient. If there isn't one, I suppose that would be my next project.

you are viewing a single comment's thread
view the rest of the comments
[–] dgdft@lemmy.world 2 points 1 year ago

While I’m sure there’s a pre-canned tool out there for you, if you have basic software experience (which you seem to), this is one of those times where it’s usually most efficient to hack together a dumb CGI script and call it a day.

This prompt should get you most of the way there, using your llm of choice:

Write a minimalist cgi script to help upload files to a server. Upon a GET request, serve a light page with a centered form that takes in a file and a submission code. Submission codes will be stored on individual lines of a plaintext file. Adding new codes to this file is out of scope - but the codes will be 8-char hex strings (do validate that submission strings are not empty!). The script should accept the submission as a POST, and save the file to an upload dir if the submission code is valid.

Vet the output, harden as needed, setup a systemd service to serve with busybox httpd, and optionally reverse-proxy. If you’ve done this sorta thing before, you can probably knock it out in a half hour.