Handling HEIF images taken by the Canon R50, washed out colours
Is there any known workaround for how immich handles HDR HEIF photos taken by the Canon R50?
I've found this github link that talks about this but I've got a number of photos that have this problem in immich but not google photos.
For example, on this image of a photo I took on the left is immich and on the right is how it previews correctly in windows.
2 points · 1 comment
Immich Android app with WebDAV support instead of immich server
LE: after more research into immich, I looked into ente photos and it seems they're the more appropriate app to place the WebDAV. They already have ML integrated into the app etc.
I'm thinking of writing code for [immich Android app](github.com/immich-app/immich/tree/main/mobile%2Fa…) to support WebDAV as server, connect to Google photos and synchronize to / with WebDAV.
There's an issue ([#1687](immich#1687)) though I think is meant for the server to support WebDAV even though it'll still require an immich instance to be running
Anyone would find this useful and would like to team up? I'm needing this because I'd like to use filen as my cloud data storage with a powerful app like immich
2 points · 8 comments
Self-host Immich: I measured what Google Photos replacement actually costs in RAM
Originally published on FreeTierWatch, where we actually deploy and measure what we write about.
Immich is the self-hosted Google Photos replacement — 115,000+ GitHub stars, mobile apps with automatic backup, face recognition, and ML-powered search ("sunset over water" actually finds your sunset photos). It's the app that convinced a generation of self-hosters that leaving Google Photos was possible.
It's also the heaviest thing we've deployed in this series. Where Vaultwarden runs in 14 MB and Uptime Kuma in ~150 MB, Immich is a four-container stack that wants gigabytes. We deployed it, uploaded photos, ran the ML search, and measured what it really costs.
What you need (honestly)
- 4 GB+ free RAM — our measured working set was ~2.4 GB across the stack, with spikes during ML processing
- ~5 GB disk before any photos — the images alone total 4.7 GB
- Docker + Compose, 20 minutes
- Not a 1 GB VPS. This is the app the free Oracle ARM VM (12 GB RAM) was made for
Step 1: the official Compose stack
Immich ships its own Compose file — use it rather than hand-rolling:
mkdir immich && cd immich
curl -LO https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env https://github.com/immich-app/immich/releases/latest/download/example.env
Edit .env before starting — two changes are non-optional:
# generate a real DB password (alphanumeric only — special chars break it)
DB_PASSWORD=$(openssl rand -hex 16)
# set your timezone or every photo's date will be UTC
TZ=Asia/Kolkata
Also note UPLOAD_LOCATION=./library — point this at your biggest disk; it's where every photo lives.
docker compose up -d
First start pulled 4.7 GB of images (server 2.44 GB, machine-learning 1.1 GB, Postgres-with-vector-extensions 989 MB, Valkey 180 MB) and took ~2.5 minutes on our connection. Then open http://localhost:2283, create the admin account, and click through onboarding.
What it costs to run (measured)
| Container | RAM (settled, 5 photos processed) | Notes |
| :--- | :--- | :--- |
| immich_server | 962 MB | Peaked at 1.3 GB during initial processing |
| immich_machine_learning | 928 MB | ~200 MB idle; balloons when generating embeddings |
| immich_postgres | 465 MB | Vector-enabled Postgres (pgvecto.rs/VectorChord) |
| immich_redis (Valkey) | 14 MB | |
| Total working set | ~2.4 GB | |
| Other metrics | Measured |
| :--- | :--- |
| Images on disk | 4.7 GB |
| Database size (5 photos) | 330 MB (ML models + vector indexes dominate) |
| Upload speed | 5 photos (470 KB avg) in 235 ms via API |
| ML smart search | "sunset over water" → correct photo ranked #1, 2.2 s on CPU |
| Server restart to ready | 5 s |
The headline: the machine-learning magic is real and runs fine on CPU — but it's why this stack needs several GB of RAM where a plain photo gallery would need 200 MB. That's the trade: Google-Photos-grade search, Google-Photos-grade resource bill (except you pay in RAM, not rupees).
!Immich timeline showing uploaded photos
Gotchas we hit or verified
- DB password charset: special characters in DB_PASSWORD break the connection string — the env file warns you; believe it. Alphanumeric only.
- The compose file changes between releases. Immich moves fast (it only recently left "breaking changes any week" beta culture). Always re-download the compose file from the release you're upgrading to — don't just docker compose pull.
- ML is optional but on by default. On a weak machine you can remove the immich-machine-learning service entirely — uploads and browsing work; you lose smart search and face recognition.
- Mobile backup needs HTTPS or same-network HTTP. For remote access, put it behind a reverse proxy with TLS, or better: Tailscale — don't expose a photo library to the open internet.
- The database is not disposable. Unlike our other guides where the data volume was a convenience, here Postgres holds all metadata, albums, faces, and edits. Back up BOTH the library folder AND a pg_dump — the official docs have a backup guide; follow it before you load 20,000 photos, not after.
When NOT to self-host Immich
- Under 4 GB of spare RAM — it will run badly or not at all. This is the one app in our series where the free-tier PaaS options are all non-starters; it needs a real machine.
- Your photos currently live only on your phone. Until your Immich server itself is backed up (3-2-1: the library folder + DB dump, off-site), it's not a backup — it's a second copy on hardware you administer. Google Photos' value was never the gallery; it was the durability.
- Intermittent homelab. A backup target that's offline when your phone wants to sync defeats the purpose. Our test box is a workstation; a real deployment wants always-on — the Oracle free VM's 2 OCPU/12 GB fits Immich better than anything else free.
What we actually ran this on
- Machine: Intel Core Ultra 7 255H (16 cores), 30 GB RAM, NVMe
- OS: Ubuntu 24.04.5 LTS · Docker: 29.8.1, Compose v5.1.3
- Immich: v3 (release tag), official compose: server + ML + VectorChord Postgres + Valkey
- Verified: admin setup, API upload (5 photos), thumbnail + embedding generation, smart search ranking, restart persistence
- Date: 2026-10-30
How to Install Immich: Self-Hosted Google Photos in 15 Minutes
Last year I compared running Nextcloud and Immich side by side, and the verdict was clear: for photos specifically, Immich wins. It's the closest thing to a self-hosted Google Photos — automatic phone backup, face recognition, map view, shared albums — but several people asked for the actual install walkthrough. Here it is.
This guide gets Immich running with Docker Compose, your phone auto-uploading, and the mistakes to avoid.
What you need
- A server with Docker and Docker Compose — 4 GB RAM recommended (the machine-learning container is the hungry one; it runs fine on less if you're patient)
- Storage sized for your library, plus headroom for generated thumbnails (roughly 5–10% extra)
- Optional but recommended: a domain and HTTPS via reverse proxy
Get the official files
Immich ships a ready-made Compose setup. Don't hand-roll it — the project moves fast and their files track the correct service wiring:
mkdir immich && cd immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
That gives you four containers: the server, machine learning (faces/objects/search), Redis, and PostgreSQL with the pgvecto.rs extension the ML search needs.
Configure .env
Open .env and set three things:
# Where your photos actually live — point at real storage, not the SD card
UPLOAD_LOCATION=/mnt/storage/immich
# A proper password, not the default
DB_PASSWORD=use-something-long-and-random
# Your timezone for correct timestamps
TZ=Asia/Kolkata
The UPLOAD_LOCATION choice matters more than it looks. Everything Immich ingests lands there, organized by user and date. Moving it later is possible but annoying — put it on the big disk now.
Start it
docker compose up -d
docker compose logs -f immich_server
Wait for the "Immich Server is listening" line, then open http://your-server-ip:2283. Create the admin account on first visit — this is your account, the family gets their own later from Administration → Users.
Phone backup: the part everyone actually wants
Install the Immich app (Play Store, F-Droid, or App Store), log in with your server URL, then:
1. Tap your profile picture → Backup
2. Select albums to include (Camera at minimum)
3. Enable Background backup — on Android also disable battery optimization for Immich, or uploads silently stop overnight
4. Leave "Upload on Wi-Fi only" on unless your data plan is heroic
The first sync of an existing library takes a while. Plug the phone in, let it chew overnight.
Make it survivable
HTTPS. If the app will ever connect outside your LAN, put Immich behind HTTPS — you're streaming your entire photo library. Any reverse proxy with Let's Encrypt works; just make sure WebSocket upgrades pass through (Upgrade/Connection headers in Nginx).
Backups. Immich is not a backup — it's your library. Protect two things: the UPLOAD_LOCATION folder (the actual photos) and a database dump:
docker exec immich_postgres pg_dumpall -c -U postgres | gzip > immich-db-$(date +%F).sql.gz
Fold both into your 3-2-1 backup routine.
Upgrades. This is the one rule Immich veterans repeat: read the release notes before pulling. Immich ships breaking changes and database migrations regularly. docker compose pull && docker compose up -d handles the mechanics, but never upgrade blind, and take a database dump first. Auto-updaters like Watchtower are a bad idea here.
Nice extras once it's stable
- External libraries (Administration → Libraries): point Immich at an existing photo folder without importing/copying it — perfect for the archive already on your NAS
- Hardware acceleration: if the server has a GPU or Intel Quick Sync, enable it for thumbnail and transcoding jobs in the Compose file's hwaccel variants
- Shared albums with partner accounts: each person backs up to their own account, then share albums — no more "send me that photo"
Where this leaves you
Photos flowing automatically from every phone in the house to storage you own, searchable by face and place, with no subscription and nobody training models on your kids' birthdays. Combined with Filux for sharing files and Vaultwarden for passwords, the biggest pieces of the Google stack now live on your hardware.
7) Google Photos → Immich
Backs up your phone's photos to your own drive, with AI search like "dog on the beach".
Your family photos stop training someone else's model. 118K stars.
immich-app/immich
3 likes · 82 views
5 GitHub Projects That Feel Too Good to Be Free
🔥 5 GitHub Projects That Feel Too Good to Be Free!
What if you could edit PDFs, monitor websites, back up your photos, and transfer files between devices — without paying for expensive software?
In this video, we're exploring 5 amazing open-source GitHub projects that offer powerful features for free. Whether you're a developer, student, content creator, or tech enthusiast, these tools are worth checking out!
🚀 THE 5 PROJECTS:
✅ 1. Excalidraw – Create diagrams, flowcharts, and sketches.
🔗 excalidraw/excalidraw
✅ 2. Stirling PDF – Merge, split, compress, and manage PDF documents.
🔗 Stirling-Tools/Stirling-PDF
✅ 3. Uptime Kuma – Monitor your websites, APIs, and services.
🔗 louislam/uptime-kuma
✅ 4. Immich – Build your own photo and video library.
🔗 immich-app/immich
✅ 5. LocalSend – Transfer files between nearby devices without relying on cloud uploads.
🔗 localsend/localsend
#GitHub #OpenSource #FreeSoftware
☺ Thanks For Watching! ☺
If you find this helpful, 💙Like and ✅ Subscribe
511 views
Build Your Own Photo Library with Immich #Shorts
Self-hosted photos and videos.
Immich brings that photo-library experience to a server you control. It supports photos and videos, with mobile apps and a web interface.
Start with the official server guide and a small test album. It can help organize your collection, but keep an independent backup of the original files.
Try the project: immich-app/immich
Would you host your photo library?
Save this video and subscribe for more practical GitHub projects.
Workflow illustrations and synthetic narration. Features and setup requirements can change; check the official repository.
#GitHub #SelfHosted #Immich #Shorts
5 views
புகைப்படங்கள் உங்கள் server-ல் இருந்தால் போதும்..
Immich தானாக சேமிக்கிறது, முகம் வைத்து தேடலாம்.
முதலில் எந்த புகைப்படங்களை மாற்றுவீர்கள் ?
immich-app/immich
Instagram-லும் பின்தொடருங்கள்: instagram.com
6 likes · 516 views
Google Photos hits 15 GB and suddenly your memories are behind a subscription paywall.
Immich replaces it completely:
- Automatic camera roll sync
- On-device face recognition
Comment "PHOTOS" for the setup guide:
immich-app/immich
1 like
For the latter, would Immich work? If it has anything you don’t want, you could fork your own maybe?
immich-app/immich
1 like
Mentions
Handling HEIF images taken by the Canon R50, washed out colours Is there any known workaround for how immich handles HDR HEIF photos taken by the Canon R50? I've found this github link that talks about this but I've got a number of photos that have this problem in immich but not google photos. For example, on this image of a photo I took on the left is immich and on the right is how it previews correctly in windows.
Immich Android app with WebDAV support instead of immich server LE: after more research into immich, I looked into ente photos and it seems they're the more appropriate app to place the WebDAV. They already have ML integrated into the app etc. I'm thinking of writing code for [immich Android app](github.com/immich-app/immich/tree/main/mobile%2Fa…) to support WebDAV as server, connect to Google photos and synchronize to / with WebDAV. There's an issue ([#1687](immich#1687)) though I think is meant for the server to support WebDAV even though it'll still require an immich instance to be running Anyone would find this useful and would like to team up? I'm needing this because I'd like to use filen as my cloud data storage with a powerful app like immich
Self-host Immich: I measured what Google Photos replacement actually costs in RAM Originally published on FreeTierWatch, where we actually deploy and measure what we write about. Immich is the self-hosted Google Photos replacement — 115,000+ GitHub stars, mobile apps with automatic backup, face recognition, and ML-powered search ("sunset over water" actually finds your sunset photos). It's the app that convinced a generation of self-hosters that leaving Google Photos was possible. It's also the heaviest thing we've deployed in this series. Where Vaultwarden runs in 14 MB and Uptime Kuma in ~150 MB, Immich is a four-container stack that wants gigabytes. We deployed it, uploaded photos, ran the ML search, and measured what it really costs. What you need (honestly) - 4 GB+ free RAM — our measured working set was ~2.4 GB across the stack, with spikes during ML processing - ~5 GB disk before any photos — the images alone total 4.7 GB - Docker + Compose, 20 minutes - Not a 1 GB VPS. This is the app the free Oracle ARM VM (12 GB RAM) was made for Step 1: the official Compose stack Immich ships its own Compose file — use it rather than hand-rolling: mkdir immich && cd immich curl -LO https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml curl -L -o .env https://github.com/immich-app/immich/releases/latest/download/example.env Edit .env before starting — two changes are non-optional: # generate a real DB password (alphanumeric only — special chars break it) DB_PASSWORD=$(openssl rand -hex 16) # set your timezone or every photo's date will be UTC TZ=Asia/Kolkata Also note UPLOAD_LOCATION=./library — point this at your biggest disk; it's where every photo lives. docker compose up -d First start pulled 4.7 GB of images (server 2.44 GB, machine-learning 1.1 GB, Postgres-with-vector-extensions 989 MB, Valkey 180 MB) and took ~2.5 minutes on our connection. Then open http://localhost:2283, create the admin account, and click through onboarding. What it costs to run (measured) | Container | RAM (settled, 5 photos processed) | Notes | | :--- | :--- | :--- | | immich_server | 962 MB | Peaked at 1.3 GB during initial processing | | immich_machine_learning | 928 MB | ~200 MB idle; balloons when generating embeddings | | immich_postgres | 465 MB | Vector-enabled Postgres (pgvecto.rs/VectorChord) | | immich_redis (Valkey) | 14 MB | | | Total working set | ~2.4 GB | | | Other metrics | Measured | | :--- | :--- | | Images on disk | 4.7 GB | | Database size (5 photos) | 330 MB (ML models + vector indexes dominate) | | Upload speed | 5 photos (470 KB avg) in 235 ms via API | | ML smart search | "sunset over water" → correct photo ranked #1, 2.2 s on CPU | | Server restart to ready | 5 s | The headline: the machine-learning magic is real and runs fine on CPU — but it's why this stack needs several GB of RAM where a plain photo gallery would need 200 MB. That's the trade: Google-Photos-grade search, Google-Photos-grade resource bill (except you pay in RAM, not rupees). !Immich timeline showing uploaded photos Gotchas we hit or verified - DB password charset: special characters in DB_PASSWORD break the connection string — the env file warns you; believe it. Alphanumeric only. - The compose file changes between releases. Immich moves fast (it only recently left "breaking changes any week" beta culture). Always re-download the compose file from the release you're upgrading to — don't just docker compose pull. - ML is optional but on by default. On a weak machine you can remove the immich-machine-learning service entirely — uploads and browsing work; you lose smart search and face recognition. - Mobile backup needs HTTPS or same-network HTTP. For remote access, put it behind a reverse proxy with TLS, or better: Tailscale — don't expose a photo library to the open internet. - The database is not disposable. Unlike our other guides where the data volume was a convenience, here Postgres holds all metadata, albums, faces, and edits. Back up BOTH the library folder AND a pg_dump — the official docs have a backup guide; follow it before you load 20,000 photos, not after. When NOT to self-host Immich - Under 4 GB of spare RAM — it will run badly or not at all. This is the one app in our series where the free-tier PaaS options are all non-starters; it needs a real machine. - Your photos currently live only on your phone. Until your Immich server itself is backed up (3-2-1: the library folder + DB dump, off-site), it's not a backup — it's a second copy on hardware you administer. Google Photos' value was never the gallery; it was the durability. - Intermittent homelab. A backup target that's offline when your phone wants to sync defeats the purpose. Our test box is a workstation; a real deployment wants always-on — the Oracle free VM's 2 OCPU/12 GB fits Immich better than anything else free. What we actually ran this on - Machine: Intel Core Ultra 7 255H (16 cores), 30 GB RAM, NVMe - OS: Ubuntu 24.04.5 LTS · Docker: 29.8.1, Compose v5.1.3 - Immich: v3 (release tag), official compose: server + ML + VectorChord Postgres + Valkey - Verified: admin setup, API upload (5 photos), thumbnail + embedding generation, smart search ranking, restart persistence - Date: 2026-10-30
How to Install Immich: Self-Hosted Google Photos in 15 Minutes Last year I compared running Nextcloud and Immich side by side, and the verdict was clear: for photos specifically, Immich wins. It's the closest thing to a self-hosted Google Photos — automatic phone backup, face recognition, map view, shared albums — but several people asked for the actual install walkthrough. Here it is. This guide gets Immich running with Docker Compose, your phone auto-uploading, and the mistakes to avoid. What you need - A server with Docker and Docker Compose — 4 GB RAM recommended (the machine-learning container is the hungry one; it runs fine on less if you're patient) - Storage sized for your library, plus headroom for generated thumbnails (roughly 5–10% extra) - Optional but recommended: a domain and HTTPS via reverse proxy Get the official files Immich ships a ready-made Compose setup. Don't hand-roll it — the project moves fast and their files track the correct service wiring: mkdir immich && cd immich wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env That gives you four containers: the server, machine learning (faces/objects/search), Redis, and PostgreSQL with the pgvecto.rs extension the ML search needs. Configure .env Open .env and set three things: # Where your photos actually live — point at real storage, not the SD card UPLOAD_LOCATION=/mnt/storage/immich # A proper password, not the default DB_PASSWORD=use-something-long-and-random # Your timezone for correct timestamps TZ=Asia/Kolkata The UPLOAD_LOCATION choice matters more than it looks. Everything Immich ingests lands there, organized by user and date. Moving it later is possible but annoying — put it on the big disk now. Start it docker compose up -d docker compose logs -f immich_server Wait for the "Immich Server is listening" line, then open http://your-server-ip:2283. Create the admin account on first visit — this is your account, the family gets their own later from Administration → Users. Phone backup: the part everyone actually wants Install the Immich app (Play Store, F-Droid, or App Store), log in with your server URL, then: 1. Tap your profile picture → Backup 2. Select albums to include (Camera at minimum) 3. Enable Background backup — on Android also disable battery optimization for Immich, or uploads silently stop overnight 4. Leave "Upload on Wi-Fi only" on unless your data plan is heroic The first sync of an existing library takes a while. Plug the phone in, let it chew overnight. Make it survivable HTTPS. If the app will ever connect outside your LAN, put Immich behind HTTPS — you're streaming your entire photo library. Any reverse proxy with Let's Encrypt works; just make sure WebSocket upgrades pass through (Upgrade/Connection headers in Nginx). Backups. Immich is not a backup — it's your library. Protect two things: the UPLOAD_LOCATION folder (the actual photos) and a database dump: docker exec immich_postgres pg_dumpall -c -U postgres | gzip > immich-db-$(date +%F).sql.gz Fold both into your 3-2-1 backup routine. Upgrades. This is the one rule Immich veterans repeat: read the release notes before pulling. Immich ships breaking changes and database migrations regularly. docker compose pull && docker compose up -d handles the mechanics, but never upgrade blind, and take a database dump first. Auto-updaters like Watchtower are a bad idea here. Nice extras once it's stable - External libraries (Administration → Libraries): point Immich at an existing photo folder without importing/copying it — perfect for the archive already on your NAS - Hardware acceleration: if the server has a GPU or Intel Quick Sync, enable it for thumbnail and transcoding jobs in the Compose file's hwaccel variants - Shared albums with partner accounts: each person backs up to their own account, then share albums — no more "send me that photo" Where this leaves you Photos flowing automatically from every phone in the house to storage you own, searchable by face and place, with no subscription and nobody training models on your kids' birthdays. Combined with Filux for sharing files and Vaultwarden for passwords, the biggest pieces of the Google stack now live on your hardware.
7) Google Photos → Immich Backs up your phone's photos to your own drive, with AI search like "dog on the beach". Your family photos stop training someone else's model. 118K stars. immich-app/immich
5 GitHub Projects That Feel Too Good to Be Free 🔥 5 GitHub Projects That Feel Too Good to Be Free! What if you could edit PDFs, monitor websites, back up your photos, and transfer files between devices — without paying for expensive software? In this video, we're exploring 5 amazing open-source GitHub projects that offer powerful features for free. Whether you're a developer, student, content creator, or tech enthusiast, these tools are worth checking out! 🚀 THE 5 PROJECTS: ✅ 1. Excalidraw – Create diagrams, flowcharts, and sketches. 🔗 excalidraw/excalidraw ✅ 2. Stirling PDF – Merge, split, compress, and manage PDF documents. 🔗 Stirling-Tools/Stirling-PDF ✅ 3. Uptime Kuma – Monitor your websites, APIs, and services. 🔗 louislam/uptime-kuma ✅ 4. Immich – Build your own photo and video library. 🔗 immich-app/immich ✅ 5. LocalSend – Transfer files between nearby devices without relying on cloud uploads. 🔗 localsend/localsend #GitHub #OpenSource #FreeSoftware ☺ Thanks For Watching! ☺ If you find this helpful, 💙Like and ✅ Subscribe
Build Your Own Photo Library with Immich #Shorts Self-hosted photos and videos. Immich brings that photo-library experience to a server you control. It supports photos and videos, with mobile apps and a web interface. Start with the official server guide and a small test album. It can help organize your collection, but keep an independent backup of the original files. Try the project: immich-app/immich Would you host your photo library? Save this video and subscribe for more practical GitHub projects. Workflow illustrations and synthetic narration. Features and setup requirements can change; check the official repository. #GitHub #SelfHosted #Immich #Shorts
புகைப்படங்கள் உங்கள் server-ல் இருந்தால் போதும்.. Immich தானாக சேமிக்கிறது, முகம் வைத்து தேடலாம். முதலில் எந்த புகைப்படங்களை மாற்றுவீர்கள் ? immich-app/immich Instagram-லும் பின்தொடருங்கள்: instagram.com
Google Photos hits 15 GB and suddenly your memories are behind a subscription paywall. Immich replaces it completely: - Automatic camera roll sync - On-device face recognition Comment "PHOTOS" for the setup guide: immich-app/immich
For the latter, would Immich work? If it has anything you don’t want, you could fork your own maybe? immich-app/immich