Immich: A self-hosted photo manager that pushes back against cloud lock-in
High performance self-hosted photo and video management solution.
At a glance
- What is it?
- Immich is a high-performance, self-hosted photo and video management solution written in TypeScript and released under AGPL-3.0. It offers a feature set that rivals commercial cloud services, but its operational complexity and license terms demand careful evaluation.
- Who is it for?
- Adopt Immich if you want full control over your photo library, value features like facial recognition and CLIP search, and are prepared to manage a multi-service deployment. Do not adopt it if you lack the time or skill to maintain a Docker-based stack, need a simple single-binary solution, or cannot accept the AGPL-3.0 obligations.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- immich-app/immich119,092 ★ · +10,728
| Repository | 2026-07-21 | 2026-11-13 |
|---|---|---|
| immich-app/immich | 108.4k | 119.1k |
10,728 Stars in the last 115 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What Immich solves and who it targets
Immich addresses a specific pain: the loss of control over personal photo libraries that comes with Google Photos or iCloud. For individuals and families who want to keep their original files, search them intelligently, and avoid recurring subscription fees, Immich offers a self-hosted alternative. The README describes it as a "high performance self-hosted photo and video management solution," which is a broad claim but the feature table backs it up with concrete capabilities: auto backup, facial recognition, CLIP-based search, and multi-user support. The target user is someone comfortable running their own server, not a casual consumer. The project's warning about the 3-2-1 backup plan signals that the developers expect users to handle data durability themselves, which is a shift from the managed cloud model.
How the system is put together
The repository is TypeScript-based, but the README does not detail the internal architecture. What is visible is that Immich is not a single binary. The installation guides at docs.immich.app and the presence of features like facial recognition and CLIP search imply a stack with at least a database, a storage layer, and a machine learning component. The feature table shows a split between mobile and web: mobile handles background backup and offline support, while web offers administrative functions and tags. This suggests a client-server model where the server runs the heavy processing and the clients are thin interfaces. The exact data flow is not documented in the README, so you should check the docs for specifics on how uploads are processed and indexed.
Getting Immich running: commands and configuration
The README points to https://docs.immich.app/install/requirements for installation instructions, and does not include an install command. The README's demo server is a quick way to evaluate the UI without installing anything. To try it, you can access https://demo.immich.app and log in with the credentials [email protected] and password demo. For a real deployment, the installation documentation is the authoritative source. The README also lists OAuth support and API keys, which are configuration points for production use.
Feature depth: what you actually get
The feature table is the strongest evidence of Immich's scope. It covers upload and viewing, auto backup on mobile, duplication prevention, album management, and shared albums. More advanced features include facial recognition and clustering, CLIP-based search, and LivePhoto/MotionPhoto support. The table also notes that raw formats are supported, which appeals to photographers. There is a notable asymmetry: tags are web-only, and offline support is mobile-only. This means a mobile user cannot tag photos, and a web user has no offline support. The inclusion of 360-degree image display on web but not mobile is another split. These asymmetries are not necessarily flaws, but they are constraints to plan around. The README also lists "user-defined storage structure" as supported on both mobile and web.
Limitations and failure modes
Immich is not a trivial system to operate. The README's warning about the 3-2-1 backup plan is a direct admission that data loss is a real risk if you do not manage backups yourself. The multi-service architecture means more moving parts: a database, a server, and a machine learning component can each fail independently. The feature table shows that background backup is mobile-only, so a web-only user must manually upload, which is a limitation for desktop workflows. Also, the absence of a simple installation command in the README suggests that setup requires reading external docs, which is a barrier for less technical users. The AGPL-3.0 license is a legal constraint: if you modify the server and provide it over a network, you must offer the source code to users. This is a genuine trade-off for organizations that want to customize the code internally without sharing changes. The project is under active development, with release candidate v3.4.0-rc.1 published on 2026-10-30, so expect frequent updates and potential breaking changes.
Alternatives and how they differ
The obvious alternative is a commercial cloud service like Google Photos, which offers similar features but with no self-hosting. The difference is in control: Google Photos handles backups, indexing, and storage for you, but it scans your data and can change terms. Immich's mobile app, with auto backup and background backup in the feature table, is the capability to weigh against other self-hosted options.
Maintenance and upgrade costs
The release list shows a steady cadence: v3.3.4 on 2026-10-20, v3.3.5 on 2026-10-21 and v3.4.0-rc.1 on 2026-10-30. This is a fast-moving project, which means regular upgrades to get new features and bug fixes. The README does not mention a migration tool or upgrade script, so you must follow the docs. The project is not archived, and the last push is recent, indicating active maintenance. The AGPL-3.0 license does not impose a cost to use, but it does impose obligations if you modify and distribute the software. For a home user, these obligations are minimal, but for a company, they require legal review. The 3-2-1 backup warning is a reminder that your data is your responsibility, and you should factor backup storage into the total cost of ownership.
Editorial conclusion
Adopt Immich if you want full control over your photo library, value features like facial recognition and CLIP search, and are prepared to manage a multi-service deployment. Do not adopt it if you lack the time or skill to maintain a Docker-based stack, need a simple single-binary solution, or cannot accept the AGPL-3.0 obligations. Before committing, verify that your hardware meets the requirements for machine learning features, plan a 3-2-1 backup strategy as the README warns, and test the demo server to judge search and upload performance. Immich is a serious alternative to cloud services, but it is not a set-and-forget appliance.
Frequently asked questions
What is Immich used for?
Immich is a high performance self-hosted photo and video management solution. The feature table covers upload and viewing, duplicate prevention, albums and shared albums, raw format support, EXIF and map metadata, search by metadata, objects, faces and CLIP, facial recognition and clustering, public and partner sharing, memories, tags, and folder view, with multi-user support.
Is it safe to expose Immich to the internet?
The repository does not answer this. The README links to the documentation site for installation and other guidance, and its one security-adjacent instruction is to always follow a 3-2-1 backup plan for your photos and videos. Anything about network exposure has to come from the documentation rather than the README.
Does Immich reduce quality?
The README does not discuss image quality or compression at all. The closest fact in the feature table is that support for raw formats is marked Yes on both mobile and web, so raw files are handled rather than flattened, but any claim about how originals are stored goes beyond what the repository states.
how to install immich
The repository does not give a single install command. The README links to the installation documentation at docs.immich.app/install/requirements and the main documentation at immich.app, and the tree contains three install shapes: a top level install.sh, a docker/ directory, and a deployment/ directory, alongside the server, web, mobile, and machine-learning packages.
how to use immich
A public demo is available at demo.immich.app with the credentials [email protected] and the password demo, and you can point the mobile app at it by entering that same URL as the Server Endpoint URL. For a real instance, the README points to the documentation rather than walking through the interface.
how to use immich cli
The README does not describe a command line client. What the repository shows is an open-api/ package at the top level, and a feature table row for API Keys marked web only and N/A on mobile, so scripted access is set up from the web client.
Official sources
Where this project is recommended
Where developers are discussing it
Posts on Hacker News, dev.to and Lobsters that link to this repository, found by our scan of those communities. 0 in the last 30 days; newest first.
- DD Photos adds Immich integrationHacker News · Sep 25, 2026 · 2 points · 0 comments
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/immich-app-immich)Star history chart for your README
[](https://hysenlabs.com/projects/immich-app-immich)Was this useful?