Dead simple document host?
from deegeese@sopuli.xyz to selfhosted@lemmy.world on 20 Aug 18:57
https://sopuli.xyz/post/32377882
from deegeese@sopuli.xyz to selfhosted@lemmy.world on 20 Aug 18:57
https://sopuli.xyz/post/32377882
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 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?
threaded - newest
A web server with directory listing enabled would work fine for that.
sftpgo
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 defaultindex.html
file. If you need to do it via Docker then use the official Nginx image hub.docker.com/_/nginxYou 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.Based on OPs requirements, this is the answer
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:
Not quite what you want, but I am a huge fan of mealie.
Came here to say the same thing. More than OP is asking for, but it’s fantastic.
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.
Are you referring to mealie-recipes/mealie?
Yes, that. It’s a bit much, but it’s really easy to use.
Copy files and do a
python3 -m http.server
Very simple and does the job.
@cute_noker @deegeese
Better use #copyparty - it's very powerfull and secure:
https://fulda.social/@abimelechbeutelbilch/115044659580192358
Looks interesting, but also more complicated.
@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
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”]
@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).
Totally agree.
Caddy has this feature built-in. It looks nice too.
caddyserver.com/docs/caddyfile/…/file_server
There’s also File Browser.
why not copyparty?
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.
I use dufs. Copyparty seems good too.
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.