backup-toolfluttergoogle-photosgoogle-photos-alternativejavascriptmobile-appnestjsnodejsphoto-galleryphotosphotos-managementself-hostedsveltesveltekittypescriptvideos
fix(mobile): deduplicate assets in person view timeline Previously, assets with multiple face records for the same person (e.g., manual Digikam imports and Immich ML detections) appeared multiple times in the person timeline. This was caused by an inner join on the assetFaceEntity without proper deduplication. This commit refactors the timeline queries to use a subquery approach instead of joins and grouping. This ensures: - _getPersonBucketAssets: Only unique assets are fetched, even if multiple face records exist for a single asset. - _watchPersonBucket: Asset counts in timeline headers are accurate and represent unique assets. - Performance: Database overhead is reduced by avoiding complex joins and explicit groupBy operations on large result sets. Signed-off-by: thowdev <12428285+thowdev@users.noreply.github.com> |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .vscode | ||
| cli | ||
| deployment | ||
| design | ||
| docker | ||
| docs | ||
| e2e | ||
| e2e-auth-server | ||
| fastlane | ||
| i18n | ||
| machine-learning | ||
| misc/release | ||
| mobile | ||
| open-api | ||
| plugins | ||
| readme_i18n | ||
| server | ||
| web | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .nvmrc | ||
| .pnpmfile.cjs | ||
| CODEOWNERS | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| SECURITY.md | ||
| install.sh | ||
| mise.toml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| renovate.json | ||
README.md
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/.
Links
Demo
Access the demo here. For the mobile app, you can use https://demo.immich.app for the Server Endpoint URL.
Login credentials
| 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.