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

29 Jul 26

Latest version

v3.1.0

Primary Language

TypeScript

Size

316,050 KB

Stars

109,132

Forks

6,373

Watchers

109,132

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • Jason Rasmussen (29 Jul 26)

    fix: privacy policy link (#30344)

  • Jason Rasmussen (28 Jul 26)

    chore: remove old makefiles (#30339)

  • Matthew Momjian (28 Jul 26)

    fix(deployment): matplotlib in rootless deployments (#30328)

  • Daniel Dietzler (28 Jul 26)

    chore: clarify contributing guidelines (#30330)

  • bo0tzz (28 Jul 26)

    chore: add test for admin controller permissions (#30316)

  • Daniel Dietzler (28 Jul 26)

    feat: add cantonese for mobile (#30318)

  • renovate[bot] (28 Jul 26)

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

  • renovate[bot] (28 Jul 26)

    chore(deps): update docker.io/valkey/valkey:9 docker digest to 3acc068 (#30298)

  • Daniel Dietzler (28 Jul 26)

    fix: calendar heatmap api key permissions (#30314)

  • renovate[bot] (28 Jul 26)

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

  • Daniel Dietzler (28 Jul 26)

    fix: calendar heatmap permissions (#30310)

  • Alex (27 Jul 26)

    fix: make sure iOS memory widget render (#30172) * fix: make sure iOS memory widget render * pr feedback

  • github-actions (27 Jul 26)

    chore: version v3.1.0

  • Weblate (bot) (27 Jul 26)

    chore(web): update translations (#29781) Translate-URL: https://hosted.weblate.org/projects/immich/immich/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/af/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ar/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/az/ 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/bn/ 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/de_CH/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/ 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/fa/ 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/gsw/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/id/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ja/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ka/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/kn/ 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/ms/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/ne/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/nn/ Translate-URL: https://hosted.weblate.org/projects/immich/immich/pa/ 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/sv/ 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: 100daysummer <[email protected]> Co-authored-by: Adam Havrรกnek <[email protected]> Co-authored-by: AgentTricky <[email protected]> Co-authored-by: Aggรฅr <[email protected]> Co-authored-by: Ahmed Khaleel Shihab <[email protected]> Co-authored-by: Aindriรบ Mac Giolla Eoin <[email protected]> Co-authored-by: Alexander <[email protected]> Co-authored-by: Alice Visek <[email protected]> Co-authored-by: Arif Budiman <[email protected]> Co-authored-by: Arseniy <[email protected]> Co-authored-by: Arthur Eduardo Good <[email protected]> Co-authored-by: Azharul Haque <[email protected]> Co-authored-by: Carlo Lecce <[email protected]> Co-authored-by: Crystal <[email protected]> Co-authored-by: Derik Nel <[email protected]> Co-authored-by: DevServs <[email protected]> Co-authored-by: Eduard Ereza Martรญnez <[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: George Hallai <[email protected]> Co-authored-by: Guy Slutzker <[email protected]> Co-authored-by: HackingAll <[email protected]> Co-authored-by: Hans Cats <[email protected]> Co-authored-by: Happy <[email protected]> Co-authored-by: Haru Ijima <[email protected]> Co-authored-by: Hosted Weblate user 157829 <[email protected]> Co-authored-by: Hugo Dantas <[email protected]> Co-authored-by: Hurricane_32 <[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: Jakub Biernat <[email protected]> Co-authored-by: Jarukrit Sripaploen <[email protected]> Co-authored-by: Jaspreet Singh <[email protected]> Co-authored-by: Javid Yagubali <[email protected]> Co-authored-by: Jayden Lo <[email protected]> Co-authored-by: Jeppe Nellemann <[email protected]> Co-authored-by: John Molkavitch <[email protected]> Co-authored-by: Jozef Gaal <[email protected]> Co-authored-by: Klenner Martins Barros <[email protected]> Co-authored-by: Linas Samuchovas <[email protected]> Co-authored-by: Lucka <[email protected]> Co-authored-by: Luis Fernando Illapa <[email protected]> Co-authored-by: MarcSerraPeralta <[email protected]> Co-authored-by: Matjaลพ T. <[email protected]> Co-authored-by: Max <[email protected]> Co-authored-by: Mees Frensel <[email protected]> Co-authored-by: Melih Ozkan <[email protected]> Co-authored-by: Mona Lisa <[email protected]> Co-authored-by: Muxutruk <[email protected]> Co-authored-by: NOBOIKE <[email protected]> Co-authored-by: Nagy Krisztiรกn <[email protected]> Co-authored-by: Nicola Bortoletto <[email protected]> Co-authored-by: Nikola Todorov <[email protected]> Co-authored-by: OฤŸuz Ersen <[email protected]> Co-authored-by: PPNplus <[email protected]> Co-authored-by: Pavel Miniutka <[email protected]> Co-authored-by: Runskrift <[email protected]> Co-authored-by: SKAL <[email protected]> Co-authored-by: Samipya Mainali <[email protected]> Co-authored-by: Securitocat <[email protected]> Co-authored-by: Skanda <[email protected]> Co-authored-by: Stan P <[email protected]> Co-authored-by: Syahmi Azhar <[email protected]> Co-authored-by: Sylvain Pichon <[email protected]> Co-authored-by: TV Box <[email protected]> Co-authored-by: Tal Gruper <[email protected]> Co-authored-by: Temuri Doghonadze <[email protected]> Co-authored-by: Tiago <[email protected]> Co-authored-by: Tim <[email protected]> Co-authored-by: Tim Morley <[email protected]> Co-authored-by: Tyson Igana <[email protected]> Co-authored-by: User 123456789 <[email protected]> Co-authored-by: Yuko <[email protected]> Co-authored-by: Yusuf Arda <[email protected]> Co-authored-by: ZaKyatto <[email protected]> Co-authored-by: bittin1ddc447d824349b2 <[email protected]> Co-authored-by: chamdim <[email protected]> Co-authored-by: eav5jhl0 <[email protected]> Co-authored-by: emrothenberg <[email protected]> Co-authored-by: ezn24 <[email protected]> Co-authored-by: fennek <[email protected]> Co-authored-by: gilles <[email protected]> Co-authored-by: matthew <[email protected]> Co-authored-by: noob translator <[email protected]> Co-authored-by: oxygenxc <[email protected]> Co-authored-by: pyccl <[email protected]> Co-authored-by: reducedradius <[email protected]> Co-authored-by: rubes <[email protected]> Co-authored-by: shamgamer <[email protected]> Co-authored-by: shawshuai <[email protected]> Co-authored-by: thedmo <[email protected]> Co-authored-by: thomaLV <[email protected]> Co-authored-by: waclaw66 <[email protected]> Co-authored-by: wlusr <[email protected]> Co-authored-by: ่˜ญ่˜ญ้œฒ <[email protected]> Co-authored-by: ์ •๋™๊ฑธ <[email protected]>

  • Adam Gastineau (27 Jul 26)

    fix(mobile): prevent timeline scroll to top on unrelated pages (#30281)

  • shenlong (27 Jul 26)

    refactor: asset update method (#30201) Co-authored-by: shenlong-tanwen <[email protected]>

  • Jason Rasmussen (27 Jul 26)

    fix(web): single grid row spacing (#30277)

  • Adam Gastineau (27 Jul 26)

    chore(mobile): harden mobile OpenAPI codegen and dependency install (#30202) * chore(mobile): harden mobile OpenAPI codegen and dependency install * Cleaner mise cascade * Version openapi-generator-cli with mise * Relocate tool definition * Update lock file

  • bo0tzz (26 Jul 26)

    chore: clarify MediaRepository extract logging (#30249)

  • Daniel Dietzler (24 Jul 26)

    fix: shared by user detail panel (#30187)

  • Daniel Dietzler (24 Jul 26)

    chore: medium tests system config helpers (#30174)

  • shenlong (24 Jul 26)

    chore: pump flutter to 3.44.8 (#30205) Co-authored-by: shenlong-tanwen <[email protected]>

  • Adam Gastineau (24 Jul 26)

    fix(mobile): align iOS widget text box with widget's corners (#30176) * fix(mobile): align iOS widget text box with widget's corners * Improve image centering and fix formatting * Remove duplicate preview

  • shenlong (24 Jul 26)

    feat: button longpress handler (#30200) * feat: button longpress handler * review suggestion --------- Co-authored-by: shenlong-tanwen <[email protected]>

  • bo0tzz (24 Jul 26)

    fix: don't skip person thumbnail generation if ML is disabled (#30194)

  • NOBOIKE (24 Jul 26)

    fix(web): use RTL transform origin in AdaptiveImage (#30182)

  • Jason Rasmussen (23 Jul 26)

    fix: min faces user preference (#30177)

  • Adam Gastineau (23 Jul 26)

    fix(mobile): properly align iOS widget loading state (#30173)

  • Adam Gastineau (23 Jul 26)

    chore(mobile): force swift-structured-queries lock to 0.34.0 (#30166)

  • NOBOIKE (23 Jul 26)

    fix(web): mirror onboarding navigation icons in RTL (#30158) Co-authored-by: root <[email protected]>

Immich Security

Security Advisories (11)

  • medium Patched CVSS 6.1

    GHSA-qp2h-w794-2vhf Incomplete fix for login continue redirect allows slash-backslash open redirect

  • critical Patched CVSS 9.6

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

  • medium Patched CVSS 4.7

    GHSA-hfvf-5c8x-8rc4 OIDC discovery/token/userinfo/JWKS fetches run with TLS certificate verification unconditionally disabled via allowInsecureRequests (CWE-295)

  • medium Patched

    CVE-2026-40096 Open Redirect via Shared Album name

  • low Patched CVSS 2.8

    GHSA-jrp5-g662-hq92 Unsafe ZIP Entry Names (Zip Slip Class) in Archive Download Endpoint

  • high Patched CVSS 7.3

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

  • medium Patched CVSS 4.1

    GHSA-hq46-gw2v-q86p SSRF via OAuth Profile Picture URL (CWE-918)

  • high Patched CVSS 7.2

    CVE-2026-23896 API Key Privilege Escalation

  • medium Patched

    GHSA-hvq7-hq9r-8gjr [DCODX-AI] Shared-link authentication allows adding owner's assets to shared links (AssetShare authorization bypass)

  • 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)