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!
I just use a SSHFS mount with Thunar.
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]
immich has been super simple and easy for me, haven’t had to touch it since setting it up
Does this suit?
Bumping this
You can’t use immich, but you’re thinking of rolling your own solution!?! What?
Immich and use Immichframe to cast it to a raspberry pi with a screen. That’s what I do and it’s awesome.
I recommend Ente, they have a self-hosted option. https://ente.com/
Any reason to pick this over Immich?
I’ve never used Immich so I can’t speak for or against it. When I started down the selfhosting road, I found Ente first, that’s all.
That’s a bit odd considering how much more popular Immich is, but ok.
Looks like Ente supports end to end encryption and Immich doesn’t.
Does that matter if you’re self hosting and not exposing it to the internet?
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.
If you’re using a raidz array (which you should) the data would be irrecoverable anyways when you dispose of a single drive, wouldn’t it? Also, why would you throw away a server drive that still works?
Why should I use a raidz array? I use other scalable storage solutions. Encryption at rest is a standard core tenant to cybersecurity. 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.
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.
Immich works really well. Don’t fear the database. Docker makes it all super easy too.
Alternatively, Plex manages photos ok-ish.
I don’t understand why the OS and file system don’t constitute, themselves, a database. Over the years I have spent a lot of time organizing my photo names, folders, and labels. I want a display service that will take advantage of that, not change it, and update immediately to any changes I make to it.
They do; just not optimized for that task
I really don’t want another complex service i have to manage. ideally i want something that’s a simple python/perl/php script or something like that.
forgot to mention in OP but I run freebsd on my server and it’s possible to run docker(podman) with linux emulation if it’s very necessary, but i prefer not to use it
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.
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.
no, it’s more about that i don’t want a separate linux installation on my freebsd server, all with its meaningless 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.
You want a timeline feed viewable via web and an app. Immich does that. I don’t get it.
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.
it’s not that the deployment process looks hard. it’s an extremely complex piece of software, something that only provides “container” (read: full linux image) method for deployment because it’s too complex to install manually. if something ever goes wrong inside that container, i won’t be able to fix it.
It does nothing but serve photo. Background tasks are minimal and many of them only run once on new photos.
yeah, it’s only job is to serve photos yet it needs a whole linux container to run… i get why some people like it but i said it’s not what i want.
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.
You’re likely not going to find something so simple and lightweight. Immich has some setup, but if you want a good gallery that’s the way to go. Don’t be afraid of the learning.
Another vote for Immich. Running it with docker compose is trivial. Been using it for 2 years now and it’s been glorious. Running it without docker would take more setup, not sure how complex.
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.
because i don’t want to use podman/docker? if you read the OP and the rest of the thread you wouldn’t have posted this comment…
I read the OP which is why I asked the question, not the entire thread just to figure out that you don’t want to use containers.
I don’t think you are in the wrong here. You clearly stated your wants and so many replies here have simply ignored what you have said. The response to your post has been strange
i’m starting to think these people either don’t read the post body and only the title. or they’re bots? lol.
really don’t get it. they’re probably not paid to shill immich or something…
I’ve been using Immich for a couple of years now, and I really like. Nextcloud is good, too.
TinyWebGallery?
this might actually work. thanks!
PiGallery/PiGallery2 , Photoview, HomeGallery, lychee, or thumbsup might be up your alley.
Personally I use Immich and ImmichFrame.
PiGallery is what you’re asking for, but you should consider Immich, it’s very simple to setup and you’ll get tons of features more that are extremely useful. I get you want something simple, but I don’t feel Immich is hard to setup or maintain, and it’s the difference between a simple photo gallery and google photos.
I’ve been using PiGallery2 for this https://github.com/bpatrik/pigallery2
But I do deploy via docker.











