High performance self-hosted photo and video management solution.
 
 
 
 
 
 
Go to file
Claude 2feee111fd
feat(mobile): choose JPEG preview or original quality when sharing
Add a mechanism to share either the server-generated JPEG preview or the
full original file. When the selection contains at least one asset that can
provide a preview (a remote image), a bottom sheet lets the user pick the
quality; otherwise sharing falls back to the original as before.

The share-source resolution is extracted into pure, unit-tested business
logic that handles all three asset states (local, remote, merged):
- preview requires a remote image; videos and local-only assets fall back
  to the original
- original prefers the on-device file, but edited assets are downloaded
  since edits only exist on the server
- preview filenames are normalized to a .jpg extension

Add unit tests covering the resolution, gating and filename helpers.
2026-05-30 18:39:01 +00:00
.devcontainer fix: dev container properly builds @immich/plugin-sdk for import (#28620) 2026-05-27 12:41:35 -04:00
.github refactor: use widget previews for ui showcase (#28548) 2026-05-29 20:22:47 +00:00
.vscode refactor: move cli to package folder (#28356) 2026-05-11 14:49:45 -04:00
deployment feat: use lockfile for mise tools (#28503) 2026-05-20 11:37:33 +00:00
design chore: update readme screenshot (#8182) 2024-03-22 04:31:36 +00:00
docker chore: install mise in Dockerfile.dev (#28649) 2026-05-27 11:43:17 -04:00
docs refactor: use widget previews for ui showcase (#28548) 2026-05-29 20:22:47 +00:00
e2e chore: migrate more make targets (#28663) 2026-05-28 08:33:57 -04:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
i18n feat(mobile): choose JPEG preview or original quality when sharing 2026-05-30 18:39:01 +00:00
machine-learning fix(ml): pass model_root_dir to OcrOptions for RapidOCR compatibility (#28610) 2026-05-28 22:54:04 -04:00
misc/release chore: mise scripts (#28367) 2026-05-11 17:46:02 -04:00
mobile feat(mobile): choose JPEG preview or original quality when sharing 2026-05-30 18:39:01 +00:00
open-api chore(mobile): make openapi requests abortable (#28692) 2026-05-30 10:31:17 -05:00
packages feat: more plugin triggers and methods (#28690) 2026-05-29 14:02:07 -04:00
readme_i18n chore: update readmes to match main (#28458) 2026-05-17 13:08:27 -05:00
server feat: more plugin triggers and methods (#28690) 2026-05-29 14:02:07 -04:00
web feat: more plugin triggers and methods (#28690) 2026-05-29 14:02:07 -04:00
.dockerignore chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.editorconfig chore: linting (#7532) 2026-01-04 16:05:56 +00:00
.gitattributes chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.gitignore chore: move sdk to packages (#28350) 2026-05-11 13:37:10 -04:00
.gitmodules chore: remove stale mobile/.isar submodule entry (#27913) 2026-04-18 04:29:13 +05:30
.nvmrc chore: use mise (#28298) 2026-05-08 15:21:33 -04:00
.pnpmfile.cjs fix: exiftool-vendored.exe (#26393) 2026-02-20 09:16:42 -05:00
.prettierrc refactor: move i18n formatting to workspace root (#28360) 2026-05-11 16:19:28 -04:00
CODEOWNERS chore: add mobile codeowner (#22130) 2025-09-17 14:08:35 +02:00
CODE_OF_CONDUCT.md Added Code of conduct 2024-07-05 15:31:13 +00:00
CONTRIBUTING.md fix(docs): we usually don't assign issues (#26691) 2026-03-04 09:43:19 -06:00
LICENSE Change license to AGPLv3 (#7046) 2024-02-12 15:31:59 +00:00
Makefile chore: migrate more make targets (#28663) 2026-05-28 08:33:57 -04:00
README.md fix(docs): update Readme links (#23959) 2025-11-18 21:32:11 -06:00
SECURITY.md chore: use immich.app email for security reports (#10594) 2024-06-24 07:25:48 -07:00
install.sh fix: bash install.sh script for mac os (#15874) 2025-02-03 16:41:42 -06:00
mise.lock chore: upgrade flutter to 3.44.0 (#28537) 2026-05-27 11:14:44 -05:00
mise.toml refactor: plugin sdk types (#28674) 2026-05-28 22:04:15 +00:00
package.json fix(deps): update typescript-projects (#28371) 2026-05-20 16:56:27 +02:00
pnpm-lock.yaml feat: more plugin triggers and methods (#28690) 2026-05-29 14:02:07 -04:00
pnpm-workspace.yaml fix: make ts a peer dependency for swagger (#28677) 2026-05-28 22:04:25 +00:00
renovate.json fix: let renovate update base images (#27272) 2026-03-25 18:00:40 +00:00

README.md


License: AGPLv3 Discord

High performance self-hosted photo and video management solution



Català Español Français Italiano 日本語 한국어 Deutsch Nederlands Türkçe 简体中文 正體中文 Українська Русский Português Brasileiro Svenska العربية Tiếng Việt ภาษาไทย

[!WARNING] ⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!

[!NOTE] You can find the main documentation, including installation guides, at https://immich.app/.

Demo

Access the demo here. For the mobile app, you can use https://demo.immich.app for the Server Endpoint URL.

Login credentials

Email Password
demo@immich.app demo

Features

Features Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Prevent duplication of assets Yes Yes
Selective album(s) for backup Yes N/A
Download photos and videos to local device Yes Yes
Multi-user support Yes Yes
Album and Shared albums Yes Yes
Scrubbable/draggable scrollbar Yes Yes
Support raw formats Yes Yes
Metadata view (EXIF, map) Yes Yes
Search by metadata, objects, faces, and CLIP Yes Yes
Administrative functions (user management) No Yes
Background backup Yes N/A
Virtual scroll Yes Yes
OAuth support Yes Yes
API Keys N/A Yes
LivePhoto/MotionPhoto backup and playback Yes Yes
Support 360 degree image display No Yes
User-defined storage structure Yes Yes
Public Sharing Yes Yes
Archive and Favorites Yes Yes
Global Map Yes Yes
Partner Sharing Yes Yes
Facial recognition and clustering Yes Yes
Memories (x years ago) Yes Yes
Offline support Yes No
Read-only gallery Yes Yes
Stacked Photos Yes Yes
Tags No Yes
Folder View Yes Yes

Translations

Read more about translations here.

Translation status

Repository activity

Activities

Star history

Star History Chart

Contributors