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!
immich has been super simple and easy for me, haven’t had to touch it since setting it up
You can’t use immich, but you’re thinking of rolling your own solution!?! What?
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 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…
Does this suit?
Bumping this
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.
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.
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 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.
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.
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.
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.
You can try Sigal or Piwigo.
I refuse to use Docker to install applications, so Immich was also a no-go for me. I settled on using Photofield, it’s been pretty great: https://github.com/SmilyOrg/photofield
Why would that write off immich? Docker compose is a recommended installation path for it
All of its install steps other than docker compose are still containers, or relate to hosting services, or specific managed platforms.
I’m a simple admin who likes to compile, copy to
/usr/bin, prep my system user, populate a directory in/etcwith all necessary configs, and write my own.servicefiles.If you like running single binaries in their own Docker instances, more power to you, but it rubs me the wrong way when people try to force that on me.
NB: I’m not above reading a Dockerfile and executing the steps manually, case in point: that’s how I build
lemmy_serverfor my current instance… but the Immich steps are waay too involved, with too much of the software expecting some less than sane defaults for me. I went through it once, left a bad taste in my mouth, so I stopped using Immich.Edit: Just to be clear, here’s the installation steps for Photofield. That’s what I like to see. “Download a binary, run, config lives at xxx” - delicious. I also don’t mind doing a
./configureandmakeif they want me to - just don’t bloat my system with an entire duplicate OS.What about podman quadlets?
Dunno about immich, but photoprism also has a bunch of CUDA libs that would otherwise be a pain to maintain specific version sets on the host.
Even though this kind of proofs your point as this script is really long. I just wanted to recommend the community script install source as a good starting point for installing more complex software baremetal. immich-install-script
I misread your comment and thought you said you do run docker, i get where youre coming from
If you’re using Arch, Immich is in the AUR, that’s how I’m running it bare metal.
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.
Yeah, I get it. I do think containers encourage lazy integration - could be hard coded paths, or things like leaving
aptin there, so no worries.
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.













