Dead simple document host?

I have a bunch of plain text recipe files on a NAS. If a family member wants to cook something, they ask me to print them a copy.

I’m looking for a simple as possible way to put them on a local web server via a Docker image or similar.

Basically all I need is to have http://recipes.local/ show the list of files, then you can click one to view and or print it.

Don’t want logins. Don’t need ability to edit files. Want something read-only I can set and forget while I continue to manage the content directly on the NAS.

What would you suggest?

29 points · 22 comments · view on lemmy.world

22 Comments

dan@upvote.au · 22 pts · 1y (2 replies)

Install Nginx, add autoindex on; to the default site config, throw the files into /var/www/html or whatever default folder it uses, and delete the default index.html file. If you need to do it via Docker then use the official Nginx image https://hub.docker.com/_/nginx

You could also just share the files via SMB. Easy to use on a PC - you could configure their computers to mount the share as a network drive on boot (e.g. R:, for recipes). Not sure about other phones but the built-in files app on my Galaxy S25 Ultra supports SMB too.

deegeese@sopuli.xyz · 3 pts · 1y

I already have SMB but want something easier for non tech family members.

Nginx sounds like the way to go and just symlink www -> recipes

Thanks.

edit to add final update:

  • Installed nginx docker image on NAS
  • Mapped html and config paths to host
  • Enabled directory listing support
  • Added recipes.local to NAS reverse proxy
  • Added recipes.local to RPi CNAMEs
  • Bookmarked the site on kids’ computer
Luckyfriend222@lemmy.world · 3 pts · 1y

Based on OPs requirements, this is the answer

cmnybo@discuss.tchncs.de · 13 pts · 1y

A web server with directory listing enabled would work fine for that.

k4j8@lemmy.world · 12 pts · 1y

Caddy has this feature built-in. It looks nice too.

recipes.local {
	root * /srv
	file_server
}

https://caddyserver.com/docs/caddyfile/directives/file_server

There's also File Browser.

Tolookah@discuss.tchncs.de · 3 pts · 1y (4 replies)

Not quite what you want, but I am a huge fan of mealie.

undefined@lemmy.hogru.ch · 5 pts · 1y (1 reply)

Are you referring to mealie-recipes/mealie?

Tolookah@discuss.tchncs.de · 3 pts · 1y

Yes, that. It's a bit much, but it's really easy to use.

AbidanYre@lemmy.world · 4 pts · 1y (1 reply)

Came here to say the same thing. More than OP is asking for, but it's fantastic.

curbstickle@lemmy.dbzer0.com · 3 pts · 1y

Just used it to import a recipe, tweak it, and then I made it. Big fan of mealie.

I bet it would do a decent job of parsing those text files.

cute_noker@feddit.dk · 3 pts · 1y (6 replies)

Copy files and do a

python3 -m http.server

Very simple and does the job.

abimelechbeutelbilch@fulda.social · 0 pts · 1y (5 replies)
cute_noker@feddit.dk · 1 pts · 1y (4 replies)

Looks interesting, but also more complicated.

abimelechbeutelbilch@fulda.social · 0 pts · 1y (3 replies)

@cute_noker If you are familiar with #docker you can use #copyparty as simple as this:

docker pull copyparty/im && docker stop copyparty_photos && docker rm copyparty_photos

docker run -d -p 12345:12345 --name copyparty_photos \
--restart unless-stopped \
-v /path/to/photos/:/w \
-v /root/.config/copyparty:/cfg \
copyparty/im \
--https-only -nih -p 12345 \
--localtime \
--nos-hdd \
--grid \
--theme=6 \
-v /w::r,guest:rd,admin \
-a guest:pw1234 \
-a admin:anotherpw5678 \
--ipu=1.2.3.4/32=admin

TL;DR:
Path/to/photos = where your files are stored
-p 12345:12345 = Port to expose
Use https only!
User guest with PW can read
User admin with PW can read and delete
Autologin as admin if coming from IP 1.2.3.4

All parameters: https://ocv.me/copyparty/helptext.html

cute_noker@feddit.dk · 1 pts · 1y (2 replies)

Looks very cool, seems like a good way to get started.

But it is hard to beat the simplicity of python.

The Dockerfile should work with this:

FROM python:3.13-slim WORKDIR /app COPY . /app EXPOSE 8000 CMD ["python", "-m", "http.server"]

abimelechbeutelbilch@fulda.social · 0 pts · 1y (1 reply)

@cute_noker #python wins by simplicity and a very small footprint. But it loses by security (if this is a matter for the data made available for the whole internet).

cute_noker@feddit.dk · 1 pts · 1y

Totally agree.

_cryptagion@anarchist.nexus · 2 pts · 1y
[ removed ]
tatterdemalion@programming.dev · 2 pts · 1y

I use dufs. Copyparty seems good too.

lorentz@feddit.it · 2 pts · 1y

Just use the directory listing of your favourite web server. You have a HTTP read only view of a directory and all of its content. If you self host likely you have already a reverse proxy, so it is just matter of updating its configuration. I'm sure it is supported by Apache, Nginx, LightHttpd, and Caddy. But I would expect every webserver supports it. Caddy is the easiest to use if you need to start from scratch.

PHLAK@lemmy.world · 1 pts · 1y

Directory Lister is a perfect fit for this. Docker instructions here.

Disclaimer: I am the author of Directory Lister. Feel free to reach out with questions.

HelloRoot@lemy.lol · 0 pts · 1y

sftpgo

Tramort@programming.dev · 0 pts · 1y

sandstorm is dead simple to host and crazy secure.

it handles user accounts for you and there are lots of apps to serve files or track text files.

it rocks.