Rendered at 12:28:15 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
p4bl0 3 hours ago [-]
I teach a free software development course to my undergrad students. It's really exciting to stumble upon one of the work they did for my class in the wild (it's the first listed bug fix — which is the last of the three pull requests this student got merged in Immich during my course). I feel so proud! :)
ciefa 1 hours ago [-]
Naww, that's awesome! gj :)
FabCH 5 hours ago [-]
A lot of people talking about encryption in the comment section, thought I would share my setup. I have been running Immich for family and friends on a Hetzner auction server for about 1.5 years now.
Hetzner community provides official full-disk encryption documentation:
Letsencrypt gives free reliable SSL. You can easily hide Immich behind Nginx proxy that handles SSL for you.
Add cron based automated backup of the entire Immich data to a local encrypted NAS and there you go. Reliable, end-to-end, encrypted at rest setup. So far, it required exactly 0 maintenance.
It’s also more secure because I just drop traffic from all but 3 geographies at the IP level. And you can also add a WAP on the Nginx proxy.
It is also more more secure than Google/iCloude because the „employee of the company“ attack vector is much smaller. It’s documented that Google looks at your photos and is perfectly happy to file false police reports:
https://www.eff.org/deeplinks/2022/08/googles-scans-private-...
By comparison, yes it is theoretically possible for Hetzner employees to access my server physically and extract the encryption key from RAM, or setup a fake SSH server to try to steal the key, but that is far more complicated attack and hasn’t been documented yet. And it risks detection.
TalkingCodeMonk 3 hours ago [-]
FYI the setup you mention is not "end-to-end" encrypted. E2EE means client-to-client encrypted, with the server processing encrypted bits only. Your approach is encryption in transit and at rest. At rest is relatively irrelevent for large cloud providers, as they are probably better at managing the lifecycle of disks than most businesses or people. It's unlikely someone's going to physically rob a data center or end up with a refurb drive that hasn't been thoroughly processed and wiped.
It's not necessarily more secure than managed providers either, simply because you are probably not a security engineer, and have far less resources to secure your server. It does prevent Google/iCloud from scraping your data, but it certainly does not mean Hetzner can't access your data. They control the overarching hypervisor and control plane managing your servers/VM's, so there's no way to know what capabilities have been implemented. The majority of what intelligence agencies are capable of has not been leaked or documented publicly.
FabCH 1 hours ago [-]
I do happen to have some experience.
For 99.99% of the population, does the threat model really include targeted NSA attack with higher probability than „Google’s automated system sent the police to my door“? No, no it doesn’t.
It is demonstrably more secure for even a semi experienced sysop to host Immich for their family than for them to use Google/Apple.
But I do agree that _some_ experience is required.
sylens 2 hours ago [-]
This is not end to end encryption. There is nothing stopping you (or Hetzner) from accessing your family’s data, as one the disks are mounted to a host they are decrypted and available for use.
True E2EE would be that all data on those disks is encrypted by the client your family uses, so even if you combed through the disk volume you would only see cipher text
FabCH 1 hours ago [-]
This is only true if you are so highly individualistic you don’t consider a family unit as a single entity.
If you consider nuclear family as an entity, it’s e2ee. Practically.
Putting aside the fact that yes, the server can be compromised if somebody chose to attach to the live RAM and recover keys. But practically, nobody will. Same way Google will not deliver a special compromised image of the mobile app on my phone, even though they completely can.
logged4upvoting 4 hours ago [-]
I see e2e encryption over photo galleries a must since is a way of protecting yourself against misconfigured servers, future exploits or unpatched software.
internet_points 4 hours ago [-]
how much storage and how much do you pay Hetzner?
FabCH 1 hours ago [-]
Prices have jumped considerably, but basically anything on Server Auction is good https://www.hetzner.com/sb/
I pay 60/month for 50 TB with a 10 year old intel xenon.
slaye 6 hours ago [-]
An incredible piece of software, on par with Google Photos. I've been using it behind Tailscale for months with no problems ever since I first got into homelabbing.
Actually, moving from Google Photos to Immich after I hit my 100GB storage limit was the whole reason I got into self-hosting, and what a fun ride that has been!
I can't believe self-hosted products of this caliber are free. Huge shout-out to HomeAssistant, PiHole, paperless-ngx, Dawarich, and countless others for the same reason.
Congrats to the team on the release and thank you for helping me catalogue my personal memories
Valodim 5 hours ago [-]
Please buy a license if you are happy with the project :) it's free, but you can still buy a license for a small amount of what you saved
fnands 4 hours ago [-]
Good point. Will do so as well. I've been using it for about a year now on my NAS. I basically set it and forget it, and it has just worked.
slaye 5 hours ago [-]
Done! <3
rrvsh 4 hours ago [-]
I would say at this point it's better than Google Photos!! The team is absolutely amazing, and I agree that it's astounding to see IMO the best (general purpose) photo app out there being open source
vividfrier 3 hours ago [-]
[dead]
AussieWog93 12 hours ago [-]
So many comments here about missing end to end encryption, but seriously - why would anyone want this?
Lets say burglars break in and steal your homelab. Because you don't have e2ee, they can see all the photos you saved of your dead grandmother! Oh no!
Or, in the more likely scenario that something happens to your phone, the lack of e2ee means that even if you lost your keys you didn't lose the only memories that remain of your grandma - you just copy across the .jpgs to a new device.
eddythompson80 9 hours ago [-]
It would make hosting a "Family and/or friends" instance possible.
I do go back and forth on the accessibility tradeoffs of E2EE for average people though. In this scenario, lose or forget your key/password and you lose ALL of your photos which are very important to some people. Losing them is pretty catastrophic. Google Photos or iPhotos really gives people a sense of security about their photos.
ps: It would also make it easier to host cloud instances for Immich without encrypting the file system of a remote server/VPS. Especially when renting servers from small-time sellers, I'm always weary about how much I can really trust their employees access control. I know some level of trust is unavoidable with physical access, but how do they handle those disks during maintenance would also be relevant.
bjackman 5 hours ago [-]
I really don't think you want E2EE for this. I host storage for family and friends, I haven't set Immich up yet (don't think I'd have space for everyone's photos) but the choice is between:
1. "Hey just so you know, I have access to everything you upload here".
2. "Do NOT lose your password or your data will be GONE FOREVER and I CANNOT get it back".
I definitely prefer 1 and I'm sure my users do too. They shouldn't upload it if they didn't trust me anyway.
In my case I follow it up with "and I might actually go digging around in your files if I need to debug something or you're wasting disk space". But I think you could also follow it up with "but I do promise not to look" and that would be valid too.
This whole thing only makes sense for people you're pretty close to.
(I do tell people not to back up their password managers on my system though).
I guess maybe for Immich specifically it would be nice to have a "vault" feature where people can upload nudes etc where they are willing to trade risk of loss for privacy on a per-photo basis.
palata 4 hours ago [-]
I do agree that this is a use-case.
Now a use-case for E2EE is if you want to host it on a VPS, I would say. I wouldn't trust the VPS with the photos of my friends/family.
bjackman 7 minutes ago [-]
Ah yeah I see. I guess the fallback there would be to split the service up into a remote encrypted storage layer that goes on the VPS and then host the actual service (with the decryption keys) locally?
But ISTR reading Immich kinda assumes the storage is on a plain local filesystem so you get perf issues if you do something clever under its feet. Could be out of date on that.
eptcyka 1 hours ago [-]
You can run it on an encrypted volume on a VPS. Technically, it is also possible to use confidential VMs, but I have not at all kept up with those developments these days. Confidential here means that the SoC/CPU provides the ability for VMs memory to be encrypted with a key that the host never has access to. There's also remote attestation for it. I personally like e2e encryption at the application layer in some applications, but I personally do not think that it'd be practical for immich unless they also do confidential compute for the classifiers and identifiers. That is something Apple can do because they have the capital, not an open source project.
pydry 3 hours ago [-]
You can host a family and friends' instance on your own hardware.
I have a small vps which just tunnels into a laptop running at home.
Half of the features of immich would become 10x harder to implement if encryption needed to be done client side.
drdexebtjl 9 hours ago [-]
I think the point of E2E encryption is that you could host it with a cloud provider and the provider would not be able to see your data. Kind of like how Proton Drive claims it does not know which files you have.
This would force features like semantic search, face detection, video transcoding and thumbnail generation into the clients instead.
Immich assumes trusting the server to have access to your photos is fine. That is always the case when you’re self-hosting.
And I think that’s reasonable, since most users give that trust to Google and Apple.
TalkingCodeMonk 9 hours ago [-]
Seriously! How do techies and devs of all people not understand that the cloud is someone else's computer, and that the best way to prevent leaks, exploitation, or abuse of user data is to prevent anyone from being able to decrypt it but the end users themselves.
IMO this is the single greatest problem with the selfhosted community; the idea that E2EE is only necessary for passwords and other highly sensitive PII. It should be standard for anything hosted on someone else's computer.
You might argue it's not neccessary for cat photos, but mistakes happen and you can accidentally upload things you don't intend to. You might argue it's not neccessary for games, ebooks or other copyrighted media, but the cloud provider could scan and delete anything you own that matches a hash of copyrighted material, at any time. You can accidentally paste a password, or other sensitive piece of text, into any text field of any website or application, and have it distributed to computers around the world.
E2EE can mitigate against numerous attack vectors, and reduces the surface area and blast radius of most attacks. That also applies to your own computers, if someone steals your hardware or hacks into your network. It is vital in the age of AI where all of your data could be exploited for training and profit, or used against you. The only data that should not be E2EE is situations where it is technically impossible, or the data is explicitly shared as "public" (e.g. the clearnet).
konart 7 hours ago [-]
> It should be standard for anything hosted on someone else's computer.
As long you understand the risks.
I'd rather have my family photos beying unencrypted than a very good possibilty of loosing them which happed more than once with other e2e things simply because I have no key to decrypt.
Then again - if I have to chose I'd rather have the at my home lab.
reorder9695 3 hours ago [-]
I'd personally rather have E2EE and periodically back things up to an encrypted hard drive so any losses aren't catastrophic, but I am probably more cynical than most in my trust of companies/other people with my data and am technical so understand the risk model both ways better than most people.
TalkingCodeMonk 7 hours ago [-]
Why is there "a very good possibility" of losing your photos because they are E2EE? Do you not use a password manager and backup your data?
There is no reason why E2EE services can't provide recovery or emergency access mechanisms, or implement plaintext export functionality from clients for storage elsewhere. Most reputable providers already have functionality to enable recovery and backup.
gf000 6 hours ago [-]
> can't provide recovery or emergency access mechanisms
> How do techies and devs of all people not understand
I find it interesting to start with this, and follow with:
> There is no reason why E2EE services can't provide recovery or emergency access mechanisms
If the service can help you recover your data after you lose the key, it means that they have the key, and therefore it's not end-to-end encrypted.
That's the whole point of E2EE.
TalkingCodeMonk 3 hours ago [-]
> That's the whole point of E2EE.
No it's not. The point of E2EE is that only the client apps decrypt/encrypt content, and the server just processes the encrypted bits. Most E2EE service providers do this by encrypting your encryption key. That's how you can login on other devices without you having to store and import an encryption key every time. When you login they send you an encrypted blob that contains your encryption key, which is decrypted client side, then the key is used to decrypt your data locally on the client. This does not break E2EE, but it does mean you have to trust the provider, which is why most of them are entirely open source.
Sharing and emergency access also use similar public key cryptography techniques to provide shared access to E2EE data. A similar principle applies to your phones encryption aswell, and is the reason you can wipe/reset your device in seconds, instead of minutes/hours. They only wipe the encryption key; not the encrypted data.
mr_mitm 1 hours ago [-]
In a recovery scenario, you don't have the password or whatever you used to encrypt the key.
And again: the whole point E2EE is that you don't have to trust the provider. Open source in general doesn't help you here because you don't know what software or which version of the code the provider is running. Your only chance is to run open source client software, review it to ensure E2EE has been implement properly, then you don't need to trust the provider.
Either the provider knows the secret, then they can help you in a recovery scenario, but then they also can read your data. Or they don't know the secret, in which case they cannot help you in a recovery scenario.
drdexebtjl 8 hours ago [-]
I don’t agree E2EE is right for everything, and especially not for a personal photo library.
I don’t want to hold the keys to my photo library on someone else’s computer. I want to actually have all the bits and all the hardware in my house. I want to have access to it even if the Internet ends.
gf000 6 hours ago [-]
Especially that it would come with the loss of quite a few features, or at least a significantly worse way to implement them.
Like if you have to bring the data to your client device to do any kind of processing, you are quite bottlenecked when it comes to bulk operations (e.g. searching).
Sure there is very interesting research into managing that (homomorphic encryption), but I think it only makes sense on a Google cloud/apple scale. For a small, self-hosted app, I would much rather have my own hardware with FS-level encryption , or some kind of trusted compute as a whole. I don't think this has to be solved by an image host service.
eddythompson80 8 hours ago [-]
E2EE means the keys are on your own computer (or device or brain etc). The “someone else’s” computer is just hosting encrypted blobs.
drdexebtjl 7 hours ago [-]
I understand what it is. I still don’t want the encrypted blobs outside my control.
Sure, they’re useless without the keys. But the key is also useless without the blobs, in the sense that I don’t have my photos.
TalkingCodeMonk 7 hours ago [-]
Sounds like you want your photos on a unencrypted HDD, which you can do regardless of whether or not a cloud service is E2EE, so I don't see how E2EE is an issue...
Grombobulous 11 hours ago [-]
I think we can imagine a scenario where not all of our photos are non-sensitive.
I also imagine that a true E2EE architecture means you have more flexibility with cloud storage, managed hosting, and off-site backups.
AussieWog93 11 hours ago [-]
I hear ya, I was being a little bit over the top. But I really do think that for every one user who would turn on e2ee and get some genuine benefit out of it, there would be a dozen that turn it on because "encryption good" and accidentally lose all their data.
Grombobulous 11 hours ago [-]
True, e2ee is pretty scary as far as data loss.
Still, good application design can help mitigate that. Apple does it with their e2ee recovery methods, although Ente does rely on a recovery key that you should print out and put in a safe as well as store in other safe locations.
But also, what I love about the E2EE of Ente is that I can securely use a cloud hosted provider but then my home NAS backups are unencrypted.
The Ente desktop app has a continuous export feature where I just leave the application on my main desktop computer and it constantly backs it up to my home NAS. It also does the local machine learning and video streaming encoding processing on the desktop.
So, if I lose my Ente account, no big deal. I get another one and wipe everything and restore from my NAS backup.
I feel like this is the best of all worlds. I get cloud convenience and no real self-hosting burden along with solid ownership of my data.
Perhaps Immich doesn’t bother with e2ee since it’s primarily designed for self-hosting, while for Ente it’s meant to be suitable for both a paid cloud service and self-hosting.
sylens 9 hours ago [-]
Yeah Immich and Ente are going for two different use cases. While Ente can be self hosted, I view it as more of an escape hatch if they ever enshittify vs how I would start off using the service. I like not having to manage ingress for a photos service so my family can use it but others cannot
dddddaviddddd 6 hours ago [-]
I think the application layer is the wrong layer for encryption for immich anyways, I just encrypt the whole disk on my server. When _self_ hosting, there's no need to prevent access to files from the operator.
INTPenis 4 hours ago [-]
I agree, we used to have photo albums in cupboards, and they used to get burnt if the house burned down, or water damaged if the boiler broke, or even stolen. Now we have them digitally and we can back them up off-site. That's all the change I need with immich.
To fully encrypt them would just be inviting more problems.
dsego 4 hours ago [-]
This actually happened to me, without getting into the specifics, a family member with mental issues took all the childhood photo albums and burned them.
imalerba 3 hours ago [-]
I just want to be able to share my hosted service with other people and not have the responsibility of being able to access their photos. Me or anyone that happens to gain access to my server.
palata 6 hours ago [-]
To me there are two good products: Immich and Ente.
* Immich doesn't have end-to-end encryption, so I see it for self-hosting (i.e. on hardware I trust, typically at home).
* Ente has end-to-end encryption, which means I can host it on a random VPS.
Two different requirements for two different setups. E2EE adds some complexity, typically to set up a backup somewhere accessible. The fact that I have an unencrypted SDD next to my server at home that my family can grab and access photos is a feature to me: if I disappear I want them to be able to access them.
gchamonlive 10 hours ago [-]
If they steal your homelab, e2ee doesn't help, it's encryption at rest. E2ee is for rogue devices sniffing the network, which is more or less of a concern depending on your setup. I'd not have unencrypted traffic in my network if I had for instance those shady TV boxes.
onel 2 hours ago [-]
This. I think encryption is the job of the underlying operating system not the app running on top of it
drdaeman 9 hours ago [-]
That’s incorrect. E2EE means encrypted data leaves the device, stored encrypted, and server(s) have no keys to decrypt it, only your (or other) client software does.
gchamonlive 9 hours ago [-]
It's encryption both at rest and on transit. At rest there are levels of encryption, at object level or at filesystem level. E2ee for immich would mean the objects are encrypted and transmitting the data is encrypted. If the scenario is the server is stolen, you need encryption at rest. Even at FS level is enough.
AussieWog93 9 hours ago [-]
Not sure why you're continuing to argue, GP's right.
e2ee means that the encryption keys are stored client-side by the intended recipient. It's not just in transit and in rest.
duskdozer 33 minutes ago [-]
I've seen a lot of companies use "e2ee" to basically just mean encryption during transit, not even in rest. It's wrong, but I can see where this idea can propagate.
gchamonlive 8 hours ago [-]
Freedom of speech
maccard 5 hours ago [-]
e2e is not for rogue devices sniffing the network. TLS protects against that without any E2E.
hokumguru 10 hours ago [-]
TLS?
drdaeman 9 hours ago [-]
I have an use case.
I have a multi-region homelab cluster and I share some photos with my friends in the US and my parents in Russia. I’m auto-uploading full library (basically replacing iCloud/Google Photos) and I can share links to selected photos or albums (a reachable node will be determined by a split-view DNS). All without risks of exposing my full photo archive in case either node gets seized or otherwise compromised.
(Now, this is what I’m trying to do. I set things up, but it’s not really functional at the moment, because Ente is buggy af, and I haven’t yet learned how to rebuild and debug their iOS app.)
alper 4 hours ago [-]
Privacy extremists are always very vocal but most people do not care at all about this.
Maybe people have pornography production streams they want to manage using Immmich?
pydry 3 hours ago [-]
Im wary about having my PII hosted on vpses which I suppose makes me a privacy nut. I just host immich on an old laptop and use the VPS to establish a wireguard tunnel.
I think it's ridiculous to expect immich to rearchitect everything in order to make it better able to run on untrusted hardware. It should stick to doing what it is good at.
Gasp0de 6 hours ago [-]
You seem to be mixing up e2e encryption with at-rest-encryption?
If you have a server in your homelab where you self-host I mich just encrypt the hard drive with LUKS.
utopiah 4 hours ago [-]
Agreed. It's especially frustrating to read of extremely high standard (even though justified, I'm not suggesting it's OK to have a subpar experience) while most people just share everything and anything on Facebook, TikTok, SharePoint, etc and have no idea what permissions even mean.
So... yeah, sure, e2ee and encryption and all that but don't wait on perfection when the otherwise situation is pretty dire. It's only encroaching BigTech fueled by surveillance capitalism even more!
whalesalad 10 hours ago [-]
You solve this by communicating with it via encrypted methods, like HTTPS, and using a storage volume that is encrypted and gets unlocked at boot.
Cider9986 15 hours ago [-]
When I was switching to GrapheneOS from iOS, I decided to self host my photos. I considered Immich, but I settled on Ente because of the encryption. Ente Photos is extremely polished and it's comparable quality to Apple photos.
It's cool they keep the server open and selfhostable instead of only open clients like many e2ee projects do.
I like how you can share an album and anyone can contribute to it without an account. Another cool feature is that you can select photos to lock when you hand your phone to somebody so they can only see the ones you selected without your device unlock.
drdaeman 9 hours ago [-]
> Ente Photos is extremely polished and it's comparable quality to Apple photos.
If only. It can’t even upload photos any reliably (I self-host). I had it simply fail to upload anything for days (it doesn’t provide any diagnostics, gotta figure out how to build and debug it myself), with no apparent reason. That’s despite keeping app in the foreground, on a charger, for hours, with video uploads and ML features all disabled so it was supposed to focus on just the photos. Server side is fine, web-based uploads work without any issues, app just doesn’t. I haven’t figured it out yet.
Cider9986 7 hours ago [-]
Well I'm a complete newb, self-hosted it completely by just following instructions from GLM 4.7 (didn't log in) and it works reliably.
Did you try it with the free 10GB on their hosted servers?
I'm using Android so maybe it's different on iOS.
kristopolous 14 hours ago [-]
for people wondering:
"Ente Photos is a paid service, but we offer 10GB of free storage. You can also >>clone this repository and choose to self-host<<."
I've been bitten too many times - is Ente a commercial product that pays lip service to self hosting as form of marketing, but with friction to guide you towards the hosted version (e.g. rocketchat and many others) or does it genuinely support self hosting as a first class product?
sylens 2 hours ago [-]
The latter, it works quite well
satvikpendem 13 hours ago [-]
Ente Auth is also the best, because it works on any device, including the one you're trying to access (maybe it defeats the purpose of 2FA but sometimes I don't care).
Grombobulous 11 hours ago [-]
I use and like Ente Photos a lot but I’ve never understood the appeal of their other products.
Ente Auth and Locker both seem like limited feature subsets of solutions like 1Password.
Cider9986 7 hours ago [-]
Ente auth is a really nice secure and private cloud authenticator.
It's completely free and there's no lock in, so I suppose it's for getting more people hearing the name.
Haven't tried locker but I agree it seemed rather pointless.
People say not to use your pw manager for authenticator for security, so that's something for using a separate app. Depends if your using auth for just getting through or actually want the benefits.
Cider9986 12 hours ago [-]
Ente is a cool company, all their products feel polished and I like their marketing mascots.
mock-possum 12 hours ago [-]
I got into Ente because I wanted to create photo upload links on a per-even basis - I can tell all my friends, if you take pics or video tonight, upload it at this URL - and it just works. No app necessary, very simple, very cheap. Then from there, I got the photo backup / archive service because why not.
They really are pretty much just what they appear to be. Im a fan.
WillDaSilva 12 hours ago [-]
For what it's worth, Immich supports this too. You can create an album (for each event), create a shared link, allow public anonymous uploads for the shared link, and then give the link to everyone at the event, and ask them to upload their photos. It can be done from any web browser.
cevn 10 hours ago [-]
I would love to know if there's a way to secure this though. I'm not prepared to have people constantly trying to login to my immich instance so it's only accessible via VPN
sylens 9 hours ago [-]
You can use something like Immich Public Proxy to only expose the /share path of your server and keep the main /api path that has everything else behind VPN
oliyoung 14 hours ago [-]
Immich is such a no-brainer replacement for Apple Photos or Google Photos, combined with VPN like Tailscale, it's almost a drop in replacement
ivanjermakov 13 hours ago [-]
Beware that migrating back from Immich to iCloud/Google is not something Immich cares about. There is no "download all" anywhere, best way is to go to the server and get raw files from there.
They’re literally on a disk drive I can physically touch. I think I can figure out a migration strategy for that.
ivanjermakov 4 hours ago [-]
It's tricky with iOS. Plugging iPhone into a server is stupid. Adding server as a network storage in Files app is smarter, but downloading photos this way does not guarantee deduplication. Would be great if Immmich iOS app had a restore functionality as convenient as existing backup functionality.
mvdtnz 3 hours ago [-]
You migrate from the server, not the client. You seem confused about what Immich is.
vachina 6 hours ago [-]
This is symptoms of a chronically cloud-native brain. What is a file system?
Groxx 5 hours ago [-]
The immediately obvious and simple to handle on-disk format for everything I cared about was one of the things that convinced me to give it a try. Well-crafted exporters are great and all, but I really like being confident that I can convert it by hand even if the company ceases to exist.
Backups are easy too: you can very reasonably just rsync the library folder, and it'll be recoverable from that alone (I tried it! Worked great). You'll lose accounts and image-content search and iirc faces (possibly painful), but most of that is trivially rebuilt or not very interesting for single-person scenarios.
willcmcc 12 hours ago [-]
what do you mean download all? its your server over your files. If you want them, go get them! Or just point google / apple / whatever upload at your library directory.
Panda4 13 hours ago [-]
A download button would be great but the files are already stored on the device you can copy them with a usb or go on the device and upload it directly.
Maybe I'm missing something but the linked discussion has a link to a closed issue that links a PR that added the feature you say is missing.
mvdtnz 3 hours ago [-]
It's just files on a disc drive. Why do you need a button for this?
stogot 13 hours ago [-]
There’s no download all in apple photos either unless they added it
ivanjermakov 4 hours ago [-]
Yes, that's even more stupid! Best way to export photos from iCloud if you don't have mac is to use iCloud from the browser and bulk download from there, but it has a 10k files-per download limit! It also doesn't allow you to select all and partiton download this way, I had to manually increase selection until it's 10k and remember where I started.
konart 7 hours ago [-]
You can download all you Apple data now, including photos.
And yet, the same is true for Apple photos about ease of export:
If you set the pref to keep originals locally, they're all on your drive, in original form, as well as the derived versions including caches of raw to jpeg, resolutions, and edited versions.
That said, Apple Photos does let you export even if only in cloud. Open the library, select all, and File > Export ... > Export Unmodified Originals.
It pauses for a second or two on my quarter million images, but is then happy to comply.
Are there any side effects of leaving Immich public? I think people overestimate the risks. Just update your stuff regularly, follow simple rules, and set up something like CrowdSec. I know it's simpler to just use Tailscale and similar tools, but recently I see the trend that people don't even consider otherwise.
liotier 4 hours ago [-]
> Are there any side effects of leaving Immich public ?
Yes: it is necessary to share selected albums through public URL.
I'd throw it behind Wireguard, personally. Belt and suspenders.
(I keep meaning to look at it and keep kicking it down the road.)
paweladamczuk 6 hours ago [-]
That's what I do. I have Wireguard connected on my iPhone at all times.
LLMs became so good that I don't trust a codebase like Immich to have ports to my server exposed publicly.
I put everything behind Wireguard to limit the number of lines of code that might bring down my setup.
kouru225 4 hours ago [-]
I’ve been using photoprism. Should I switch?
domh 2 hours ago [-]
I'm in the same boat, and have been meaning to try immich but slightly worried about migration effort. Should I import fresh into Immich or setup my existing photoprism as an external library? I think the former is probably correct, but the latter might be easier?
Anyone have experience with this? I haven't done much modification or album creation in photoprism, so am happy to start from scratch on that front.
reddalo 3 hours ago [-]
Give it a try, Immich is truly wonderful. Rich in features, polished UX, it's now better than Google Photos.
chillfox 12 hours ago [-]
I only wish it would support nested albums (or albums in folders) so it could be an easy replacement for lightroom cloud as well.
I have all of my photos organized like this: `events -> year/month - holiday -> (album_1, ...)`. and: `home town -> year -> (album_1, ...)`. Photos will be in multiple albums, and there will be edits as well. And I need to track the picked/rejected state as well (and filter on it).
Only reason I haven't moved over to Immich yet is because I am struggling to map my photo organization onto it's way of doing things in a way that's nice. So far my attempts have been unwieldy.
Panda4 13 hours ago [-]
Is there any side effects of leaving the phone connected to Tailscale VPN all day?
cl3misch 6 hours ago [-]
I can only comment about battery life. It's proportinal to how much tailscale is really being used: If you use tailscale with an "exit node", i.e. all traffic is routed through it and it's working continously, it drains battery. If it's only used for services on your tailnet, e.g. Immich, the impact will be very small.
ctippett 9 hours ago [-]
I have a static route configured on my home's gateway that enables any device on my network to access Tailscale. I have Tailscale turned on my iPhone pretty much all the time anyway, but even if I didn't I'd still be able to access services I have hosted that are only accessible on my tailnet.
Grombobulous 11 hours ago [-]
If you are okay with internet exposure on some level, Cloudflare Tunnel is a really fantastic product:
It’s obviously not a magical security layer that eliminates all issues related to public Internet exposure, but in my opinion it is good enough for the average home user.
Oh good callout, I had only tried it for not-giant-upload services.
etnoy 6 hours ago [-]
[dead]
KomoD 12 hours ago [-]
Could impact battery usage, possibly?
But the way I do access Immich externally is not with Tailscale directly on my phone but involves exposing a caddy instance, running on a $1 VPS, to the internet.
If requests include a specific very long header (which I randomly made up), it then forwards those requests to my real Immich instance, which runs on my NAS. Headers can be configured within the mobile app. It has worked really well for me so far.
rmunn 10 hours ago [-]
Here's some data. Well, technically anecdata, I suppose.
My phone has been powered on but inactive all night; I charged it to 80% before going to bed, then unplugged it and left it where I can reach it from my bed, as is my habit. (I'm in an Asian timezone, in case you hadn't guessed, so it's morning for me while it's evening in America right now). Its battery is now at 73%. The Android battery report says 6% battery usage from Kindle (makes sense, I started reading a book when I woke up), 0.7% from Signal (haven't sent any messages yet today but have received a few), and 0.3% from Tailscale.
So when you're not using the Tailscale network actively, you'll hardly notice the battery drain.
enoint 9 hours ago [-]
On an older iPhone, my Settings shows 3% going toward Tailscale.
cevn 10 hours ago [-]
I remember having problems using tailscale vpn 24/7 and pihole on my home network with the phone pointed at the 192.168 address for DNS. Pages would take 5s to resolve and start loading.
Unfortunately, Pihole was less important than Tailscale and I have to put up with mobile ads.
thatsJustBadUX 8 hours ago [-]
If you're on Android and don't like mobile ads [Morphe](https://morphe.software/) might be worth a look.
kpozin 12 hours ago [-]
If Tailscale is on, I can't concurrently run a DNS-blocking local VPN, so I see ads in mobile Chrome.
Put a Pihole container on your homelab which you have the Tailscale exit node on and then set it as the forced Tailnet DNS.
anon7000 12 hours ago [-]
Could host it in the tailnet?
dawnerd 10 hours ago [-]
You can but it’s a lot slower.
dawnerd 10 hours ago [-]
I leave my phone connected 24/7 and don’t notice any downsides. Only have to disable it on some networks when traveling to make awful captive portals work.
ls612 13 hours ago [-]
No lots of people including myself do this for homelab access purposes it just works (tm).
cromka 6 hours ago [-]
I have a different bash with them than the lack of E2EE: they do not make it easy to import from other servicesvlike Google Photos or iCloud, which should be a priority.
They rely on immich-go project, which is ridden with bugs and basically abandonware by now. Their own iOS app, which can also be used for syncing iCloud gallery, has outstanding, 2 y/o or so bugs that will fail to upload the Live Motion photos.
My photos exported to Immigh have some 9000 broken, half imported Live Photos and I just don't have time to fix that.
The fact that THIS is not their priority, the most comprehensively A-B tested feature is beyond me. Who cares about OCR if you can't trust that they didn't butcher your imported memories? I just don't get it!
cuu508 6 hours ago [-]
> I just don't get it!
This is open source, volunteer developers often focus on doing things that are fun to them, or that scratch their own itch. I can't imagine dealing with Google Photos semi-broken exports is fun to anybody, and you only deal with the pain of the import once, afterwards there's no itch to scratch.
cromka 6 hours ago [-]
They make money on that, it's not just a hobby project
Valodim 6 hours ago [-]
Their business model is basically donations, it's not a for-profit operation. Maybe if you consider yourself less of a customer and more the beneficiary of a community effort, it'll be easier to "get"
cromka 4 hours ago [-]
Don't patronize me, my arguments still stand: they offer all bells and whistles while completely dropping the ball at making you feel those photos are well taken care of. The core employees live off of Immich so spare me the spiel.
MrDresden 5 hours ago [-]
The amount of entitlement on display here is astounding.
cromka 4 hours ago [-]
What entitlement? Did I say I DEMAND something? DID I? You can't criticize a free project because God forbid that makes you entitled?
And how do you know I haven't donated and don't regularly do so?
outime 2 hours ago [-]
If I had to guess, the last paragraph of your original comment comes across as very harsh.
gotbeans 5 hours ago [-]
In the same universe, I took a google takeout last week to migrate to immich, 12k photos/videos.
I set up immich backed by ceph last week and I got everything migrated via immich-go, with all metadata albums and all.
Had to change some parallelization option, but otherwise it was a breeze.
cromka 4 hours ago [-]
It seemed like that for me, too, until I realized my photos were botched. The only way to know that was looking into the logs: I have some 9000 photos which it silently fails to extract metadata from. The only sign in the UI that something is off is the fact those 9k photos never get processed, you can try in perpetuity. The logs reveal they were botched either by immich-go or iOS app, ffmpeg freaks out when processing them. After checking in the gallery they're indeed messed up.
Besides, having to use external tool you check out from GitHub is the exact opposite of what should be the priority I am talking about. Immich gives you that clean, very easy UX/UI, targeting every regular user as a real alternative to Google or Apple offerings, yet you can't easily and safely import your photos. That's inconsistent at best. Misleading.
troupo 2 hours ago [-]
> mmich gives you that clean, very easy UX/UI, targeting every regular user as a real alternative to Google or Apple offerings, yet you can't easily and safely import your photos. That's inconsistent at best. Misleading.
How do you imagine this wold work, given that there are no APIs for Google Photos or iCloud Photos to batch import them into a different service while preserving all data. At best you can work with the Gallery/Photos access on your phone.
troupo 5 hours ago [-]
> they do not make it easy to import from other servicesvlike Google Photos or iCloud
Because those services are closed black boxes that don't really let you access them except in a very roundabout way?
cromka 4 hours ago [-]
No. They're not. You export photos using Google Takeout, iCloud has something similar. And their own iOS app also has unresolved bugs because of which I can't fully import my gallery.
There's no "black box" magic here. Sure, there are some edge cases that need to be handled when importing the exported dataset, but it's all documented.
troupo 2 hours ago [-]
> No. They're not. You export photos using Google Takeout, iCloud has something similar.
So, they are black boxes that don't make things easy or convenient for people. E.g. Google Takeout separates images and their metadata. With people running into issues like this: https://www.reddit.com/r/googlephotos/comments/1lqx331/googl... (as comments point out, Google just randomly changes file names as well, which breaks import tools)
> Sure, there are some edge cases that need to be handled when importing the exported dataset, but it's all documented.
As in: it's not really documented. Those takeouts, iCloud and Google shenanigans etc. have been reverse engineered by people to work. Meanwhile for closest friends only Apple, Google and some of their closes friends provide a way to transfer libraries directly, without "takeouts" and workarounds: https://portmap.dtinit.org/
phikappa 19 hours ago [-]
There's a lot of things I spent a ton of time setting up, use once, and then never again. Tons of things that are easy to set up, and provide small benefits every day for a long time. Immich has got to be the thing that I've spent ages setting up, use extremely infrequently but the one time a year I use it I'm so happy I did. Great software.
darkwater 2 hours ago [-]
In my case I spent it not so much time setting it up, some time upgrading with some manual work required from time to time with breaking changes (but not so often) and I use it weekly, it just works and it's wonderful.
nickthegreek 16 hours ago [-]
Man, I wish my experience was as nice. I used the proxmox lxc for it and after a 2 months of organizing I had some corruption and didn't have the fortitude to get through the debugging. It might have been related to a big version migration if I remember correctly. It turned me off the stack. The upgrading wasn't as turnkey as I wanted it to be and I dont think the case is different today.
I just want to be able to organize my folders outside of some dumb library system and immich at the time fought that as well.
ravenstine 15 hours ago [-]
I'm not sure I will ever upgrade Immich again. When I upgraded to the next minor version (I forget which off the top of my head), the data migration corrupted my database such that no images would be served. Fortunately I had the old database backed up, so I restored it, rolled back to the older version of Immich, and things were back to normal. I like Immich, but this is not good for software that's beyond the first major version, and also handles archiving people's personal data.
drdexebtjl 14 hours ago [-]
> Fortunately I had the old database backed up
You say this as if it wasn’t Immich itself that backed up the database automatically next to your image files.
I think they’re one of the best self-hosted services when it comes to backup/restore — enabling it by default — and when it comes to migrations — no breaking changes in minor versions after 1.0.
Did you report this issue so I could try and reproduce it?
stavros 14 hours ago [-]
I had an issue where my thumbnails were borked somehow, so I deleted them all. However, I didn't delete the database entries, so they never got regenerated.
I ended up doing that manually, but it's great to see that is now a first class citizen in 3.0.0. I love Immich.
Saris 13 hours ago [-]
In proxmox restoring a backup is really easy, I'm surprised you didn't do that!
senectus1 13 hours ago [-]
if you have a PBS its just incredibly simple.
altran1502 15 hours ago [-]
[dead]
prudhvis 18 hours ago [-]
[dead]
totetsu 40 minutes ago [-]
I have a bunch of spare s3 compatable storage from a cloud provider which I would really like to use to run Immich, but everytime i look into it it seems not possible.
firen777 3 hours ago [-]
> Upload asset directly to album on the mobile app
4. cron job clean up photos in the syncthing folder that are older than a year to free up space for our phones (~1TB total. Yes we have problem)
--------------
That said, congrat on the 3.0 release. Although I'm slightly bumped out because I literally just discovered this program a month ago and stabilized my self-host set up just one week ago.
palata 4 hours ago [-]
How does the mobile app sync work with Immich? My use-case is that I want to install the mobile app on the phone of my relatives (including iPhones), and it should keep syncing their pictures "forever" even though they never, ever open the app.
I tried Nextcloud, but the apps/server end up failing to sync after at most a couple month, and it's painful to recover from that. So it doesn't work for me.
I have been considering Immich and Ente, but I would love to know if somebody has experience with that.
Mashimo 3 hours ago [-]
With works for me on Android with Pixel phone, after I added Immich to the list of apps that can work in the background.
But as you can see in the linked release note, they made a lot of change to background sync on Android and iOS. It should (TM) work out of the box now.
poisonborz 7 hours ago [-]
I wish they would better support external image sources - images not uploaded/managed by Immich, just a folder of images it has access to - especially if it's read only. It mostly works, but the UI and logic breaks in a lot of little ways.
neogodless 40 minutes ago [-]
Yup. I love Immich, but I'm also a control freak, so my 25 years of digital photos I had before using Immich still exist in an External Library. It mostly works but I still have some issues. Like I keep getting a batch of ~70 photos that lose their "date taken" and revert to the date/time I started using Immich. (Fortunately the file names are date/times and I can manually go through and fix them, but having done it at least three times, it's getting old!)
I "restarted" maybe twice when I first got into Immich to find a good set up for playing reasonably nicely with external libraries, but it does need just a bit more polish. Good to see a sibling comment that it's on their list of priorities!
Hackers
The coolest thing I've done with Immich is just set up Docker on a more powerful machine, run the machine learning libraries, and point my instance (on a low powered server) to use that external computing for face recognition and OCR. Very cool!
etnoy 6 hours ago [-]
We know, and it's something we're working on. The plan is to unify the external and internal libraries in a better way
psadauskas 14 hours ago [-]
Has the ios photo sync gotten better? I've got 20k photos on my phone, and last I tried it filled up the storage on my phone with the originals, and never completed the process, even after leaving my phone open, unlocked, and the immich app running in the foreground for several days, on the same local network as the server.
I know they were working on it, but haven't kept up, I just want to know if it works better now and I should try again.
Mashimo 6 hours ago [-]
The release notes says:
> On iOS, the background refresh task now runs its sync and upload work in parallel, so uploads actually start within the short time window iOS allows.
But I don't know if that fixes your issue.
Lukas_Skywalker 13 hours ago [-]
I have synced ~9000 photos from my phone in february. That worked pretty well. I was done in about 10 hours. I don't remember whether the originals were downloaded, or whether they were deleted automatically afterwards. Felt like a smooth process though.
eptcyka 13 hours ago [-]
Large file uploads are non-resumable. That is, if you have any videos at a decent bitrate and resolution, you need to be able to upload the whole file in a single session. iOS doesn't make this easy to do via background uploads. I uploaded everything by keeping the app open overnight.
gunapologist99 13 hours ago [-]
Likely more of an IOS issue than Immich issue. Apple doesn't care for apps that make it easier to exit iCloud.
azuanrb 13 hours ago [-]
No, it’s an Immich issue. Not OP, but I was already using Synology Photos. Synology finished syncing my library in two days, while Immich was still syncing after more than a week. I decided it wasn’t worth it after that experience.
Larrikin 13 hours ago [-]
Why are you syncing from your phone instead of your Synology then? Can't you sync from your NAS then just have pictures uploaded as you take them? iOS has a lot of restrictions compared to Android so two days really doesn't feel like a meaningful difference from a week.
azuanrb 5 hours ago [-]
The 2 days were spent uploading my entire library from scratch. After that, daily syncs only take a few minutes.
I don’t think this should be framed as iOS vs Android. From a technical perspective, I understand why the behavior differs. But from a user’s perspective, all they see is that one app works much better than the other.
My family doesn’t care about the technical reasons. They just saw one app finish much sooner than the other, and they preferred the one that worked better. Based on that experience, I can’t recommend Immich to them.
Grombobulous 11 hours ago [-]
I’m not an Immich or Synology user but essentially the mobile apps end up replicating your whole structure a little better, at least when I did the iCloud library to Ente import.
I could have done a data download from Apple but essentially leaving the Ente app open and choosing my albums to back up was a “set it and forget it” process.
11 hours ago [-]
brewtide 15 hours ago [-]
Does anyone have any pointers on the best way to import roughly 14 Google takeout chunks into immich?
I've downloaded all the chunks once, only to find them corrupted due to... Their 50gb size and using a browser in theory. One also cannot seem to use wget or alternatives because of the auth / session cookies required via Google takeout.
I've yet to even broach the aspect of importing each giant bundle into immich because I've not had success in even grabbing the takeout files correctly, but would LOVE pointers on the best way of importing the roughly 700gb into the database without it ALL going wrong.
I've had great success with immich running in docker for the past year or so, although I have yet to upgrade to the newest version. Google photos backups have been disabled on my phone for a year or so, but I yet to haul in all of the past years.
Also, anyone know if I can get immich to upload the photos without... Running immich once in a while? Would be great if it just automatically sent them to "my cloud".
Great software.
cbrews 13 hours ago [-]
If you can get all the images into a filesystem (on a NAS or similar server share), you can use the External Libraries feature in Immich (https://docs.immich.app/features/libraries/). This allows it to crunch through the media files via an async import job (a bit more reliable than having to directly upload via the web api).
In my setup, I exclusively use the external libraries feature, pointed at a read-only share from my NAS mounted onto my Immich server. (The external libraries are set to resynchronize to the database every few hours). This means I can manage all my media assets myself without worrying about Immich accidentally corrupting them, and if I eventually move off Immich, I just have a single folder of media files organized by date to port around.
The only downside is that I don't directly upload any media files directly to Immich, but that's okay. I have Syncopoli sync files from my phones (on a scheduled cadence) to an intermediary server which organizes and cleans exif data from media files before dropping it into its permanent home on my NAS share. No manual steps to get photos from my phone to my Immich instance!
hamdingers 13 hours ago [-]
This is a good usage pattern if you're absolutely married to the file structure you have and/or want to keep using the files where they are.
Not really applicable if what you have is a google takeout dump. Better in that case to import all the photos and let immich handle them moving forward using a tool like https://github.com/simulot/immich-go
Mashimo 6 hours ago [-]
> Also, anyone know if I can get immich to upload the photos without... Running immich once in a while? Would be great if it just automatically sent them to "my cloud".
See the release note that this HN thread links to ;-)
>>> Background backup improvements
Background backup on Android is now significantly more reliable. Previously, the background backup on Android was limited to newly taken photos. Now, the app uses a new periodic task scheduler, which allows you to upload your entire library in the background, and it plays nicer with Android's background execution limits, properly cleans up tasks, and warns you when battery optimization and notification settings might interfere with backups.
On iOS, the background refresh task now runs its sync and upload work in parallel, so uploads actually start within the short time window iOS allows.
luke_s 9 hours ago [-]
I went through the same path as you - I think I even landed up with 14 takeout files as well!
Its a bit of a trial, but quite doable. Its likely that things have improved since I did it about 6 months ago.
*Getting the files from takeout*
I tried downloading the files onto my laptop via a browser, and then copying them over to my NAS, but quickly gave up. The best approach is to download them directly to the NAS. As you pointed out auth/cookies is an issue. There are multiple ways of solving the issue, but for me I found the best way was to use chromes dev console network view to identify the network request for each file, then right click on it and select "Copy cURL". SSH into my nas and use that command to download the file. There is a bit more info on how to do this here:
This took a bit of tweaking to get the right set of command line args that worked well for what I wanted it to do. I also found immich errored out a few times during the import. Fortunately immich-go can just pick up the import where it left of, so I kept re-running it until everything was imported.
*Cleaning it all up*
If you just want a huge flat dump of your files your probably good. In my case there were various things I wasn't quite happy about. The default handling of stacking edited images with the originals in albums wasn't what I was after. I wanted to replicate sharing of albums with immich users to match what I had in google photos. For all this kind of cleanup work, I found it quite helpful to work with an AI agent. Give it an API key for your server + the url and get it to help you write cleanup scripts.
altran1502 15 hours ago [-]
You can use this tool to get them into Immich, it will parse all the metadata and recreate albums as you have in GPhotos https://github.com/simulot/immich-go
exhilaration 12 hours ago [-]
Oh wow, it recreates the Google Photos albums? That's the first time I've heard of a tool doing that. I've spent a ton of time organizing my Google Photos albums, that's a big reason I stay with it.
eightys3v3n 13 hours ago [-]
Likely not the best approach:
I had ~200GiB. I selected below 10k files at a time to upload in the web UI (selected all 2014, then 2015). It was fine. More than that many and the UI became unusable.
External Libraries seem like a good option.
They have also recently improved the background import in the Android app so I have heard so that might be worth a try.
etnoy 14 hours ago [-]
immich-go has what you need
mrgaro 7 hours ago [-]
This! When you have the pictures on your disk just use immich-go to import them.
conception 14 hours ago [-]
Just a quick note that native windows extract is 32bit and dies on archives gt 4gb. Use 7zip or something to extract in case you happen to be using that one.
onel 2 hours ago [-]
Great app! Great to see the progress with it.
The biggest complaint has always been how hard it is to self-host it, but that's not true anymore.
If you have a good underlying system that handles all the boring stuff, you can actually have a pretty good experience.
I'm biased because I'm building an OS for this, and it makes spinning up imich so easy.
MohamedMabrouk 16 hours ago [-]
Immich is an amazing software. I use it regularly as an alternative along side Google photos. I keep in it large videos that I wouldn't upload normally to Google photos + the snappy experience at home vs Cloud-Bades solution.
leastangle 2 hours ago [-]
Migrated 700GB of photos from Google to local Immich. The whole family uses it and we’re happy to be supporting the project!
5 hours ago [-]
master-lincoln 3 hours ago [-]
I would switch immediately if they added support for non-photo elements in albums like google photo has. E.g. texts and maps. And the option to chose the order of album elements yourself.
These make my albums feel like small blogs which really adds to the experience when sharing e.g. travel albums.
qsera 7 hours ago [-]
I have come to the realisation that I don't need 10,000 photos. I probably need < 100. I will print them and keep them in a paper album...
Which I am yet to do...
darkwater 2 hours ago [-]
Print them, absolutely, you won't regret it! But it's also good to keep a local and locally owned digital version neatly organized.
aerzen 6 hours ago [-]
My wife only printed the 6 photo albums because I gathered all our photos from three different Google Photos accounts, a hard drive, and two laptops.
And yes, we only look at physical photos or the "on this day X years ago" reels. But to get here, Immich was a valuable tool.
gitaarik 4 hours ago [-]
And where is the pool you pick these 100 photos from?
qsera 3 hours ago [-]
local hard drives..
pvdebbe 4 hours ago [-]
I have realized the same.
Only it is different 100 photos every year.
apples_oranges 7 hours ago [-]
Does it have image editing tools like rotate and crop and is it aware of basic exif metadata?
qxxx 7 hours ago [-]
yes. https://docs.immich.app/features/editing/
And it is very aware of exif. It also has AI features to analyze the photos (or videos) and you can for example search for "cat" and it will find all photos with cats.
omnimus 7 hours ago [-]
Yes. But it's not editor. You don't have manual export, you crop/rotate thumbnails which might not be suitable for print for example.
penetrarthur 5 hours ago [-]
Has anyone personally upgraded to 3.0? How is the experience?
handity 2 hours ago [-]
docker compose down
IMMICH_VERSION=v3
docker compose pull
docker compose up
No issues so far. The web UI is not significantly changed, the biggest improvements are on mobile.
neogodless 36 minutes ago [-]
[dead]
sylens 2 hours ago [-]
My only disappointment with this release is that the beta version of workflows does not have the ability to sort photos into albums by face detected (yet). That’s what I’ve been waiting for as both Google Photos and Ente support smart albums
thenews 13 hours ago [-]
Immich is amazing, been using it as a backup since my phone is always full
mopsi 17 hours ago [-]
Does Immich support read-only source folders yet? I'd like to keep the original files intact, but allow Immich to index them.
zyberzero 17 hours ago [-]
Yes, at least for a year. There is a ”external library” feature, I think that does what you want.
mopsi 17 hours ago [-]
Thank you! That was not available the last time I checked.
bo0tzz 16 hours ago [-]
It's been available for nearly three years
etnoy 14 hours ago [-]
Yes, using external libraries. It's been a feature for several years. Make it read-only by mounting docker compose read only
slipperybeluga 7 hours ago [-]
[dead]
rewgs 7 hours ago [-]
Immich is the best self-hosted app I use. Hats off to the developers!
kQq9oHeAz6wLLS 13 hours ago [-]
I got annoyed with Immich and external storage, because in order for every user to have their own facial recognition data on a large set of photos, you have to add the folder as external storage for each user, which means image previews for each user, even though the source image is the same. So if you have 3 users, you use up 3 times the space for the same thumbnail image.
It got to where I had 20% of my space was just thumbnails for each user, even though it was one set of images in the external storage.
Maybe that's changed recently.
Mashimo 7 hours ago [-]
I don't think that has changed, but AFAIK is on the Roadmap. Or at least they talked about it.
nonbind 5 hours ago [-]
[flagged]
floren 6 hours ago [-]
[dead]
yashthakker 2 hours ago [-]
[dead]
slipperybeluga 14 hours ago [-]
[dead]
morgan814 12 hours ago [-]
[dead]
DavideNL 17 hours ago [-]
I don't want yet another self hosted service to manage (update, backups, possible hardware failures, energy costs, ups, etc.).
Unfortunately Immich is not end-to-end encrypted. If that would have be the case i'd use https://pixelunion.eu/
Seems like a great app though. So... i'm still pondering what to do :-)
mcsniff 17 hours ago [-]
Okay? So don't use it, use a managed service like Google Photos, Apple Photos, Dropbox, etc where your photos and files might be arbitrarily removed or your access to them limited while they are scanned for disavowed content.
You can also just use a secure transport layer (like WireGuard or a VPN) instead of relying on every project to implement end-to-end encryption.
FabCH 14 hours ago [-]
What do you mean Immich is not end-to-end encrypted? You control both ends, you can encrypt it any way you want…
olejorgenb 14 hours ago [-]
They said they only want to control one of the ends
FabCH 13 hours ago [-]
Fair enough, but the Immich provider they link to also uses SSL and claims to encrypt at rest.
It they don’t consider that e2e encrypted, literally nothing is then…
NikxDa 13 hours ago [-]
Encryption at rest means they have the key. End to end means they don‘t. Huge difference!
FabCH 7 hours ago [-]
Yes but magical homomorphic encryption aside, the person has conflicting requests at that point. They are asking for an image app that can’t view their images.
That’s not an image app anymore, that’s just encrypted storage.
onel 2 hours ago [-]
There are simpler options now to self-host these kinds of apps. It's not that hard anymore
gonzalohm 16 hours ago [-]
So if you don't want a self hosted service there are tons of cloud providers. Google photos, iCloud, etc. Some people don't want to pay a monthly fee to store their photos or don't want to risk losing something with sentimental value just because a company decides to ban you
Grombobulous 11 hours ago [-]
If you don’t want self-hosted and you want E2EE, Ente Photos is the best solution on the market that I have found.
DavideNL 7 hours ago [-]
Thank you for the tip! Luckily there are some useful and thoughtful commenters on HN too, other than all the downvotes and negativity :-)
Apparently HN does not like "not self hosting" and/or "e2e encryption" ?
it's really not much to manage assuming you are already doing backups. you ~ pay the energy cost either way.
BeetleB 13 hours ago [-]
Lessons from using self hosted image services years ago:
- Upgrade breaks things. Need to restore from DB, install previous version, etc.
- Need to update frequently (i.e. if I wait 2 years, the upgrade script doesn't work).
- Discovering a corruption months/years later. Some data just lost by that point.
- Backward incompatible changes
Of course, if you need the features, by all means use it. I just want to back up my photos and use FolderSync daily. I have a separate workflow for pruning. As long as FolderSync (or some similar app) exists, I know this flow will work 10 years from now (heck, I've been using it for almost as long). No time spent worrying about upgrading, etc.
hamdingers 13 hours ago [-]
> Lessons from using self hosted image services years ago:
Alternate title: "Outdated lessons I haven't re-evaluated"
BeetleB 11 hours ago [-]
Are you saying there are never backward incompatible changes?
Are you saying there's no need to back up the underlying DB?
Are you saying I can keep an insurance running for, say, three years and it'll be trivial to upgrade after that?
hamdingers 11 hours ago [-]
I'm saying your contribution is outdated and irrelevant, and my primary intention in commenting is to label it as such for any passers-by who might think you're talking about the current state Immich.
That sad, I'm happy to answer your questions. I've run Immich in docker for 3 years with automatic updates through watchtower. Updates are frequent but require no effort from me and have never broken anything, nor is there an "update script" to fail. Nor have I encountered "corruption" at any point. I do back up the database and my photo library.
I'm glad you're happy with your solution, you can share it without disparaging other solutions you're unfamiliar with.
BeetleB 9 hours ago [-]
I'm glad you're happy with it, and perhaps Immich will continue to remain secure. 3 years is comforting.
I will note that the last solution I used was fine for over a decade before it broke (and eventually the project died). For much of the time I was using it, it was the primary open source self hosting solution.
So one of my criteria is: "If the project dies, can I maintain it?" Obviously, I can't use that approach for everything (limited skills and time) - I do use NextCloud, for instance (which, BTW, is fairly painful for some of the reasons I listed above). But wherever I can (and wherever it's important), it's best to develop your own stack.
Best to think in the long term. But yes, for sure, there are down sides to my approach.
Jhsto 17 hours ago [-]
You can use https://ente.com/ (it's open-source). It also makes the seemingly much better decision of storing photos in S3.
gonzalohm 16 hours ago [-]
The point of Immich is self hosting. Using AWS defeats that purpose
jasonvorhe 15 hours ago [-]
S3 has many open implementations you can self host. Some are quite lean even. Unless you need really complex IAM stuff it's a solid and rather simple experience to run it.
MoonWalk 13 hours ago [-]
This is a good point. I'd rather have something with the S3 option, so I can serve the pages from my house but the images from a speedier source.
gonzalohm 15 hours ago [-]
Yeah but Immich provides a lot more features than just storage
_flux 8 hours ago [-]
Wouldn't it then be reasonable to focus on those many features, instead of storage? I would enjoy using with S3, as expanding S3 storage is easier than expanding the storage of a virtual machine: usually it happens automatically.
Perfect is the enemy of the good. While there's an ideal case where you're hosting it on a box in your house, that's not for everybody. So while hosting it on AWS doesn't remove every dependency on big tech, at least it's not a full on Google hosted SaaS product.
gonzalohm 15 hours ago [-]
I think "perfect is the enemy of good" is actually an argument against AWS integration. Using S3 as a backend is a lot more complex than using local storage so it would take a lot more time to implement, that's why local storage is good enough
> I don't want yet another self hosted service to manage
Isn't system administration a solved problem now with LLMs? At least for these simple problem domains?
tamimio 14 hours ago [-]
You can have immich on truenas that has the whole pool encrypted, same goes with opencloud for other docs/files. Plus all nas backup features, I think it’s a better approach than dealing with each app encryption.
Edit: regarding cloud based backup, besides the usual privacy and security concerns, you can’t guarantee the fixed price, you might subscribe now and pay for a year, next year you have the typical “oops, operation cost are high we have to raise the prices or shutdown” blog post and now you’re stuck again, download, find another, upload, etc.
jrm4 17 hours ago [-]
VPN (or other) Tunnel.
That's the objective answer. There's no mystery here. That's exactly how you get what you want and it's not too hard. Not trying to dunk on you or anyone one but this is an easily solved problem, and I think I want to highlight it like this to make sure everyone understands.
Anything web/internet/network service thing, you can add this on. This composability is important to remember in software, this even goes back to "The Unix Way" type stuff.
ravenstine 15 hours ago [-]
It's also a kind of funny thing how HN has the attitude of "never implement your own encrypted anything" but then demand their apps build in e2e encryption. It may be one abstraction higher, but it's still fundamentally the same problem. With the unfortunate exception of web browsers, if I'm going to use something that performs encryption, then I want encryption to be the only job it has.
PhilipRoman 14 hours ago [-]
How are VPNs related to end-to-end encryption?
nicce 14 hours ago [-]
Their primary purpose is usually encrypt the connection between different endpoints… by creating virtual private networks…
PhilipRoman 7 hours ago [-]
When we talk about "E2EE" messenger apps, that usually means more than just using HTTPS. VPNs can certainly help with encryption in transit, but that's a very different concept.
Unfortunately this comes up a lot, with people asking if Immich supports end-to-end encryption and getting told to use LUKS or Tailscale.
2 hours ago [-]
tamimio 14 hours ago [-]
I believe OP meant at rest encryption, meaning, just because someone had an access to your physical drive doesn’t mean they can browse your pics.
Hetzner community provides official full-disk encryption documentation:
https://community.hetzner.com/tutorials/install-debian-with-...
Letsencrypt gives free reliable SSL. You can easily hide Immich behind Nginx proxy that handles SSL for you.
Add cron based automated backup of the entire Immich data to a local encrypted NAS and there you go. Reliable, end-to-end, encrypted at rest setup. So far, it required exactly 0 maintenance.
It’s also more secure because I just drop traffic from all but 3 geographies at the IP level. And you can also add a WAP on the Nginx proxy.
It is also more more secure than Google/iCloude because the „employee of the company“ attack vector is much smaller. It’s documented that Google looks at your photos and is perfectly happy to file false police reports: https://www.eff.org/deeplinks/2022/08/googles-scans-private-...
By comparison, yes it is theoretically possible for Hetzner employees to access my server physically and extract the encryption key from RAM, or setup a fake SSH server to try to steal the key, but that is far more complicated attack and hasn’t been documented yet. And it risks detection.
It's not necessarily more secure than managed providers either, simply because you are probably not a security engineer, and have far less resources to secure your server. It does prevent Google/iCloud from scraping your data, but it certainly does not mean Hetzner can't access your data. They control the overarching hypervisor and control plane managing your servers/VM's, so there's no way to know what capabilities have been implemented. The majority of what intelligence agencies are capable of has not been leaked or documented publicly.
For 99.99% of the population, does the threat model really include targeted NSA attack with higher probability than „Google’s automated system sent the police to my door“? No, no it doesn’t.
It is demonstrably more secure for even a semi experienced sysop to host Immich for their family than for them to use Google/Apple.
But I do agree that _some_ experience is required.
True E2EE would be that all data on those disks is encrypted by the client your family uses, so even if you combed through the disk volume you would only see cipher text
If you consider nuclear family as an entity, it’s e2ee. Practically.
Putting aside the fact that yes, the server can be compromised if somebody chose to attach to the live RAM and recover keys. But practically, nobody will. Same way Google will not deliver a special compromised image of the mobile app on my phone, even though they completely can.
I pay 60/month for 50 TB with a 10 year old intel xenon.
Actually, moving from Google Photos to Immich after I hit my 100GB storage limit was the whole reason I got into self-hosting, and what a fun ride that has been!
I can't believe self-hosted products of this caliber are free. Huge shout-out to HomeAssistant, PiHole, paperless-ngx, Dawarich, and countless others for the same reason.
Congrats to the team on the release and thank you for helping me catalogue my personal memories
Lets say burglars break in and steal your homelab. Because you don't have e2ee, they can see all the photos you saved of your dead grandmother! Oh no!
Or, in the more likely scenario that something happens to your phone, the lack of e2ee means that even if you lost your keys you didn't lose the only memories that remain of your grandma - you just copy across the .jpgs to a new device.
I do go back and forth on the accessibility tradeoffs of E2EE for average people though. In this scenario, lose or forget your key/password and you lose ALL of your photos which are very important to some people. Losing them is pretty catastrophic. Google Photos or iPhotos really gives people a sense of security about their photos.
ps: It would also make it easier to host cloud instances for Immich without encrypting the file system of a remote server/VPS. Especially when renting servers from small-time sellers, I'm always weary about how much I can really trust their employees access control. I know some level of trust is unavoidable with physical access, but how do they handle those disks during maintenance would also be relevant.
1. "Hey just so you know, I have access to everything you upload here".
2. "Do NOT lose your password or your data will be GONE FOREVER and I CANNOT get it back".
I definitely prefer 1 and I'm sure my users do too. They shouldn't upload it if they didn't trust me anyway.
In my case I follow it up with "and I might actually go digging around in your files if I need to debug something or you're wasting disk space". But I think you could also follow it up with "but I do promise not to look" and that would be valid too.
This whole thing only makes sense for people you're pretty close to.
(I do tell people not to back up their password managers on my system though).
I guess maybe for Immich specifically it would be nice to have a "vault" feature where people can upload nudes etc where they are willing to trade risk of loss for privacy on a per-photo basis.
Now a use-case for E2EE is if you want to host it on a VPS, I would say. I wouldn't trust the VPS with the photos of my friends/family.
But ISTR reading Immich kinda assumes the storage is on a plain local filesystem so you get perf issues if you do something clever under its feet. Could be out of date on that.
I have a small vps which just tunnels into a laptop running at home.
Half of the features of immich would become 10x harder to implement if encryption needed to be done client side.
This would force features like semantic search, face detection, video transcoding and thumbnail generation into the clients instead.
Immich assumes trusting the server to have access to your photos is fine. That is always the case when you’re self-hosting.
And I think that’s reasonable, since most users give that trust to Google and Apple.
IMO this is the single greatest problem with the selfhosted community; the idea that E2EE is only necessary for passwords and other highly sensitive PII. It should be standard for anything hosted on someone else's computer.
You might argue it's not neccessary for cat photos, but mistakes happen and you can accidentally upload things you don't intend to. You might argue it's not neccessary for games, ebooks or other copyrighted media, but the cloud provider could scan and delete anything you own that matches a hash of copyrighted material, at any time. You can accidentally paste a password, or other sensitive piece of text, into any text field of any website or application, and have it distributed to computers around the world.
E2EE can mitigate against numerous attack vectors, and reduces the surface area and blast radius of most attacks. That also applies to your own computers, if someone steals your hardware or hacks into your network. It is vital in the age of AI where all of your data could be exploited for training and profit, or used against you. The only data that should not be E2EE is situations where it is technically impossible, or the data is explicitly shared as "public" (e.g. the clearnet).
As long you understand the risks.
I'd rather have my family photos beying unencrypted than a very good possibilty of loosing them which happed more than once with other e2e things simply because I have no key to decrypt.
Then again - if I have to chose I'd rather have the at my home lab.
There is no reason why E2EE services can't provide recovery or emergency access mechanisms, or implement plaintext export functionality from clients for storage elsewhere. Most reputable providers already have functionality to enable recovery and backup.
If they can do that then they are not e2ee.
I find it interesting to start with this, and follow with:
> There is no reason why E2EE services can't provide recovery or emergency access mechanisms
If the service can help you recover your data after you lose the key, it means that they have the key, and therefore it's not end-to-end encrypted.
That's the whole point of E2EE.
No it's not. The point of E2EE is that only the client apps decrypt/encrypt content, and the server just processes the encrypted bits. Most E2EE service providers do this by encrypting your encryption key. That's how you can login on other devices without you having to store and import an encryption key every time. When you login they send you an encrypted blob that contains your encryption key, which is decrypted client side, then the key is used to decrypt your data locally on the client. This does not break E2EE, but it does mean you have to trust the provider, which is why most of them are entirely open source.
Sharing and emergency access also use similar public key cryptography techniques to provide shared access to E2EE data. A similar principle applies to your phones encryption aswell, and is the reason you can wipe/reset your device in seconds, instead of minutes/hours. They only wipe the encryption key; not the encrypted data.
And again: the whole point E2EE is that you don't have to trust the provider. Open source in general doesn't help you here because you don't know what software or which version of the code the provider is running. Your only chance is to run open source client software, review it to ensure E2EE has been implement properly, then you don't need to trust the provider.
Either the provider knows the secret, then they can help you in a recovery scenario, but then they also can read your data. Or they don't know the secret, in which case they cannot help you in a recovery scenario.
I don’t want to hold the keys to my photo library on someone else’s computer. I want to actually have all the bits and all the hardware in my house. I want to have access to it even if the Internet ends.
Like if you have to bring the data to your client device to do any kind of processing, you are quite bottlenecked when it comes to bulk operations (e.g. searching).
Sure there is very interesting research into managing that (homomorphic encryption), but I think it only makes sense on a Google cloud/apple scale. For a small, self-hosted app, I would much rather have my own hardware with FS-level encryption , or some kind of trusted compute as a whole. I don't think this has to be solved by an image host service.
Sure, they’re useless without the keys. But the key is also useless without the blobs, in the sense that I don’t have my photos.
I also imagine that a true E2EE architecture means you have more flexibility with cloud storage, managed hosting, and off-site backups.
Still, good application design can help mitigate that. Apple does it with their e2ee recovery methods, although Ente does rely on a recovery key that you should print out and put in a safe as well as store in other safe locations.
But also, what I love about the E2EE of Ente is that I can securely use a cloud hosted provider but then my home NAS backups are unencrypted.
The Ente desktop app has a continuous export feature where I just leave the application on my main desktop computer and it constantly backs it up to my home NAS. It also does the local machine learning and video streaming encoding processing on the desktop.
So, if I lose my Ente account, no big deal. I get another one and wipe everything and restore from my NAS backup.
I feel like this is the best of all worlds. I get cloud convenience and no real self-hosting burden along with solid ownership of my data.
Perhaps Immich doesn’t bother with e2ee since it’s primarily designed for self-hosting, while for Ente it’s meant to be suitable for both a paid cloud service and self-hosting.
To fully encrypt them would just be inviting more problems.
* Immich doesn't have end-to-end encryption, so I see it for self-hosting (i.e. on hardware I trust, typically at home).
* Ente has end-to-end encryption, which means I can host it on a random VPS.
Two different requirements for two different setups. E2EE adds some complexity, typically to set up a backup somewhere accessible. The fact that I have an unencrypted SDD next to my server at home that my family can grab and access photos is a feature to me: if I disappear I want them to be able to access them.
e2ee means that the encryption keys are stored client-side by the intended recipient. It's not just in transit and in rest.
I have a multi-region homelab cluster and I share some photos with my friends in the US and my parents in Russia. I’m auto-uploading full library (basically replacing iCloud/Google Photos) and I can share links to selected photos or albums (a reachable node will be determined by a split-view DNS). All without risks of exposing my full photo archive in case either node gets seized or otherwise compromised.
(Now, this is what I’m trying to do. I set things up, but it’s not really functional at the moment, because Ente is buggy af, and I haven’t yet learned how to rebuild and debug their iOS app.)
Maybe people have pornography production streams they want to manage using Immmich?
I think it's ridiculous to expect immich to rearchitect everything in order to make it better able to run on untrusted hardware. It should stick to doing what it is good at.
If you have a server in your homelab where you self-host I mich just encrypt the hard drive with LUKS.
So... yeah, sure, e2ee and encryption and all that but don't wait on perfection when the otherwise situation is pretty dire. It's only encroaching BigTech fueled by surveillance capitalism even more!
It's cool they keep the server open and selfhostable instead of only open clients like many e2ee projects do.
I like how you can share an album and anyone can contribute to it without an account. Another cool feature is that you can select photos to lock when you hand your phone to somebody so they can only see the ones you selected without your device unlock.
If only. It can’t even upload photos any reliably (I self-host). I had it simply fail to upload anything for days (it doesn’t provide any diagnostics, gotta figure out how to build and debug it myself), with no apparent reason. That’s despite keeping app in the foreground, on a charger, for hours, with video uploads and ML features all disabled so it was supposed to focus on just the photos. Server side is fine, web-based uploads work without any issues, app just doesn’t. I haven’t figured it out yet.
Did you try it with the free 10GB on their hosted servers?
I'm using Android so maybe it's different on iOS.
"Ente Photos is a paid service, but we offer 10GB of free storage. You can also >>clone this repository and choose to self-host<<."
So both forms...
https://github.com/ente/ente
Ente Auth and Locker both seem like limited feature subsets of solutions like 1Password.
It's completely free and there's no lock in, so I suppose it's for getting more people hearing the name.
Haven't tried locker but I agree it seemed rather pointless.
People say not to use your pw manager for authenticator for security, so that's something for using a separate app. Depends if your using auth for just getting through or actually want the benefits.
They really are pretty much just what they appear to be. Im a fan.
https://github.com/immich-app/immich/discussions/14365
Backups are easy too: you can very reasonably just rsync the library folder, and it'll be recoverable from that alone (I tried it! Worked great). You'll lose accounts and image-content search and iirc faces (possibly painful), but most of that is trivially rebuilt or not very interesting for single-person scenarios.
https://privacy.apple.com/account -> "Get a copy of your data"
Then you will need to chose the maximum size of an archive part and wait for link to a download page.
If you set the pref to keep originals locally, they're all on your drive, in original form, as well as the derived versions including caches of raw to jpeg, resolutions, and edited versions.
That said, Apple Photos does let you export even if only in cloud. Open the library, select all, and File > Export ... > Export Unmodified Originals.
It pauses for a second or two on my quarter million images, but is then happy to comply.
Yes: it is necessary to share selected albums through public URL.
(I keep meaning to look at it and keep kicking it down the road.)
LLMs became so good that I don't trust a codebase like Immich to have ports to my server exposed publicly.
I put everything behind Wireguard to limit the number of lines of code that might bring down my setup.
Anyone have experience with this? I haven't done much modification or album creation in photoprism, so am happy to start from scratch on that front.
I have all of my photos organized like this: `events -> year/month - holiday -> (album_1, ...)`. and: `home town -> year -> (album_1, ...)`. Photos will be in multiple albums, and there will be edits as well. And I need to track the picked/rejected state as well (and filter on it).
Only reason I haven't moved over to Immich yet is because I am struggling to map my photo organization onto it's way of doing things in a way that's nice. So far my attempts have been unwieldy.
https://developers.cloudflare.com/tunnel/
It’s obviously not a magical security layer that eliminates all issues related to public Internet exposure, but in my opinion it is good enough for the average home user.
But the way I do access Immich externally is not with Tailscale directly on my phone but involves exposing a caddy instance, running on a $1 VPS, to the internet.
If requests include a specific very long header (which I randomly made up), it then forwards those requests to my real Immich instance, which runs on my NAS. Headers can be configured within the mobile app. It has worked really well for me so far.
My phone has been powered on but inactive all night; I charged it to 80% before going to bed, then unplugged it and left it where I can reach it from my bed, as is my habit. (I'm in an Asian timezone, in case you hadn't guessed, so it's morning for me while it's evening in America right now). Its battery is now at 73%. The Android battery report says 6% battery usage from Kindle (makes sense, I started reading a book when I woke up), 0.7% from Signal (haven't sent any messages yet today but have received a few), and 0.3% from Tailscale.
So when you're not using the Tailscale network actively, you'll hardly notice the battery drain.
Unfortunately, Pihole was less important than Tailscale and I have to put up with mobile ads.
https://tailscale.com/docs/integrations/nextdns
They rely on immich-go project, which is ridden with bugs and basically abandonware by now. Their own iOS app, which can also be used for syncing iCloud gallery, has outstanding, 2 y/o or so bugs that will fail to upload the Live Motion photos.
My photos exported to Immigh have some 9000 broken, half imported Live Photos and I just don't have time to fix that.
The fact that THIS is not their priority, the most comprehensively A-B tested feature is beyond me. Who cares about OCR if you can't trust that they didn't butcher your imported memories? I just don't get it!
This is open source, volunteer developers often focus on doing things that are fun to them, or that scratch their own itch. I can't imagine dealing with Google Photos semi-broken exports is fun to anybody, and you only deal with the pain of the import once, afterwards there's no itch to scratch.
And how do you know I haven't donated and don't regularly do so?
I set up immich backed by ceph last week and I got everything migrated via immich-go, with all metadata albums and all.
Had to change some parallelization option, but otherwise it was a breeze.
Besides, having to use external tool you check out from GitHub is the exact opposite of what should be the priority I am talking about. Immich gives you that clean, very easy UX/UI, targeting every regular user as a real alternative to Google or Apple offerings, yet you can't easily and safely import your photos. That's inconsistent at best. Misleading.
How do you imagine this wold work, given that there are no APIs for Google Photos or iCloud Photos to batch import them into a different service while preserving all data. At best you can work with the Gallery/Photos access on your phone.
Because those services are closed black boxes that don't really let you access them except in a very roundabout way?
There's no "black box" magic here. Sure, there are some edge cases that need to be handled when importing the exported dataset, but it's all documented.
So, they are black boxes that don't make things easy or convenient for people. E.g. Google Takeout separates images and their metadata. With people running into issues like this: https://www.reddit.com/r/googlephotos/comments/1lqx331/googl... (as comments point out, Google just randomly changes file names as well, which breaks import tools)
> Sure, there are some edge cases that need to be handled when importing the exported dataset, but it's all documented.
As in: it's not really documented. Those takeouts, iCloud and Google shenanigans etc. have been reverse engineered by people to work. Meanwhile for closest friends only Apple, Google and some of their closes friends provide a way to transfer libraries directly, without "takeouts" and workarounds: https://portmap.dtinit.org/
I just want to be able to organize my folders outside of some dumb library system and immich at the time fought that as well.
You say this as if it wasn’t Immich itself that backed up the database automatically next to your image files.
I think they’re one of the best self-hosted services when it comes to backup/restore — enabling it by default — and when it comes to migrations — no breaking changes in minor versions after 1.0.
Did you report this issue so I could try and reproduce it?
I ended up doing that manually, but it's great to see that is now a first class citizen in 3.0.0. I love Immich.
Does this fix this problem? https://github.com/immich-app/immich/discussions/12748
It's a pretty big issue for me having multiple devices and multiple people who want to pool pictures of our cats together in one album.
Currently I have to do this kind of set up:
1. Syncthing sync our photos back to the homelab server hosting immich - /mnt/Syncthing/a1/cats/ - /mnt/Syncthing/a2/cats/ - /mnt/Syncthing/b/cats/
2. cron job copying (hard-link) the photos to a folder mounted as read-only external library volume - /mnt/immich/ext-lib/cats/
3. cron job to run a script that automatically creates albums from external library folder structure: https://github.com/Salvoxia/immich-folder-album-creator
4. cron job clean up photos in the syncthing folder that are older than a year to free up space for our phones (~1TB total. Yes we have problem)
--------------
That said, congrat on the 3.0 release. Although I'm slightly bumped out because I literally just discovered this program a month ago and stabilized my self-host set up just one week ago.
I tried Nextcloud, but the apps/server end up failing to sync after at most a couple month, and it's painful to recover from that. So it doesn't work for me.
I have been considering Immich and Ente, but I would love to know if somebody has experience with that.
But as you can see in the linked release note, they made a lot of change to background sync on Android and iOS. It should (TM) work out of the box now.
I "restarted" maybe twice when I first got into Immich to find a good set up for playing reasonably nicely with external libraries, but it does need just a bit more polish. Good to see a sibling comment that it's on their list of priorities!
Hackers
The coolest thing I've done with Immich is just set up Docker on a more powerful machine, run the machine learning libraries, and point my instance (on a low powered server) to use that external computing for face recognition and OCR. Very cool!
I know they were working on it, but haven't kept up, I just want to know if it works better now and I should try again.
> On iOS, the background refresh task now runs its sync and upload work in parallel, so uploads actually start within the short time window iOS allows.
But I don't know if that fixes your issue.
I don’t think this should be framed as iOS vs Android. From a technical perspective, I understand why the behavior differs. But from a user’s perspective, all they see is that one app works much better than the other.
My family doesn’t care about the technical reasons. They just saw one app finish much sooner than the other, and they preferred the one that worked better. Based on that experience, I can’t recommend Immich to them.
I could have done a data download from Apple but essentially leaving the Ente app open and choosing my albums to back up was a “set it and forget it” process.
I've downloaded all the chunks once, only to find them corrupted due to... Their 50gb size and using a browser in theory. One also cannot seem to use wget or alternatives because of the auth / session cookies required via Google takeout.
I've yet to even broach the aspect of importing each giant bundle into immich because I've not had success in even grabbing the takeout files correctly, but would LOVE pointers on the best way of importing the roughly 700gb into the database without it ALL going wrong.
I've had great success with immich running in docker for the past year or so, although I have yet to upgrade to the newest version. Google photos backups have been disabled on my phone for a year or so, but I yet to haul in all of the past years.
Also, anyone know if I can get immich to upload the photos without... Running immich once in a while? Would be great if it just automatically sent them to "my cloud".
Great software.
In my setup, I exclusively use the external libraries feature, pointed at a read-only share from my NAS mounted onto my Immich server. (The external libraries are set to resynchronize to the database every few hours). This means I can manage all my media assets myself without worrying about Immich accidentally corrupting them, and if I eventually move off Immich, I just have a single folder of media files organized by date to port around.
The only downside is that I don't directly upload any media files directly to Immich, but that's okay. I have Syncopoli sync files from my phones (on a scheduled cadence) to an intermediary server which organizes and cleans exif data from media files before dropping it into its permanent home on my NAS share. No manual steps to get photos from my phone to my Immich instance!
Not really applicable if what you have is a google takeout dump. Better in that case to import all the photos and let immich handle them moving forward using a tool like https://github.com/simulot/immich-go
See the release note that this HN thread links to ;-)
>>> Background backup improvements Background backup on Android is now significantly more reliable. Previously, the background backup on Android was limited to newly taken photos. Now, the app uses a new periodic task scheduler, which allows you to upload your entire library in the background, and it plays nicer with Android's background execution limits, properly cleans up tasks, and warns you when battery optimization and notification settings might interfere with backups.
On iOS, the background refresh task now runs its sync and upload work in parallel, so uploads actually start within the short time window iOS allows.
Its a bit of a trial, but quite doable. Its likely that things have improved since I did it about 6 months ago.
*Getting the files from takeout* I tried downloading the files onto my laptop via a browser, and then copying them over to my NAS, but quickly gave up. The best approach is to download them directly to the NAS. As you pointed out auth/cookies is an issue. There are multiple ways of solving the issue, but for me I found the best way was to use chromes dev console network view to identify the network request for each file, then right click on it and select "Copy cURL". SSH into my nas and use that command to download the file. There is a bit more info on how to do this here:
https://trog.qgl.org/20241001/downloading-a-google-takeout-f...
*Importing them into immich*
Once I had all my takeout files on the nas, I used immich-go to import them: https://github.com/simulot/immich-go
This took a bit of tweaking to get the right set of command line args that worked well for what I wanted it to do. I also found immich errored out a few times during the import. Fortunately immich-go can just pick up the import where it left of, so I kept re-running it until everything was imported.
*Cleaning it all up* If you just want a huge flat dump of your files your probably good. In my case there were various things I wasn't quite happy about. The default handling of stacking edited images with the originals in albums wasn't what I was after. I wanted to replicate sharing of albums with immich users to match what I had in google photos. For all this kind of cleanup work, I found it quite helpful to work with an AI agent. Give it an API key for your server + the url and get it to help you write cleanup scripts.
I had ~200GiB. I selected below 10k files at a time to upload in the web UI (selected all 2014, then 2015). It was fine. More than that many and the UI became unusable.
External Libraries seem like a good option.
They have also recently improved the background import in the Android app so I have heard so that might be worth a try.
The biggest complaint has always been how hard it is to self-host it, but that's not true anymore. If you have a good underlying system that handles all the boring stuff, you can actually have a pretty good experience.
I'm biased because I'm building an OS for this, and it makes spinning up imich so easy.
These make my albums feel like small blogs which really adds to the experience when sharing e.g. travel albums.
Which I am yet to do...
And yes, we only look at physical photos or the "on this day X years ago" reels. But to get here, Immich was a valuable tool.
Only it is different 100 photos every year.
IMMICH_VERSION=v3
docker compose pull
docker compose up
No issues so far. The web UI is not significantly changed, the biggest improvements are on mobile.
It got to where I had 20% of my space was just thumbnails for each user, even though it was one set of images in the external storage.
Maybe that's changed recently.
Unfortunately Immich is not end-to-end encrypted. If that would have be the case i'd use https://pixelunion.eu/
Seems like a great app though. So... i'm still pondering what to do :-)
You can also just use a secure transport layer (like WireGuard or a VPN) instead of relying on every project to implement end-to-end encryption.
It they don’t consider that e2e encrypted, literally nothing is then…
That’s not an image app anymore, that’s just encrypted storage.
Apparently HN does not like "not self hosting" and/or "e2e encryption" ?
Meanwhile, i also found https://zeitkapsl.eu/
- Upgrade breaks things. Need to restore from DB, install previous version, etc.
- Need to update frequently (i.e. if I wait 2 years, the upgrade script doesn't work).
- Discovering a corruption months/years later. Some data just lost by that point.
- Backward incompatible changes
Of course, if you need the features, by all means use it. I just want to back up my photos and use FolderSync daily. I have a separate workflow for pruning. As long as FolderSync (or some similar app) exists, I know this flow will work 10 years from now (heck, I've been using it for almost as long). No time spent worrying about upgrading, etc.
Alternate title: "Outdated lessons I haven't re-evaluated"
Are you saying there's no need to back up the underlying DB?
Are you saying I can keep an insurance running for, say, three years and it'll be trivial to upgrade after that?
That sad, I'm happy to answer your questions. I've run Immich in docker for 3 years with automatic updates through watchtower. Updates are frequent but require no effort from me and have never broken anything, nor is there an "update script" to fail. Nor have I encountered "corruption" at any point. I do back up the database and my photo library.
I'm glad you're happy with your solution, you can share it without disparaging other solutions you're unfamiliar with.
I will note that the last solution I used was fine for over a decade before it broke (and eventually the project died). For much of the time I was using it, it was the primary open source self hosting solution.
So one of my criteria is: "If the project dies, can I maintain it?" Obviously, I can't use that approach for everything (limited skills and time) - I do use NextCloud, for instance (which, BTW, is fairly painful for some of the reasons I listed above). But wherever I can (and wherever it's important), it's best to develop your own stack.
Best to think in the long term. But yes, for sure, there are down sides to my approach.
Of course this topic has been discussed: https://github.com/immich-app/immich/discussions/1683
https://ente.com/reliability/
For self-hosting, “S3” usually just means “S3-compatible.” Although maybe that’s exactly what you meant.
Apparently HN does not like "not self hosting" and/or "e2e encryption" ?
Meanwhile, i also found https://zeitkapsl.eu/
Isn't system administration a solved problem now with LLMs? At least for these simple problem domains?
Edit: regarding cloud based backup, besides the usual privacy and security concerns, you can’t guarantee the fixed price, you might subscribe now and pay for a year, next year you have the typical “oops, operation cost are high we have to raise the prices or shutdown” blog post and now you’re stuck again, download, find another, upload, etc.
That's the objective answer. There's no mystery here. That's exactly how you get what you want and it's not too hard. Not trying to dunk on you or anyone one but this is an easily solved problem, and I think I want to highlight it like this to make sure everyone understands.
Anything web/internet/network service thing, you can add this on. This composability is important to remember in software, this even goes back to "The Unix Way" type stuff.
Unfortunately this comes up a lot, with people asking if Immich supports end-to-end encryption and getting told to use LUKS or Tailscale.