posted in Selfhosted

please recommend a simple selfhosted photo gallery

hi. i’m looking for an extremely simple selfhosted photo gallery software. i have photos from my laptop, a camera, and my phone. they are all rsync’ed onto my server. so on the server I have ~/Pictures/Laptop ~/Pictures/Camera ~/Pictures/Phone filled with JPEG/PNG/HEICs and no subdirectories.

i want to view photos from all three directories on a single timeline/feed, from the web (and if possible, via a mobile app). currently I VNC onto the server to run XnView and check each directory and this is a terrible user experience especially on a phone.

i don’t want to run a separate database or anything complex, so things like Immich or Photoprism are not an option. would be nice to be able to assign a tag to some images (“work”, “computer”, …) but it’s not a necessity. and i don’t need the ability to edit/remove images from the gallery.

i’ve considered rolling my own solution but thought there might be something already available.

thanks!

enPage

Replying to @⁨hexagonwin@lemmy.today⁩

I hear you, I went through the same journey. After getting Immich set up, I haven’t had to do a single thing to it. There are scripts that can turn your folders into Immich albums, so I just set up the docker containers, ran the script, and watched as everything was created for me without more labor on my part.

I hope somebody else has the solution you’re looking for, but if you don’t find it, I really think you should give it a whirl because it turned out to be way easier than I expected it to be.

Replying to @⁨hexagonwin@lemmy.today⁩

I mean, you say contradictory things in your post: you don’t want to manage a db, but you want to assign tags and categorize the photos, which would need a db of some kind.

If you really, really don’t want a db but you want web access to your pics, just rename them so they sort alphabetically the way you want and drop them in the doc root of a www server, apache or nginx would work. Do note that you will have no sorting or tagging options, but it will be dead simple. This is what the copyparty option would give you.

Not sure what you mean about “a whole Linux container”, the majority of my alpine images run in under 100MB memory and use less than 0.1% CPU, so it’s not clear to me what your objection is.

Replying to @⁨hexagonwin@lemmy.today⁩

Immich isn’t complex, and I don’t think it requires a separate database.

Edit: just checked and technically it does, but if you use the docker compose then it deploys it automatically and you don’t have to think about it at all.

Edit2: if you really want something dead simple, yeah you could trivially write a tiny script to list and thumbnail images. I’m sure there are apache plugins for exactly this.

Replying to @⁨hexagonwin@lemmy.today⁩

I feel like this is a case of not wanting to do the “difficult” thing because it sounds difficult when really avoiding the “difficult” thing is more difficult than just doing the “difficult” thing.

I was replacing the power steering rack on my P2 Volvo XC70 recently. I really didn’t want to drop the subframe because that sounded like a lot of work. Eventually I realized dropping the subframe was the easier way to get the power steering rack out and, in the end, it was way easier to just drop the subframe. It was like 10 more bolts and wasn’t that hard to put back. In this analogy, Immich is dropping the subframe, just do it.

Replying to @⁨Joelk111@lemmy.world⁩

no, it’s more about that i don’t want a separate linux installation on my freebsd server, all with it’s useless attack surfaces and such. i want something lightweight, and i specifically mentioned immich isn’t what i want in the OP. yet you folks are all downvoting and trying to persuade me to try that. no, i’m not using that.

after hearing it a few times i’ve tried it before and it’s not what i want. even ignoring the server part i hate that clunky google photos ripoff web interface.

Replying to @⁨hexagonwin@lemmy.today⁩

Here to suggest piwigo. Use it with docker, zero hassle but I think it does depend on a database, so it might be too heavy for your use case. Supports tags & galleries.

piwigo.orgPiwigo | Open Source Photo Library and DAM SoftwareOrganize and share your media with Piwigo, an open source photo library and DAM software. Available as a hosted service in France or self-hosted.

Replying to @⁨Cyber@feddit.uk⁩

I run Debian on my VPSes. But, also, I’ve been through the path of doing what the PKGBUILD does, which is read the Dockerfike and manually execute the steps: I think it’s pretty problematic to have to do that every update cycle. Got Immich set up, looked at what I’d have to do every time I want to run an update, and "nope"d out.

With server side software like this, which will usually be running behind a reverse proxy and will connect to a postgres dB (or other services like Redis), I kind of don’t want to fight the software/make guesses to create these connections. I also take umbrage with the nginx proxying “example” configurations - just tell me what needs to be proxied to where and let me handle the rest; it’s a server, you don’t know my setup. Case in point, I don’t use nginx.

I like photofield because it’s a single binary (thanks, Go) listening on a port. I proxy what I need to it, and let it run.

Final note: I’m not knocking Immich, or the people who run it. I just think it’s lazy to distribute software with Docker because it encourages devs to write what I consider to be poorly designed software (E.g. Software with hard coded paths as strings, because everything is expected to be in the same place on every system - basically very rigid defaults). As a guy who knows his systems well, it annoys me I can’t manage them my way and need to run a nebulous docker container set up by some web developer. (some shade thrown there, my bad)

You don’t have to agree with me, I’m Don Quixote and this is one of my windmills.

Replying to @⁨potustheplant@feddit.nl⁩

That entirely depends on what your threat model is. You may not get any value out of that feature, but others may want it. One reason may be ease of storage drive disposal upon drive failure; i.e., if your drive is unencrypted and has your personal photos on it and it fails, the data is still recoverable with no easy way for you to destroy the data. If it was encrypted at rest, you wouldn’t have to worry about it because you would only have to rotate the encryption key.

Replying to @⁨notfromhere@lemmy.ml⁩

Well, if you’re storing data you care about on your server you kind of need to have redundancy. The best filesystem for that (imo) is ZFS so yes, you should use that (or something similar). Apparently you do use a “scalable storage solution” but you also seem fond of mystery.

If one of the raidz drives is removed from the array, and you’re not encrypting your datasets, someone could recover data from the drive.

The solution is in the question. Just encrypt the dataset.

Replying to @⁨hexagonwin@lemmy.today⁩

I don’t want to run a separate database or anything complex, so things like Immich or Photoprism are not an option.

Why not just use podman and let it handle itself? Unless you’re planning on hosting like maybe several million photos, I doubt you would ever need to manually set up a DB.

Just download the compose file, add your photo directory paths to it, and let it start and never think about it again until you feel like updating for some new feature months later.

Replying to @⁨hexagonwin@lemmy.today⁩

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters Plex Brand of media server package ZFS Solaris/Linux filesystem focusing on data integrity nginx Popular HTTP server

[Thread #110 for this comm, first seen 22nd Sep 2026, 20:50] [FAQ] [Full list] [Contact] [Source code]