Hi fellow self-hoster.
Almost one year ago i did experiment with Immich and found, at the time, that it was not up to pair to what i was expecting from it. Basically my use case was slightly different from the Immich user experience.
After all this time i decided to give it another go and i am amazed! It has grown a lot, it now has all the features i need and where lacking at the time.
So, in just a few hours i set it up and configured my external libraries, backup, storage template and OIDC authentication with authelia. All works.
Great kudos to the devs which are doing an amazing work.
I have documented all the steps of the process with the link on top of this post, hope it can be useful for someone.
I’m using immich for half a year or so now. There only problem is that it did not chunked uploads. So one large video just never uploaded, and I had to use nextcloud to upload it instead. Otherwise, it’s great.
Yes, i encountered this issue as well. Seems that tweaking NGINX setting helped. Still stupid that a large upload will stall all the others.
Thank you for this. I plan to look at the authentication part more closely, but that’s the part I can’t quite figure out (being an amateur at this stuff but still trying), since I’m nervous with just a password accessing it remotely or from the phone.
Authelia, NGINX, there is so much that’s confusing to me, but this might help.
I’d recommend setting up a VPN, like tailscale. The internet is an evil place where everyone hates you and a single tiny mistake will mess you up. Remove risk and enjoy the hobby more.
Some people will argue that serving stuff on open ports to the public internet is fine. They are not wrong, but don’t do it until you know, understand and accept the risks.(’normal_distribution_meme.pbm’)
Remember, risk is ’probability’ times ’shitshow’, and other people can, in general, only help you determine the probability.
good general advice until you have to try to explain to your SO the VPN is required on their smart TV to access Jellyfin.
Then you expose your service on your local network as well. You can even do fancy stuff to get DNS and certs working if you want to bother. If the SO lives elsewhere, you get to deploy a raspberry to project services into their local network.
Very low WAF score tough.
You mean ”hardcore WAF challenge”?
More like hardcoded WAF challenge.
Feel free to ask, even in pm, if I can help. Not a guru myself, but getting a bit more experience overtime.
I’m curious;
Which ML CLIP model did you go with, and how accurate are you finding the search results?
I found the default kinda sub-par, particularly when it came to text in images.
Switched to “immich-app/XLM-Roberta-Large-Vit-B-16Plus” and it’s improved a bit; but I still find the search somewhat lacking.
The best one I have found was one of the newer ones that was added a few months ago. ViT-B-16-SigLIP__webli
Really impressed with the accuracy even with multi word search like “espresso machine”
How well does it do with text in images?
I often find searching for things like ‘horse’ will do a decent job bringing up images of horses, but will often miss images containing the word ‘horse’.
It does ok with that. better than the default model, but worse than the built in search on my phone.
How did you do external backups?
I used to use a docker container that makes db dumps of the database and drops it into the same persistent storage folder the main application uses. I use this for everything in docker that had a db.
Immich as recently integrated this into the app itself so its no longer needed.
All my docker persistent data is in a top level folder called dockerdata.
In that I have sub folders like immich which get mounted as volumes in the docker apps.
So now I have only 1 folder to backup for everything. I use zfs snapshots to backup locally (zfs auto shot) and borgmatic for remote backups (borgbase).
All my dockers all compose files that are in git.
I can restore he entire server by restoring 1 data folder and 1 compose file per stack.
I don’t understand how that’s helpful. If something is corrupted or my house burns down, a local backup is going to go with it. That’s why I asked for external backups.
Borgbase is remote
I have three tiers of backup. Never heard or the 3,2,1 rule?
3 backups 2 locations 1 offsite
I backup one time on an external disk connected to the server. A second time to another disk, connected on an OpenWRT router located in the patio. A third copy is uploaded to my VPS in the cloud.
not all three are symmetrical due to disk sizes. But critical data is always backed up on all three. Daily backups.
Restic do deduplication and encryption too, so actual data usage is really minimal and all is kept safe.
I backup with restic the database backups done by immich, not the database itself, and the Library/library folder which contains the actual images and videos.
Did you read the whole post? If so, did you go to his/her website?
Yeah I just didn’t understand it.
If anyone’s interested, here’s my Immich backup script. You setup rclone to use an S3 storage service like BackBlaze which is quite cheap. I also use a crypt which means RClone will encrypt and decrypt all files to/from the server. S3 configuration and crypt setup.
Then set this up as a cron job. With the “BACKUP_DIR” option when you delete a photo it will get moved to the “deleted” folder. You can go into your S3 provider’s lifecycle settings and have these get deleted after a number of days. I do 10 days. Or you can skip that and they’ll be gone forever.
#!/bin/bash SRC_PATH="/path/to/immich/library" DEST_REMOTE="b2crypt:immich-photos/backup" BACKUP_DIR="b2crypt:immich-photos/deleted" RCLONE_OPTIONS="--copy-links --update --delete-during --backup-dir=$BACKUP_DIR --suffix `TZ='America/New_York' date +%Y-%m-%d`.bak --verbose" rclone sync $SRC_PATH $DEST_REMOTE $RCLONE_OPTIONS
Yeah, I don’t know what any of these words mean. I just want to click “export” and back all the data up to a flash drive. Is that too much to ask?
I think it is. It doesn’t take much to understand which folders needs to be backed up. They are also pretty clear on the immich website on how to backup the database itself. No, just an “export” wouldn’t be good enough since the files themselves do not include the metadata.
I think it is.
Why is that?
They are also pretty clear on the immich website on how to backup the database itself
Yeah I’m pretty tired of hearing things are “pretty clear” or “not that complicated” and then being directed to an absolute word salad of technical terms no one without a computer science degree would understand.
No, just an “export” wouldn’t be good enough since the files themselves do not include the metadata.
They could…add them?
Well yeah you could go on the site and select whatever photos and hit download I suppose.
There’s no way to do that for your entire library. Also I assume that would not retain the Immich-specific metadata like the ML object tags and the “people” tagged in the photos.
You should have a backup solution for your server that should cover this, without that you should probably stick with managed photo backup services.
One rclone command isn’t much more complicated than one button.
Reading the comment I replied to, it appears to be much much more complicated. And I don’t understand how anyone can claim otherwise.
You need to backup exactly two folders, which i have also pointed out in another commend and in the wiki.
However you back those folder up, it’s up to you.
Key word is “appears”. Choose your source and destination, run rclone. That’s it. No harder than going to the page, clicking export, picking a folder, save. It’s really not hard at all, give it a try.
My only issue with it is that on my iphone, the app constantly freezes and says I have 3 photos left to upload. It’s almost certain to freeze for a few minutes and the upload becomes stalled as well. This behavior made it take a long time to backup my library and it makes it a pain in the ass to share photos quickly with people. Popping into the webUI has none of these issues (just no uploading of my photos). I still quite love the app
I have a problem generating thumbnails for photos taken from summer 2023 until now (using my iPhone 12 Pro). It’s like a format problem or something. I don’t know ¯_(ツ)_/¯
You might want to submit a bug report. Their pace of development is insane for OSS.
I’ve been trialing some similar apps and none of them really fully satisfy me, including immich. Mostly because they all make it clunky to exclude some photos from showing up, or indexing being slow as hell and not particularly good at removing photos I recently ignored, deleted or moved. Immich in particular is bad with the ignore part. I wish I could edit a text block that defined ignore rules like a gitignore, but instead you have to add each rule separately in the UI. Then it feels very slow to add thumbnails for raw files and slow to index period. So many of these apps seem to me like they fumbled the ball just short of a touchdown because otherwise the featuresets seem nice.
I have tried damselfly, immich, libre photos, photo prism, and I tried to configure nextcloud memories but I could not even get it running. It seemed pretty complicated and picky about its setup.
I went trough them all and probably a few more (photoview) and Immich is by far the best. Also at that pace of development it will be perfect soon.
Its by far the fastest for thumbnails and indexing so far at least on my hardware.
Nice comment
- backup - noun
- back up - verb
I quit as soon as I saw it still has a docker crutch. Fails security reqs due to the validation issue.
Thanks, though. Sounds like it’s gonna work well for you.
Did you know: all language is fake and made up?
Pedantics
Pedants*
PeeOnThats*