mirror of
https://github.com/immich-app/immich
synced 2026-08-15 13:03:57 +00:00
Sync every week.
send() called response.write() but discarded its boolean return value. Every sync handler produces items via for-await loops over async DB cursors with no gating, so a client reading slower than the server can produce (a large AssetOcrV1 backfill over a slow mobile connection, per #29925) lets the response's internal write buffer grow unbounded — observed as either the V8 heap OOM'ing or the kernel OOM-killer taking down the api worker, and on constrained hosts taking other services with it. write() returns false once the stream's internal buffer exceeds its highWaterMark, signaling the producer should pause until 'drain' fires. send() now awaits that signal, and every call site awaits send() in turn, so a slow reader naturally throttles the DB cursor instead of the server continuing to buffer data the client hasn't caught up to yet. Refs #29925 |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .vscode | ||
| deployment | ||
| design | ||
| docker | ||
| docs | ||
| e2e | ||
| fastlane | ||
| i18n | ||
| machine-learning | ||
| misc/release | ||
| mobile | ||
| open-api | ||
| packages | ||
| readme_i18n | ||
| server | ||
| web | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .nvmrc | ||
| .pnpmfile.cjs | ||
| .prettierrc | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| install.sh | ||
| LICENSE | ||
| mise.lock | ||
| mise.toml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| renovate.json | ||
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.