Even a Code-Illiterate Built It\! Home Server Journey (3) — Replacing Google Photos with Immich 📸🏠

gmail, google 포토, 가젯의 무료 스톡 사진

In Part 3, we set up a blog. Now it’s time for something actually useful.

Photo backup.

Google Photos: $2/month. iCloud: $1/month. Doesn’t sound like much, right? But what if you could do the same thing on your own server, for free, with unlimited storage?

Here’s the punchline: after setting up Immich on my home server, I cancelled my Google Photos subscription. Over 35,000 photos are now backed up automatically, and I can access them from anywhere thanks to Tailscale. What did I actually do? I told AI to set it up. That’s it.

Photo gallery on smartphone
Photo by Plann / Pexels

Why I Left Google Photos

Google Photos is great. AI search, automatic albums, the whole deal. But here’s the thing:

  1. 15GB free runs out fast. Take photos for three months and you’re done.
  2. Paid plans never end. 100GB, then 200GB, then 2TB… it’s a subscription for life.
  3. Your photos live on someone else’s server. What if Google changes their policy? What if they shut it down?

iCloud is the same story. I was paying for 50GB just for iPhone backup. Another monthly charge that never stops.

“I have a server at home. Why am I paying someone else to store my photos?” Once you think that, you’re already halfway there.

What Is Immich?

Immich is basically a self-hosted Google Photos.

  • 📱 Mobile app — automatic backup from Android and iOS
  • 🔍 AI search — search “beach” or “cat” and it just works
  • 🗺️ Map view — see where every photo was taken on a world map
  • 👥 Face recognition — automatically groups people
  • 📂 Albums — shared albums, timeline, everything
  • 🔒 Your server — data stays in your home

It does almost everything Google Photos does. It’s free, open-source, and the only storage limit is your hard drive.

클로즈업 사진에서 나무 표면 위의 핸드폰
Photo by Markus Winkler / Pexels

Installation: One Docker Compose File

Remember the Docker setup from Part 1? We just add on top of it.

# docker-compose.yml (essentials)
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    ports:
      - "2283:2283"
    volumes:
      - ./upload:/usr/src/app/upload
    environment:
      - DB_PASSWORD=your_secure_password_here
      - REDIS_HOSTNAME=redis

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:release

  redis:
    image: redis:7-alpine

  database:
    image: tensorchord/pgvecto-rs:pg16-v0.2.1

I told Claude “install Immich” and it created this file and ran docker compose up -d for me. I just watched.

Once it’s running, go to http://server-ip:2283, create an admin account, and you’re ready.

Auto-Backup from Your Phone

  1. Install Immich from Play Store (or App Store for iPhone)
  2. Enter your server address: http://192.168.xxx.xxx:2283

    – Want access outside your home? Use your Tailscale IP (see Part 2!)

  3. Log in → Enable auto backup
  4. Done.

That’s literally it. Every photo you take now automatically goes to your home server.

I uploaded over 35,000 photos from my Galaxy S25 Ultra. How long did it take? About 3-4 days. But honestly, I didn’t even notice. I installed the app, turned on backup, and just lived my life. Went to work, ate, slept — and a few days later I opened the app and everything was there. That’s the beauty of it. Set it and forget it.

Cloud backup and storage
Photo by Alpha En / Pexels

iPhone Users: You’re Covered Too

Same exact process:

  1. Install Immich from App Store
  2. Enter server address + log in
  3. Auto backup ON

For existing photos stuck in iCloud:

  1. Mac Photos app → Settings → “Download Originals to this Mac”
  2. Wait for everything to download (could be dozens of GB)
  3. Use immich-go to bulk upload to your server

Google Photos works the same way. Export via Google Takeout → upload with immich-go. Duplicates are automatically filtered out. Even if the same photo exists in both Google and iCloud, only one copy ends up on your server.

Access Your Photos From Anywhere

Remember the Tailscale setup from Part 2? This is where it pays off.

Set your Immich app’s server address to your Tailscale IP (100.xx.xx.xx:2283), and you can access your photos from a cafe, from a business trip, from another country. It’s a VPN, so security isn’t a concern either.

AI Features: No Reason to Miss Google Photos

Immich comes with a built-in Machine Learning server. It runs automatically after installation.

Photo Search

Type “food” in the search bar and only food photos show up. “Beach”, “mountain”, “car” — it all works. Same AI search as Google Photos, but running on your own server.

Face Recognition

It automatically detects and groups faces. Tag someone’s name once, and you can browse all their photos in one place.

Map View

Photos with GPS data appear as pins on a world map. Perfect for “where did I take that photo last year?”

How Much Do You Actually Save?

Let’s do the math.

Service Monthly Yearly
Google Photos 100GB $2 $24
iCloud 50GB $1 $12
Total $3 $36
Immich (self-hosted) $0 $0

What about electricity? The SER9 MAX has a 54W TDP. Running 24/7 costs roughly $1.50/month in electricity. But that’s shared across all services — blog, AI assistant, local LLM, and more. The photo backup cost is effectively zero.

As long as you have hard drive space, it’s unlimited backup. Add a 1TB SSD and you’re set for a decade.

The Honest Downsides

Let’s be real about the cons:

  1. Server down = no access. During power outages or reboots, you can’t reach your photos. The app does cache recent ones for offline viewing though.
  2. You need backup for your backup. If your SSD dies, your photos are gone. External drive or NAS for redundancy is strongly recommended.
  3. Initial upload takes time. 35,000 photos took 3-4 days for me. But it runs in the background — just forget about it and check back later. One day you’ll open the app and it’s all done.
  4. Shared albums are limited. The “share a link with anyone” feature isn’t as polished as Google Photos yet.

But if you believe “my photos should stay on my server”, these trade-offs are worth it.

What’s Next

Photos backed up on our server. Blog is live. Remote access works. Now it’s time to give this server a brain.

In the next part:

  • OpenClaw + Telegram — putting an AI assistant on the server and chatting with it via Telegram
  • A morning briefing bot that sends weather, news, and schedule summaries every day
  • An AI that writes blog posts, generates images, and even codes — my personal AI minion

Stay tuned for the story of how a guy who can’t write a single line of code built his own AI assistant.

This post was written by AI (Claude Code) and reviewed by a code-illiterate human. 🤖✨