Self-hosting - Part 1 - Immich
Ahmed Radwan
Sr Software Engineer, COM-IoT Technologies. ?Ex: Avelabs, Yonohub Developer Advocate.
Disclaimer: My current setup isn't perfect and can be done in a better and more optimized way. I chose to do it this way as I didn't have much time currently but I'm planning to enhance it in the future.
In today's digital age, it's frustrating to see how people no longer truly own their data. Many of us pay recurring fees just to store our precious memories and files in the cloud—only for companies to monetize our data in ways we might not even realize.
The problem becomes even more glaring when we hit storage limits. Often, the quick fix is to either pay for more storage or offload files from the cloud to external drives. But over time, these drives fail, and memories can be lost forever.
This sparked a journey for me. I wanted to find a solution that would:
After much research, I stumbled upon Immich, a self-hosted media management solution. I’ve been using it for over a month now, and honestly, it feels too good to be true. Immich replicates what services like iCloud offer and adds so much more. The best part? I retain complete control over my data.
Beyond just photos, setting up my home server has opened doors to running other exciting local services. It’s been a rewarding experience, one that not only gives me peace of mind but also the freedom to explore without monthly subscription costs hanging over me.
If you’ve been thinking about taking control of your data or experimenting with a home server setup, I highly recommend giving it a shot. Immich, in particular, has been a game-changer for me.
Installation
Immich offers multiple installation methods, but my preferred approach is using Docker Compose due to its simplicity—provided you're familiar with Docker and Docker Compose.
For a quick setup, refer to the official Docker Compose installation guide. With these instructions, you can have Immich up and running in just five minutes.
Once the service is live, open your browser and navigate to https://localhost:2283 to complete the configuration.
You can also install Immich app on iOS or Android and access Immich using the same link but with replacing localhost with the server IP.
After setup, start uploading your photos and videos. Immich will automatically initiate face recognition tasks and organize your media into a timeline.
Features
Redundancy
While Immich is a great solution, it doesn’t inherently provide redundancy to protect against drive failures or corruption, a key benefit of cloud storage. To replicate this aspect of cloud storage, I set up a RAID configuration (starting with a mirrored setup) and deployed Immich on mounted storage. Specifically, I created a ZFS pool using TrueNAS, shared the pool with the Immich instance using NFS, and deployed Immich inside the shared folder.
Remote Access
Immich does not natively support remote connectivity, but there are several ways to enable it, such as port forwarding, reverse proxies, or VPN solutions. I opted for a straightforward and easy-to-set-up solution: ZeroTier. ZeroTier is a VPN-like service that creates secure, peer-to-peer connections, allowing remote access to your Immich instance as if it were part of your local network.
Installing and configuring ZeroTier is simple and supports all major operating systems, making it a versatile choice for enabling remote access.
Power Consumption
If you're considering setting up a system like this, it's advisable to use a low-power PC or an old business laptop. While laptops are generally not recommended for such setups, they can be a viable option if you plan to remove the battery and keep the device continuously powered and connected to a stable internet connection.
Result
I couldn’t be happier with my current setup, which provides:
References
Mechanical Engineering Student @ UEL | Robotics Enthusiast ?? | Skilled in Product Design, CAD & Prototyping | Co-founder @ Prime Vertex | Aspiring Technopreneur Driving Innovation ??
1 周Honestly very much impressed ??
Staff Software Engineer | ADAS | Autonomous Driving | Autonomous systems.
1 个月Good job
Senior Field Application Engineer at Omnivision
3 个月I have to admit, this took me to memories of us in room 216 in ZC old campus when we used to discuss nerdy stuff like this out of the blue, because why not! I love the idea and the fact that you decided to share this, thanks a lot my friend. I will definitely try it out myself and I'll reach out to you for feedback.