Ditching Google Photos: How I Built My Own 1TB Private Photo Cloud with Immich
“Your storage is 90% full. Upgrade now for ₹130/month.”
Ditching Google Photos: How I Built My Own 1TB Private Photo Cloud with Immich
“Your storage is 90% full. Upgrade now for ₹130/month.”
google photos
I was tired of seeing that notification. I didn’t want to rent my memories from a tech giant anymore. As a developer, I knew there had to be a better way — a way that offered total privacy, zero monthly fees, and complete control.
This is how I turned an old Intel i5 server into a high-performance, AI-powered photo vault using Immich, Docker, and Cloudflare Tunnels.
🏗️ The “Budget” Hardware Stack
You don’t need a rack-mounted server to beat Google. I used a modest setup that proves efficiency wins over raw power:
- CPU: Intel i5–3317U (Ivy Bridge) — Old but gold for low-power 24/7 hosting.
- RAM: 4GB DDR3 — Tight? Yes. Possible? Absolutely.
- Storage: 1TB Dedicated HDD — My new “Infinite” vault.
- OS: Ubuntu 20.04.6 LTS
🛠️ The Software: Why Immich?
After researching alternatives, Immich was the clear winner. It’s the only self-hosted tool that actually feels like Google Photos.
- ✅ Mobile Sync: Real-time background backup for iOS and Android.
- ✅ AI-Powered: Automatic face recognition and object detection.
- ✅ Fast: High-performance indexing even on older CPUs.
- ✅ Multi-user: I can give my family members their own private accounts.
📖 The Step-by-Step Setup Guide
1. The Docker Deployment
First, create a home for your data and pull the configuration:
mkdir ~/immich-app && cd ~/immich-app
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Optimization for 4GB RAM:
Open your .env file and set your UPLOAD_LOCATION to your 1TB drive. If you find the machine learning is too heavy for your i5, you can toggle "Hardware Acceleration" off in the Admin settings once the UI is up.
Launch the stack:
docker compose up -d
2. The “Invisible” Remote Access (Cloudflare Tunnels)
I refuse to open ports on my home router. Instead, I use a Cloudflare Tunnel. This creates a secure “bridge” to the internet without exposing my home IP address.
- In Cloudflare Zero Trust, create a new Tunnel.
- Point your subdomain (e.g.,
photos.yourdomain.com) to[http://localhost:2283.](http://localhost:2283.) - The Result: Your server is online, but your router remains a fortress with zero open ports.
3. The Digital Bouncer (Cloudflare Access)
To prevent hackers from even seeing my login page, I added an OTP (One-Time Password) layer.
- Anyone visiting the URL is met with a Cloudflare prompt.
- They must enter a code sent only to my verified email.
- Only then do they reach the Immich login screen. Double-layer security.
📈 The Migration: Moving 1TB of History
Moving 10 years of data from Google is a journey:
- Google Takeout: Request your data. You’ll get a massive pile of ZIP files.
- Local Transfer: Don’t upload 1TB over Wi-Fi! Move the files directly to your server’s HDD.
- Immich CLI: Use the official CLI tool to import the files locally. It indexed my entire history in under 12 hours.
⚖️ Final Verdict
Running a 1TB photo cloud on a 4GB RAM i5 isn’t just a fun weekend project; it’s a statement. It’s about taking back your data and proving that we don’t need “The Cloud” when we can build our own.
Current Monthly Subscription Cost: $0.00. Privacy Level: 100%. Satisfaction: Priceless.

Immich server
메타데이터
- post_id
- fc0969de50a4
- slug
- ditching-google-photos-how-i-built-my-own-1tb-private-photo-cloud-with-immich-fc0969de50a4
- url
- https://medium.com/@sidharthkumarsamal/ditching-google-photos-how-i-built-my-own-1tb-private-photo-cloud-with-immich-fc0969de50a4
- canonical_url
- https://medium.com/@sidharthkumarsamal/ditching-google-photos-how-i-built-my-own-1tb-private-photo-cloud-with-immich-fc0969de50a4
- author_url
- https://medium.com/@sidharthkumarsamal
- status
- ok
- fetched_at
- 2026-07-11 19:40:18