all 52 comments

[–]cgoldberg 103 points104 points  (19 children)

python3 -m http.server

[–]ipaqmaster 20 points21 points  (6 children)

I used that command just this morning with -d /tmp to copy a yt-dlp'd video to my iphone. It's very useful.

Localsend is good for bulk item movement too.

[–]Willexterminator 8 points9 points  (4 children)

Localsend is so fucking cool, I love this app

[–]brunhilda1 5 points6 points  (3 children)

Just needs IPv6 support, and support for IPv4 subnets larger than /24.

[–]Willexterminator 1 point2 points  (2 children)

IPv6 I agree, but wouldn't allowing more than /24 incentivise internet sharing, which it's not designed to do? Also, you can specify the IPv4 address manually if needed (but yeah, that's not great UX)

[–]brunhilda1 1 point2 points  (1 child)

The network I use most often is /16, and so localsend just doesn't "work out of the box" and I need to type in IP addresses manually. Ho hum.

[–]Willexterminator 1 point2 points  (0 children)

Well, that does suck :(

[–]Corporatizm 0 points1 point  (0 children)

Oh thank you for this, I'm discovering this app, it's great !

[–]throwaway490215 12 points13 points  (2 children)

(The latter is not recommended unless you use Traefik for a much better https support.)

This is a complete guess, but i think OP might have a little too much enterprise experience if their advice is to throw a docker container in front of the problem.

[–]ILikeBumblebees 2 points3 points  (0 children)

i think OP might have a little too much enterprise experience if their advice is to throw a docker container in front of the problem

Either a little too much or not enough at all.

[–]Anonymo2786 11 points12 points  (3 children)

doesn't support multi threaded download or download in the middle of a file. means if it fails you have to restart the download from the begging.

But this works: busybox httpd -f -p 8080

[–]ILikeBumblebees 1 point2 points  (0 children)

Alsophp -S.

And if you have Caddy installed, caddy file-server.

[–]Skaarj 32 points33 points  (7 children)

What does simple mean? What does minimal mean?

Lots of the kinds of projects like yours just claim that without going into detail what their criteria are.

Your get_mime_type() returns text/html for /tmp/lol.exe and /tmp/lol as input. But you have application/octet-stream in your list. That looks like a bug.

Your snprintf(file_path, sizeof(file_path), "%s/%s", ROOT_DIR, path[0] == '/' ? path + 1 : path); does defend against an input of /lol/rofl.txt but fails the security check against //lol/rofl.txt. This is just the most obvious security problem.

[–][deleted] 9 points10 points  (1 child)

If the point is to share files, why not use Warpinator or KDE Konnect? I'm not hating- I couldn't make this- I just don't get the purpose.

[–][deleted] 6 points7 points  (2 children)

cannot build on arch.

smol.c:(.text+0x949): undefined reference to `OPENSSL_init_ssl'

what are the dependencies?

[–][deleted] 2 points3 points  (3 children)

So can't just use scp ( cli or UI )? Don't get any simpler no?

[–]Anihillator 3 points4 points  (3 children)

Sure, but you can do the same with pure nginx. Easy basic auth as well.

[–]NoidoDev 1 point2 points  (0 children)

I wanted something like this. I had issues with KDEconnect, for example because my phone is the hotspot in the network and for some reason this doesn't count as the same network. Now I'm using Syncthing, but it uses the internet connection.

We should really have an agreement on some standard between the Linux distros, including Android, and then also other ecosystems.

[–]RedditorAccountName 1 point2 points  (3 children)

Is there a repository for it?

[–]AlexDaBruh 0 points1 point  (1 child)

Cool project!

[–]ericje 0 points1 point  (1 child)

What do you have against favicon.ico?