Immich: The Self-Hosted Google Photos Alternative You Can Actually Trust
Remember the feeling of scrolling through years of photos, only to remember that your cloud storage is filling up, your privacy is a question mark, and you're paying a monthly fee for the privilege? For developers and tinkerers, there's always been a nagging thought: "I should host my own photos." But the complexity of setting up a reliable, full-featured system was a huge barrier. Enter Immich.
Immich is an open-source project that directly tackles that problem. It’s a high-performance self-hosted photo and video backup solution from your mobile phone, designed with one clear goal: to be a genuine, user-friendly alternative to services like Google Photos. It’s built by people who were tired of the trade-offs and decided to build exactly what they wanted.
What It Does
In simple terms, Immich gives you a personal Google Photos-like experience on your own hardware. You install its server component (a Docker container) on a machine you control—a home server, a NAS, or even a Raspberry Pi. Then, you use the Immich mobile app (iOS/Android) or web client to automatically back up your camera roll, view your library, create albums, and share memories. Your data never leaves your network unless you want it to.
Why It's Cool
This isn't just another basic photo gallery. Immich gets the details right, which is what makes it stand out:
- True Incremental Backup: The mobile app uploads only what's new. No re-uploading your entire library after a reinstall.
- Machine Learning On-Premise: One of its killer features is the optional integration of TensorFlow for object, face, and scene recognition. All that "smart search" happens locally on your server. You can search for "beach," "dog," or "Aunt Sally" without sending a single image to a third-party API.
- Metadata & RAW Support: It preserves EXIF data, supports a ton of RAW image formats from DSLRs, and even handles Live Photos and motion photos from iOS and Android.
- Developer-Friendly Stack: It's built with TypeScript, Node.js, and PostgreSQL. The codebase is modern and active, making it a great project to contribute to or learn from if you're into full-stack development.
- Roadmap-Aligned Vision: The project maintainers are transparent and focused, actively working on features like partner sharing, advanced user management, and improved video handling. It feels like a product, not just a hobby project.
How to Try It
The easiest way to get started is with Docker and Docker Compose. If you have those installed, you can be up and running in minutes.
- Clone the repository to get the
docker-compose.ymlfile:git clone https://github.com/immich-app/immich.git cd immich/docker - Copy the example environment file and configure it (at minimum, you'll want to set a strong secret for
DB_PASSWORDandJWT_SECRET):cp .env.example .env # Edit .env with your favorite text editor - Launch the stack:
docker-compose up -d
Once the containers are running, the web app will be available at http://your-server-ip:2283. Create an admin account, then grab the mobile app from the App Store or Google Play Store and point it to your server's address.
For detailed, step-by-step instructions (including hardware transcoding setup for videos), check the official Immich Documentation.
Final Thoughts
Immich is one of those rare self-hosted projects that successfully bridges the gap between powerful, controllable infrastructure and a polished, enjoyable user experience. It respects your data, your privacy, and your desire to own your digital life. As a developer, it's both a useful tool and an inspiring example of a well-architected, modern application. If you've been looking for an excuse to put that old server or NAS to work, or just want to break free from another SaaS subscription, Immich is absolutely worth your weekend.
Follow us for more cool projects: @githubprojects
Repository: https://github.com/immich-app/immich