Say Goodbye to Google Photos: Install Immich on Your Home Server with Docker

Say Goodbye to Google Photos: Install Immich on Your Home Server with Docker

Have you ever felt uneasy about the storage limits on cloud services like Google Photos or iCloud? Or maybe it bothers you to think that your family photos, personal snapshots, and sensitive memories are being analyzed by AI algorithms on some big tech company's servers for purposes you have zero control over?

If your answer is "yes" and you already have a Home Server running Docker (from the setup guide we covered earlier), today we have a solution that nails both Data Ownership and Privacy — and that solution is Immich.

Immich is a self-hosted photo and video backup & management application built to be a direct competitor to Google Photos. It features a sleek, modern UI, excellent performance, and — critically — a local machine learning engine that handles face scanning, person grouping, and in-image detail search entirely offline, 100% on your own hardware.

---

### Why Immich Is a Genuine Challenger to Google Photos

You may have used other file-sharing software before, but Immich operates on a fundamentally different level:

* Rock-solid mobile apps: Native apps for both iOS and Android support automatic background backup — the single most important feature when migrating away from Google Photos.

Smart Search: Type a natural-language query like "person in a red shirt at the beach" or "white cat sleeping on the sofa,"* and the built-in AI engine finds matching images instantly. No data ever leaves your network.

* Face Recognition & Map View: Automatically groups family members' faces and displays photo locations on an interactive map.

* Multi-user support: Create separate accounts for each household member. Everyone gets their own private space, yet you can still share albums together seamlessly.

---

### Pre-Installation: Preparing Your Directory Structure

Before we spin up the project, let's create a clean folder structure on your Home Server to keep your photo library and system data neatly separated:


# Create the main Immich directory
mkdir -p ~/homeserver/immich
cd ~/homeserver/immich

Note: Since your photo and video library will grow substantially over time, we strongly recommend pointing the actual image storage folder to an external HDD or a pre-configured RAID array.

---

### Step 1: Download the docker-compose.yml and .env Files

The Immich team provides ready-to-use configuration files. You can grab the latest versions straight from the command line:


# Download docker-compose.yml
curl -L https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -o docker-compose.yml

# Download the example .env file
curl -L https://github.com/immich-app/immich/releases/latest/download/example.env -o .env

Next, open the .env file with nano .env to adjust the initial settings:


nano .env

Here are the key values you need to modify in .env:

* UPLOAD_LOCATION: The directory where actual photo files will be stored. Use ./library for local storage, or point it to an external drive with a full path like /mnt/external-hdd/immich.

* DB_PASSWORD: Change the default PostgreSQL password to a strong, unique passphrase. Don't skip this.

* IMMICH_VERSION: Defaults to release, which always pulls the latest stable build.

Once you're done, press Ctrl+O to save and Ctrl+X to exit nano.

---

### Step 2: Launch Immich with Docker Compose

After verifying your configuration, run the following command to pull all images and start the services:


docker compose up -d

Docker will spin up four core containers:

1. immich_server — The main backend/frontend application

2. immich_machine_learning — The AI engine for image analysis, face detection, and clip-based search

3. postgres — The database storing settings, metadata, and system history

4. redis — The job queue manager for background processing tasks

Once everything is up and running, you can access the Immich dashboard in your browser on port 2283:

http://:2283

---

### Step 3: Initial Setup & Mobile App Connection

On your first visit to the web interface, you'll be guided through these steps:

1. Create an Admin Account: Enter your email, set a password, and fill in your profile details.

2. Download the Mobile App: Search for "Immich" in the App Store or Google Play Store.

3. Log In: Open the app on your phone, enter your server URL (e.g., http://192.168.1.100:2283, or your Tailscale path if connecting from outside your home network), and sign in with the credentials you just created.

4. Enable Automatic Backup: Select which albums on your phone should sync to the server, then turn on Background Backup to start uploading your photos immediately.

---

### Security & Backup Recommendations

The biggest challenge with self-hosting is this: if your hardware fails, all your photos could be gone in an instant. Don't let that happen.

* Follow the 3-2-1 Backup Rule: Beyond storing images on your Home Server's primary drive, set up a script to back up your photo library to a separate NAS or external HDD in the house. If possible, also push an encrypted backup to a low-cost cloud provider like Backblaze B2 using a tool like Restic.

* Always Back Up the Database: Backing up image files alone won't preserve your organizational history, face tags, or album structure. Make sure you have a scheduled pg_dump script to back up Immich's PostgreSQL database alongside your media files.

* Update Carefully: Immich is a fast-moving project with frequent feature releases. Some updates may introduce breaking changes. Always read the GitHub Release Notes before running docker compose pull to update.

---

### The Bottom Line

Switching to Immich doesn't just save you from recurring cloud storage fees — it puts your family's photos and personal memories fully under your own roof, your own control, 100%. The privacy and security you gain by owning your data is the real return on investment.

🛒 TREND DEE STORE • ร้านเทรนด์ดี

🛠️ Hardware for Immich Photo Server

Curated hardware and tools tailored for this guide