cross-posted from: https://kbin.melroy.org/m/foss@beehaw.org/t/1225798
After: ~1,337 days, 271 releases, 78,000 stars on GitHub, 1,558 contributors, 31,500 members on Discord, 36,000 members on Reddit, 68 languages on Weblate, Surviving the controversial announcement about joining FUTO, Having overwhelming success and support from the community with the product keys model, Launching the Merch store, Attending our first FOSDEM, …and before the release of GTA VI We are thrilled to announce the stable release of Immich! 🎉
I’m really excited about such a large project adopting semver! I never got the trend for software without a need for rapid release cycles adopting purely time-based version numbers.
I was planning on starting to host my own Immich server for my family. Like I did for other futo projects, I paid, even if there is no technical reason to. Does anyone know what the “sever key”/“client key” thing is? I’m imagining that a client key is what goes in the immich android app, and a server key is what goes in ther server admin console?
The thing is that if I want to be considered as someone who uses FOSS ethically - and I’m hosting for my family - I don’t want each of them to purchase a client key… In my eyes - purchasing a server key in that price should at least give me some leeway, and the small number of clients I plan on supporting would not be considered unlicensed…
It does https://immich.app/blog/immich-product-keys
But as far as I understand the key doesn’t really go anywhere, it’s just a fancy way to suggest a donation. (And there’s nothing unethical about using FOSS without paying or contributing back in any way)
Why are their official communities on Reddit and Discord? Why not a Mastodon or Lemmy community?
We aim to introduce additional paid services (not paywalled features, as we will never implement paywalled features), which will help support the project and that enhance self-hosting, making it easier and more reliable. First among the many services already planned is an end-to-end encrypted, off-site backup and restore feature, built directly into Immich. This will enable a buddy backup feature as well.
I love this.
Free features, but offering actual useful services for self-hosters (encrypted cloud backup). Great business model for a project like this.
Having their own flagship instance, like Ente, would go a long way toward providing funding. I bet Ente is making a whole lot more money.
They said they will do that in a FUTO video I can’t find right now.
Cool!
It sounds great, but Immich wouldn’t be the first to go back on such promises when it becomes convenient. Hopefully thanks to funding via FUTO it might not ever happen, but who knows. Appreciate they write it out, but it is not like that is legally binding.
Home assistant is still clean years after introducing nabu casa
Yeah this sort of bitwarden / nextcloud funding model is great IMO.
What is the difference between a paid service and a paywalled service in this case?
If you don’t want to pay Immich for backups, you can take care of off-site backups yourself using tools like rclone to your hard drive or any off-site storage of your choice. A paywall here would be not allowing offsite backups at all unless you pay Immich.
I sync with syncthing to an 8tb hard drive at work. Then backblaze that ish.
A paid service is something that is going to have running costs on the side of the provider. E.g. the cloud backup means they need to buy/rent storage space. If they were to do something like a service for remote machine-learning (for people that do not have the hardware to properly do that) that would be a running cost of renting gpu-time.
A paywall is a feature that would work perfectly fine without any external factors, but its blocked because you didn’t pay.
Some nuance is needed of course. Often a paid service could be self-hosted (thats why I love being able to self-host the machine learning in immich, with a different design choice that could’ve totally been a paid service).
The absolute irony… I’ve used Immich for nearly 2 years without fail; it’s never skipped a beat. Today I update to the stable release and my Immich mobile app now has a sync error warning. This is the first issue I’ve ever had.
EDIT: Phew! Clear File Cache in mobile app has sorted the error. For a moment I thought the universe was against me.
No such trouble for me, thank goodness
Yeah i cleared data and relogged. It’s just easier that way lol
God damnit, now I need to set up k8s and install it.
I’ve been putting off moving out of Google photos for years. No, no, I shouldn’t spend the time to host it. It has that scary banner.
Way to ruin my weekend! /s
Congrats Immich Team! /and if you’re listening, thanks!
There’s a really nice Google Take-Out parser for immich that will preserve all your meta data during import. It was kind of a dream to use, it worked so smoothly.
In my case, I moved about 100k photos and videos, and I’m still periodically finding old flash drives and SD cards laying around that were never imported, so im using the migration to catch up on decades of photo archival. So far, all good.
If you have linux on machine(s) k3s/rke2 is pretty easy to get going.
I was going to finally do k0/k3 or something kubernetes to set it up. I managed to get it going scalable with just docker swarm. So the kubernetes procrastination survived another deployment!
K8s prob overkill if it’s just you and your family
Whew… I was thinking it may have been a requirement now.
K8s is pretty cheap for fault tolerance
Two VM’s and two Pi
If my wife decides whe wants to watch the wedding video or the kids first TKD break and it’s down, she’ll clamor to move back to Google/Apple. I can also move my piholes over there and some of my arr stack.
Resillient hosting for zero cost is pretty hot.
If fault tolerance is what you’re looking for I’d suggest a minipc over a pi, specced higher for the same cost and muuuch more reliable long term in my experience
The nodes go on x86. You use the pi’s for control planes. They sit around doing pretty much nothing until a pod get’s wrecked or upgraded then they spin a new one. You use 3’s or 4’s clocked down to save power.
You really only need one, but for $50 two gives your fault tolerance, fault tolerance.
Ok I’ll ask. I’ve been doing containers for a while now. My day job is in virtualization/networking/storage so this shouldn’t be that hard. But I just can’t get my head around kubernetes. Between work and home I have enough hardware to choke a robotic horse so that shouldn’t be a problem. Are there any good resources to get me started?
When I started with it, I looked through references all over and just felt f’ing lost, and I do this kind of stuff all the time. I am intimately familiar with AWS and Azure, but setting K8S up is just very different than the normal stuff we’re used to. I’m big on installing a package and screwing with it until it works, but this doesn’t work like that.
At the risk of being criticized here, and I’m very sorry if you’re strongly opposed to AI, consider asking ChatGPT or Copilot to guide you through setting up Kubernetes step by step. Out of desperation, I figured I’d give AI a shot, and for the most part, it was really great at teaching it to me.
Ask it to give you the different options for setting up Kubernetes on your home lab (there are numerous ways to do this). You can save a lot of steps by using something like Rancher (k3s), which is a simplified version, but I prefer starting with the official kubeadm first. It’s harder, but it gives you a better feel for what’s happening, and it’s more capable and closer to what you’d experience when crafting a production deployment.
Indicate your level of experience in the next prompt and specify which systems you’re familiar with so it can tailor training to your existing knowledge and play to your strengths. Ask it to make a lesson plan first, and then pick what items you want it to walk you through. If anything feels weird or you have questions, stop it and ask away. You’re working on something from scratch, so there’s little to lose if it gets something wrong, but honestly, teaching technical things with tons of documentation available is probably the best use of LLMs that has ever existed.
If you decide against AI, focus your research on Docker cli, Kubeadm installation (the control plane/controller) and creating/joining nodes, persistent storeage and networking, K8S Namespace, then pod deployment. Complicated parts that might hang you up are getting logs from PODS that die on startup, and getting interactive prompts in a cluster are a little different than Docker (have to specify namespace)
For persistent storage, you then have numerous options. For a homelab, I like Longhorn; it’s a RAID-like system that stores data blocks across the nodes, and it easily backs up to S3 if you want it to.
For homelab learning and testing, I just crapped out a Proxmox and started 3 VMs, setup kubeadm on the control plane and then joined two nodes, then spent I an hour getting NTFY to run in it for the first time, I really should have done a python hello world, NTFY is fiddly. But, it’s super fun to stop a VM and watch the app come back up like nothing happened.
Once you get a base system up, whatever you choose, do check out https://www.ansibleforkubernetes.com/
Jeff Geerling did a bang-up job on the book, and it supports his cause. It just doesn’t go into the detail you need to get started with k8s.
Two nodes doesn’t provide quorum
1,337 days
🫡
And before GTA VI.
Love it. Lol.
Leet
I really like where immich is headed. Bought a license last week and finally deleted Google Photos.
You mean you deleted App-Which-Shall-Not-Be-Named?
Edit: I’m just using the same terminology they use in their docs…
Awesome! But damn, I just installed
v1.144.1
last night to play around with it. 😁If you’re running it via docker compose it’s trivial to upgrade, and there are no breaking changes. Pull, down, up, you’re done.
Iirc, 2.0 is more of a symbolic release rather than any big changes
Bro 2.0 came so fast I didn’t even have time to do 144, like why did they even bother releasing that when 2.0 was coming the very next day lol
Different release news
Only missing the workflows for my family to adopt it!
This is fantastic to see, but I recently moved away from Immich with heavy heart because of a simple issue.
I have a very minimal setup with just a RasberryPi and an external hard drive, I don’t need to access anything from outside my home so it is not setup to be accessible via internet, just Wifi.
Since I am not home all the time I set it up that the hard drive goes to sleep after an hour or so of inactivity. It is not unusal that this means it gets to be in sleep mode for 8-10 hours once or twice per day, which I’d assume is better for its life expectancy.
Since an update this year though something changed for Immich, I think it was connected to the postgres database… sorry, don’t remember fully since this was like 2 months ago. It would keep checking or writing on the drive and thus keep it awake the entire day. 24/7.
I found some issues on github that mentioned this from months ago and they didn’t come to a good conclusion how to solve this, so unless this is adressed I cannot use Immich, sadly. Putting postgres on the SD card instead would probably suck for how long that one will be alive.
Edit: if anyone is interested, here is one issue I found on github that describes this https://github.com/immich-app/immich/issues/15918
Edit2: found another https://github.com/immich-app/immich/issues/11569 Apparently it was healthchecks and I didn’t test if that would solve the issue for me, I might try again with a small setup.
Your’s is an interesting edge case but maybe the best solution is keeping a folder full of pics on an external drive and plugging it in only when you need it?
it gets to be in sleep mode for 8-10 hours once or twice per day, which I’d assume is better for its life expectancy.
It’s actually the opposite.
How so?
Spinning up and down puts parts under more stress than simply spinning constantly, assuming vibrations are minimal. Basically repeated changes in velocity are bad for mechanical parts, compared to just spinning at a constant rate.
Thank you for giving an actual answer. But this makes me wonder, there must be some middle ground where spinning it down is not worse than keeping it running. E.g. only spinning down and up once a day or once every few hours, is there any data for that you know of?
Hard drives are so variable and failures so unpredictable, I bet you can’t find that information. Most of the actual data about hard drive failures, like Backblaze’s reports, are for drives that don’t spin down.
That said, spin-down has always been used for saving power, not drive lifetime. I would generally assume spinning down never extends lifetime. Even in the case of an external hard drive you plug in once a month - it is very likely going to fail earlier than the drive spinning 24x7.
Also, I wouldn’t shy from keeping the database on the same, fast storage as the OS, even if that’s flash. Move to an external SSD when you can. HDDs have such long seek times.
Also, I wouldn’t shy from keeping the database on the same, fast storage as the OS, even if that’s flash. Move to an external SSD when you can. HDDs have such long seek times.
Very much true. I installed Immich on my dads Synology for him and compared to my own setup at home the speeds are abysmall (it even crased a few times during the first indexing and ML run). I suspect a major part is that the whole os runs on an hdd.
If you put the database on an sd-card just ensure you make frequent backups somwhere else. I wouldn’t trust flash storage to keep my data safe.
Welp, TIL, thanks everyone for the useful detailed answers.
Hard disks are designed to do one thing and that’s spin, keeping a disk running 24/7 is the best case scenario for it’s longevity
It is worse for life expectancy.
Cool beans.
Yahoo! Congrats to the Immich teams and developers!
Ooh this is great news! I guess it was both an entertaining experience and a chore at the same time bumping the server version every once in a while to keep the mobile app functioning.
Huge props to the team, it’s one of the best pieces of software I’ve used in quite some time.
I’m excited for the roadmap of better sharing, group management and improved ownership. Unfortunately in its current state having a shared “family” library of pictures next to personal pictures is only possible with various workarounds (and all of those have significant downsides). Until then I’m just using it for myself, but it’s been great so far.
Indeed, it’s the top issue for number of comments: https://github.com/immich-app/immich/issues/12614
That and this one are really what keeps me stuck in “evaluating”: https://github.com/immich-app/immich/issues/165
Right now, immich just points at a read-only copy of my pictures for trying things out. Nextcloud copies the pictures off device and then deletes them locally -necessary for family who always take long sports videos.
Does Immich still require you to store all user photos into the same central directory?
I can’t move my family from Synology’s offering until I can be sure each users photos will be backed up to their own accessible drive.
Is external libraries maybe what you’re looking for?
This is how I do it. I don’t let it move my files.
I think they’re organized into individual user directories (in one location), so could probably set up a directory backup per user to their own device if so desired.
Each user has a subdirectory, I dont see a reason you couldn’t symlink them so they actually reside on different drives.
I saw a Linux program that could let you setup a virtual mount with different rules for where each folder actually physically pointed to - like symlinks but with much more customisation. You might be able to use that to setup Immich to save different users to different drives
You can store uploads on a different drive if you want also.
A couple of questions for those who have used it. Does it back up the video snippet portion of the live photos? Does it have webdav support so I can backup to pcloud? Can it backup to multiple places, like my local harddisk and the pcloud storage?
Does it back up the video snippet portion of the live photos?
Yeah it works great for live photos I take with my Pixel. Should work for iOS ones too.
I can confirm it works for iOS ones, and they play on non-iOS devices as well
Don’t think it has WebDAV support but you can use rsync to back up to pcloud. That’s how I handle it.
Also, by default when you upload files to Immich it creates it’s own directory structure but they have Storage Templates you can enable/customize to make it more human readable so the backups are more useful if looking at them without Immich.
Another option of you want more control over the directories themselves is External Libraries… but I don’t believe uploading works with them, so you’d have to manually manage them outside of Immich (which kind of defeats the purpose IMO)