Immich

immich.app
Immich

Self-hosted photo and video backup and management server, with automatic mobile upload, timeline view, albums, search and facial recognition. Needs to be self-hosted, but gives you full ownership + control over your photos.

Open Source

Immich Source Code

Author

immich-app

Description

High performance self-hosted photo and video management solution.

#backup-tool#flutter#google-photos#google-photos-alternative#javascript#mobile-app#nestjs#nodejs#photo-gallery#photos#photos-management#self-hosted#svelte#sveltekit#typescript#videos

Homepage

https://immich.app

License

AGPL-3.0

Created

03 Feb 22

Last Updated

12 Jul 26

Latest version

v3.0.2

Primary Language

TypeScript

Size

315,516 KB

Stars

107,399

Forks

6,182

Watchers

107,399

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • Alex (10 Jul 26)

    chore: add Adam to mobile's codeowner (#29816)

  • Mees Frensel (10 Jul 26)

    chore(web): fix testing deprecations (#29799)

  • Weblate (bot) (09 Jul 26)

    chore(web): update translations (#29774) Translate-URL: https://hosted.weblate.org/projects/immich/immich/be/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/bg/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/en_GB/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/eo/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/et/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/eu/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ga/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/gl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hi/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ko/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/lt/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ml/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/mr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sq/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Cyrl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Latn/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/te/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/th/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/uk/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/vi/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/ Translation: Immich/immich Co-authored-by: Adam Havránek <[email protected]> Co-authored-by: Aiixi Bear <[email protected]> Co-authored-by: Aindriú Mac Giolla Eoin <[email protected]> Co-authored-by: Alaksandr Łopart <[email protected]> Co-authored-by: Alexis Rossfelder <[email protected]> Co-authored-by: AntonPalmqvist <[email protected]> Co-authored-by: Ardev Prisec <[email protected]> Co-authored-by: Biepa <[email protected]> Co-authored-by: Branko Kokanovic <[email protected]> Co-authored-by: Denis Pacquier <[email protected]> Co-authored-by: DevServs <[email protected]> Co-authored-by: Dusan Hlavaty <[email protected]> Co-authored-by: Emil Warelius <[email protected]> Co-authored-by: Enric Pagès i Gassull <[email protected]> Co-authored-by: Fjuro <[email protected]> Co-authored-by: Frank Paul Silye <[email protected]> Co-authored-by: Grzegorz Leks <[email protected]> Co-authored-by: Gyutaek Kang <[email protected]> Co-authored-by: HackingAll <[email protected]> Co-authored-by: Happy <[email protected]> Co-authored-by: Hosted Weblate user 157208 <[email protected]> Co-authored-by: Hurricane_32 <[email protected]> Co-authored-by: Huy Trieu <[email protected]> Co-authored-by: Hồ Nhất Duy <[email protected]> Co-authored-by: Indrek Haav <[email protected]> Co-authored-by: Ivan Dimitrov <[email protected]> Co-authored-by: Jesus Barba <[email protected]> Co-authored-by: JiZPaper <[email protected]> Co-authored-by: Jins K Joy <[email protected]> Co-authored-by: Jonas Franke <[email protected]> Co-authored-by: Jordy H <[email protected]> Co-authored-by: Jorge Montejo <[email protected]> Co-authored-by: Jozef Gaal <[email protected]> Co-authored-by: Junghyuk Kwon <[email protected]> Co-authored-by: Ketan Avhad <[email protected]> Co-authored-by: Kevin wang <[email protected]> Co-authored-by: Klenner Martins Barros <[email protected]> Co-authored-by: Liviu Roman <[email protected]> Co-authored-by: Luis Fernando Illapa <[email protected]> Co-authored-by: Marc Portabella Navarro <[email protected]> Co-authored-by: MarcSerraPeralta <[email protected]> Co-authored-by: Matjaž T. <[email protected]> Co-authored-by: Matteo De Carli <[email protected]> Co-authored-by: Mees Frensel <[email protected]> Co-authored-by: MrKoby07 <[email protected]> Co-authored-by: Muxutruk <[email protected]> Co-authored-by: Nagy Krisztián <[email protected]> Co-authored-by: Nico Sendan <[email protected]> Co-authored-by: Nicola Bortoletto <[email protected]> Co-authored-by: Ohne Sonne <[email protected]> Co-authored-by: Okie <[email protected]> Co-authored-by: Olaf Nielsen <[email protected]> Co-authored-by: PPNplus <[email protected]> Co-authored-by: Pavel Miniutka <[email protected]> Co-authored-by: PiTrick <[email protected]> Co-authored-by: Rubber Ducky <[email protected]> Co-authored-by: Sebastian <[email protected]> Co-authored-by: Simone Ognibene <[email protected]> Co-authored-by: Sylvain Pichon <[email protected]> Co-authored-by: TV Box <[email protected]> Co-authored-by: TheDevIsHere <[email protected]> Co-authored-by: Tiago <[email protected]> Co-authored-by: Tijs-B <[email protected]> Co-authored-by: Tim Morley <[email protected]> Co-authored-by: Tom Golden <[email protected]> Co-authored-by: Tomislav Renić <[email protected]> Co-authored-by: Tushar Harsora <[email protected]> Co-authored-by: User 123456789 <[email protected]> Co-authored-by: Vallabh Sharma <[email protected]> Co-authored-by: Yusuf Arda <[email protected]> Co-authored-by: bittin1ddc447d824349b2 <[email protected]> Co-authored-by: bonjur <[email protected]> Co-authored-by: canxunwangluo <[email protected]> Co-authored-by: kylo32 <[email protected]> Co-authored-by: nachtpfoetchen <[email protected]> Co-authored-by: pluwen chen <[email protected]> Co-authored-by: puv <[email protected]> Co-authored-by: rubes <[email protected]> Co-authored-by: vatahome <[email protected]> Co-authored-by: waclaw66 <[email protected]>

  • github-actions (09 Jul 26)

    chore: version v3.0.2

  • Weblate (bot) (09 Jul 26)

    chore(web): update translations (#29415) Translate-URL: https://hosted.weblate.org/projects/immich/immich/be/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/bg/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/en_GB/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/eo/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/et/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/eu/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ga/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/gl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hi/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ko/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/lt/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ml/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/mr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sq/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Cyrl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Latn/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/te/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/th/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/uk/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/vi/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/ Translation: Immich/immich Co-authored-by: Adam Havránek <[email protected]> Co-authored-by: Aiixi Bear <[email protected]> Co-authored-by: Aindriú Mac Giolla Eoin <[email protected]> Co-authored-by: Alaksandr Łopart <[email protected]> Co-authored-by: Alexis Rossfelder <[email protected]> Co-authored-by: AntonPalmqvist <[email protected]> Co-authored-by: Ardev Prisec <[email protected]> Co-authored-by: Biepa <[email protected]> Co-authored-by: Branko Kokanovic <[email protected]> Co-authored-by: Denis Pacquier <[email protected]> Co-authored-by: DevServs <[email protected]> Co-authored-by: Dusan Hlavaty <[email protected]> Co-authored-by: Emil Warelius <[email protected]> Co-authored-by: Enric Pagès i Gassull <[email protected]> Co-authored-by: Fjuro <[email protected]> Co-authored-by: Frank Paul Silye <[email protected]> Co-authored-by: Grzegorz Leks <[email protected]> Co-authored-by: Gyutaek Kang <[email protected]> Co-authored-by: HackingAll <[email protected]> Co-authored-by: Happy <[email protected]> Co-authored-by: Hosted Weblate user 157208 <[email protected]> Co-authored-by: Hurricane_32 <[email protected]> Co-authored-by: Huy Trieu <[email protected]> Co-authored-by: Hồ Nhất Duy <[email protected]> Co-authored-by: Indrek Haav <[email protected]> Co-authored-by: Ivan Dimitrov <[email protected]> Co-authored-by: Jesus Barba <[email protected]> Co-authored-by: JiZPaper <[email protected]> Co-authored-by: Jins K Joy <[email protected]> Co-authored-by: Jonas Franke <[email protected]> Co-authored-by: Jordy H <[email protected]> Co-authored-by: Jorge Montejo <[email protected]> Co-authored-by: Jozef Gaal <[email protected]> Co-authored-by: Junghyuk Kwon <[email protected]> Co-authored-by: Ketan Avhad <[email protected]> Co-authored-by: Kevin wang <[email protected]> Co-authored-by: Klenner Martins Barros <[email protected]> Co-authored-by: Liviu Roman <[email protected]> Co-authored-by: Luis Fernando Illapa <[email protected]> Co-authored-by: Marc Portabella Navarro <[email protected]> Co-authored-by: MarcSerraPeralta <[email protected]> Co-authored-by: Matjaž T. <[email protected]> Co-authored-by: Matteo De Carli <[email protected]> Co-authored-by: Mees Frensel <[email protected]> Co-authored-by: MrKoby07 <[email protected]> Co-authored-by: Muxutruk <[email protected]> Co-authored-by: Nagy Krisztián <[email protected]> Co-authored-by: Nico Sendan <[email protected]> Co-authored-by: Nicola Bortoletto <[email protected]> Co-authored-by: Ohne Sonne <[email protected]> Co-authored-by: Okie <[email protected]> Co-authored-by: Olaf Nielsen <[email protected]> Co-authored-by: PPNplus <[email protected]> Co-authored-by: Pavel Miniutka <[email protected]> Co-authored-by: PiTrick <[email protected]> Co-authored-by: Rubber Ducky <[email protected]> Co-authored-by: Sebastian <[email protected]> Co-authored-by: Simone Ognibene <[email protected]> Co-authored-by: Sylvain Pichon <[email protected]> Co-authored-by: TV Box <[email protected]> Co-authored-by: TheDevIsHere <[email protected]> Co-authored-by: Tiago <[email protected]> Co-authored-by: Tijs-B <[email protected]> Co-authored-by: Tim Morley <[email protected]> Co-authored-by: Tom Golden <[email protected]> Co-authored-by: Tomislav Renić <[email protected]> Co-authored-by: Tushar Harsora <[email protected]> Co-authored-by: User 123456789 <[email protected]> Co-authored-by: Vallabh Sharma <[email protected]> Co-authored-by: Yusuf Arda <[email protected]> Co-authored-by: bittin1ddc447d824349b2 <[email protected]> Co-authored-by: bonjur <[email protected]> Co-authored-by: canxunwangluo <[email protected]> Co-authored-by: kylo32 <[email protected]> Co-authored-by: nachtpfoetchen <[email protected]> Co-authored-by: pluwen chen <[email protected]> Co-authored-by: puv <[email protected]> Co-authored-by: rubes <[email protected]> Co-authored-by: vatahome <[email protected]> Co-authored-by: waclaw66 <[email protected]>

  • bo0tzz (09 Jul 26)

    chore: remove pgvecto.rs from docs footnote (#29729) * chore: remove pgvecto.rs from docs footnote * Update docs/docs/install/environment-variables.md Co-authored-by: Matthew Momjian <[email protected]> --------- Co-authored-by: Matthew Momjian <[email protected]>

  • shenlong (09 Jul 26)

    fix: ignore log db corruptions (#29656) * fix: ignore log db corruptions * review suggestion * log corruption recovery --------- Co-authored-by: shenlong-tanwen <[email protected]>

  • Mees Frensel (09 Jul 26)

    fix(web): always initialize language manager to set lang and dir (#29696)

  • Daniel Dietzler (09 Jul 26)

    fix: emit album update event when uploading assets through shared link (#29757)

  • Mees Frensel (09 Jul 26)

    fix(web): recursively unnest class arrays (#29755)

  • Ben Beckford (09 Jul 26)

    chore(server): use bounded numbers in workflows (#29009) * chore(server): use bounded numbers in workflows * chore: increase precision for lat/lon filtering * chore: re-add integer to a json schema type

  • Santo Shakil (08 Jul 26)

    fix(mobile): play videos from search results and folder view (#29693) * fix(mobile): play videos from search results and folder view * pr suggestion --------- Co-authored-by: Alex <[email protected]>

  • Daniel Dietzler (08 Jul 26)

    fix: missing files integrity checks (#29737)

  • Daniel Dietzler (08 Jul 26)

    fix: iso date parsing for three digit years (#29739)

  • Santo Shakil (08 Jul 26)

    fix(mobile): update timeline args on layout constraint changes (#29653) * fix(mobile): update timeline args on layout constraint changes * chore(mobile): temporary blank timeline diagnostics * chore(mobile): error logs when the timeline goes blank * chore(mobile): remove blank timeline debug logging --------- Co-authored-by: Alex <[email protected]>

  • Kha Nguyen (08 Jul 26)

    fix(web): clear asset selection when search context changes (#29738)

  • Daniel Dietzler (08 Jul 26)

    fix: search metadata for album shared links (#29742)

  • Mert (08 Jul 26)

    fix(server): stream ffprobe packets (#29723)

  • renovate[bot] (08 Jul 26)

    chore(deps): update ghcr.io/jdx/mise docker tag to v2026.7.2 (#29678)

  • Ben Beckford (08 Jul 26)

    feat(server): date workflow filter (#29040)

  • shenlong (08 Jul 26)

    fix: do not log out on automatic url switch (#29715) fix: sync headers to external endpoints Co-authored-by: shenlong-tanwen <[email protected]>

  • Mert (07 Jul 26)

    fix(mobile): http request handling after isolate death (#29714) * use ports for objc * add task reaper * cleanup, fewer allocations * link to pr

  • Daniel Dietzler (07 Jul 26)

    feat: user agnostic database restore (#29512)

  • Daniel Dietzler (07 Jul 26)

    fix: integrity checks dto validation (#29621)

  • renovate[bot] (07 Jul 26)

    chore(deps): update github-actions (#29677)

  • Adam Gastineau (07 Jul 26)

    fix(mobile): disable broken Xcode queue debugging (#29657)

  • Adam Gastineau (07 Jul 26)

    fix(mobile): properly handle live photos locally (#29462) * fix(mobile): properly handle live photos locally * Added basic motion photo data tests * Cover mismatched platforms and motion photos * Revert unnecessary storage.repository changes --------- Co-authored-by: Alex <[email protected]>

  • Mees Frensel (07 Jul 26)

    fix(docs): update developer setup (#29661)

  • Brandon Wees (07 Jul 26)

    fix(mobile): missing crop options and rotation scaling (#29645) * fix: missing aspect ratio options in mobile editor * fix: smooth rotation * chore: comments * chore: better preset management and tooling * lint --------- Co-authored-by: Alex <[email protected]>

  • Daniel Dietzler (07 Jul 26)

    fix: integrity checks checksum pagination (#29516)

Immich Security

Security Advisories (6)

  • critical Patched CVSS 9.6

    CVE-2026-53662 One-click account takeover via XSS in login page continue redirect

  • medium Patched

    CVE-2026-40096 Open Redirect via Shared Album name

  • high Patched CVSS 7.3

    CVE-2026-35455 Stored XSS via OCR Text in 360° Panorama Viewer

  • high Patched CVSS 7.2

    CVE-2026-23896 API Key Privilege Escalation

  • medium Patched

    CVE-2026-25118 Insecure transmission of shared link password

  • high Patched

    CVE-2025-43856 Account hijacking through oauth2

Immich Website

Website

Immich

Self-hosted photo and video management solution. Easily back up, organize, and manage your photos on your own server. Immich helps you browse, search and organize your photos and videos with ease, without sacrificing your privacy.

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address 104.21.2.186
  • Location San Francisco, California, United States of America, NA
  • ISP CloudFlare Inc.
  • ASN AS13335

Associated Countries

  • US US

Safety Score

Website marked as safe

100%

Blacklist Check

immich.app was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Immich Android App

APK Info

De-Googled Compatibility

Native 4.00 / 4 21 ratings
microG 4.00 / 4 8 ratings
  • GrapheneOS Native 4.0 / 4 (16)
  • crDroid microG 4.0 / 4 (3)
  • LineageOS Native 4.0 / 4 (3)
  • Evolution X Native 4.0 / 4 (2)
  • LineageOS microG 4.0 / 4 (2)
  • CalyxOS microG 4.0 / 4 (2)

Tested on Android 13–16 · Updated 26 Jan 26 · View on Plexus →

Trackers

No trackers found

Permissions

  • Access Coarse Location
  • Access Fine Location
  • Access Media Location
  • Access Network State
  • Access Wifi State
  • Foreground Service
  • Internet
  • Manage Media
  • Post Notifications
  • Read External Storage
  • Read Media Audio
  • Read Media Images
  • Read Media Video
  • Receive Boot Completed
  • Vibrate
  • Wake Lock
  • Write External Storage
  • Dynamic Receiver Not Exported Permission

Immich Docker

Container Info

immich

Immich is a high performance self-hosted photo and video backup solution.

#Photos#Ai

Run Command

docker run -d \
  

Compose File

version: 3.8

Immich Socials

Immich Reviews

More Photo Management

  • Provides an open source, audited end-to-end encrypted platform to store photos in the cloud without needing to trust the service provider. With apps for desktop, web and mobile, album sharing, public links, semantic search and facial recognition. Self-hosted or 10GB free.

About the Data: Immich

Change History

API

You can access Immich's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/immich

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Immich

Help your friends compare Photo Management, and pick privacy-respecting software and services.
Share Immich and Awesome Privacy with your network!

View Photo Management (2)