How to Use Immich: The Beginner's Guide (First Server, First Phone Backup, and the Backup-of-the-Backup Rule)

CodexFuse Team · 2026-10-30T07:16:57.083Z · 11 min read

Free self-hosted Google Photos alternative. This guide covers the Docker install, your first server, phone backup, Takeout import, and the backup-of-the-backup rule.

How to use Immich is simpler than its reputation: Immich is a free, self-hosted photo and video backup platform that gives you a Google Photos-style timeline, albums, face grouping, and map view — except the server lives on your hardware and the originals never leave your custody (LinkLoot, updated Oct 28, 2026). This guide walks you through the whole beginner path in order: what it is, what it needs to run, installing the server with Docker Compose, creating the admin account, backing up your first phone, moving a Google Photos library over with Google Takeout, reaching it away from home, and the backup-of-the-backup rule that keeps your memories safe. If you already self-host media, this sits naturally next to our Jellyfin beginner guide — one is for photos, the other for movies and shows.

What is Immich, exactly?

Immich is a free, AGPL-3.0-licensed photo and video management platform you run yourself. A Docker Compose server holds your library on your own storage, iOS and Android apps auto-back up your camera roll, and a web view gives you the timeline, albums, face recognition grouping, and map view people expect from Google Photos — minus the third-party cloud custody of your originals (LinkLoot, updated Oct 28, 2026).

It is built as four containers working together: the Immich server (web app and API), a machine-learning container (face recognition and CLIP-based smart search), a Redis cache, and a PostgreSQL database with the pgvector extension for similarity search (Tech Insider, tested against Immich v3.3.3, Oct 2026). The project is one of the most watched self-hosted projects on GitHub — 113,011 stars as of August 2026, with its first stable v2.0.0 release in October 2025 (Tech Insider, Sep 2026).

The honest framing first, because it decides whether you should bother: Immich is a photo library you control, not a magic backup. It is one copy of your photos. That distinction shapes everything in this guide, especially the last section.

How do you set up Immich from scratch?

Follow this sequence and nothing else — every official quick start and every working community guide uses the same seven steps (official docs via LinkLoot; Server Room, checked Oct 30, 2026):

  1. Put Docker Engine and the Compose plugin on a 64-bit Linux machine. Use docker compose, the plugin form — the old docker-compose command is not supported and fails with a compose-file error (Server Room).
  2. Make a project folder: mkdir ./immich-app && cd ./immich-app.
  3. Download the two official files from the latest GitHub release assets: wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml and wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env.
  4. Edit .env: set a strong DB_PASSWORD, point UPLOAD_LOCATION at your photo storage, put DB_DATA_LOCATION on an SSD, and set your TZ timezone.
  5. Start the stack: docker compose up -d. The web app answers on port 2283.
  6. Open the web UI immediately and register the first account — the first user to register becomes the administrator (Server Room). Register over a local connection or an SSH tunnel first, not over the open internet.
  7. Install the Immich mobile app (iOS or Android), point it at your server address, sign in, and turn on backup. Your camera roll starts uploading to your own server.

That is the complete install. Everything after this point is configuration and habit, not more installing.

What does Immich need to run?

Immich is light by server standards but not by laptop standards — size the machine once and you are done. The requirements below come from the official documentation via Server Room's requirements table (checked Oct 30, 2026):

ResourceMinimumRecommended
RAM6 GB8 GB (4 GB works only with machine learning disabled)
CPU2 cores4 cores; since v3, the ML container needs the x86-64-v2 microarchitecture level
Operating systemLinux or another 64-bit *nix (Ubuntu, Debian)Ubuntu LTS or Debian 12, with Docker from Docker's own repository
Database storageLocal SSD, never a network shareSSD; the database is typically 1–3 GB
Photo library storageYour existing library sizeExisting library + 10–20% extra for thumbnails and transcoded video

Two things in that table are the ones beginners get wrong. First: the 6 GB RAM minimum is real — the machine-learning worker peaks around 1.7 GB during smart search and face detection, and Postgres wants at least 2 GB of its own under Docker resource limits (ComputingForGeeks, re-tested July 2026; Server Room). Second: the database and the photos are two different storage jobs. Put DB_DATA_LOCATION on an SSD and UPLOAD_LOCATION on big cheap drives. A NAS is fine for the photo library but never for the database — the docs say local SSD only, never a network share (Server Room).

How much storage should you plan for?

Take your current camera roll and add 10–20% for thumbnails and transcoded video on top of the originals (Server Room). So a 500 GB photo library needs roughly 550–600 GB of total space. Size the array from the library you have plus the years of growth you expect — and mirror it or add parity, so one drive failure is a rebuild, not a restore.

How do you back up your phone to Immich?

This is the part that replaces Google Photos backup. Install the Immich app from your phone's app store, enter your server's address (for example http://192.168.1.50:2283 at home), and sign in with the account you created. The app asks for photo-library permission and then offers backup — turn it on, and new photos and videos upload automatically whenever the app is open in the foreground (ZimaOS docs, updated Oct 2026).

For family use, create one account per person — Immich supports multiple users, so each family member gets their own library on the same server (LinkLoot). Partners and kids share albums between accounts with share links instead of sharing one login.

How do you move your Google Photos library into Immich?

Moving a years-old Google Photos library is a migration, not an upload — do it once, carefully. The supported route is Google Takeout followed by the official Immich CLI:

  1. Request your Google Photos export through Google Takeout and download the archive.
  2. Install the CLI: npm i -g @immich/cli (needs Node.js 22 or above — Immich docs, updated Oct 2026).
  3. Log in once: immich login https://your-server/api YOUR_API_KEY. Generate the API key under Account Settings > API Keys in the web UI (Immich CLI docs).
  4. Run a dry run first: immich upload --dry-run --recursive directory/. The --dry-run flag shows what would happen without uploading anything (Immich CLI docs) — this is the step nobody should skip.
  5. Run the real upload: immich upload --recursive directory/.

The second rule is just as important as the first: keep your Google Photos library until the import is verified in Immich. Open the web timeline, check the albums, confirm the counts, and only then consider deleting anything on Google's side. A community tool called immich-go also handles Takeout imports with a --dry-run first (Immich CLI docs recommend it for Takeout specifically).

How do you reach Immich when you're away from home?

Your phone only backs up when it can see the server, so remote access is the difference between Immich working and Immich working only on your couch. There are two safe options, and one dangerous one to avoid.

The recommended beginner route is a private VPN mesh — the same approach in our Tailscale beginner guide. Your phone joins the mesh, the server joins the mesh, and the app talks to Immich over the private address. No open ports, no public exposure, no certificate management.

The second option is a reverse proxy with TLS on the server: bind the Immich server to 127.0.0.1:2283 in the compose file so Docker does not publish the port on every interface, then publish only the proxy's port 443 (Server Room). Port 2283 stays on localhost and is never exposed. Docker's port-publish rules bypass ufw, so this binding is the actual protection — firewall rules alone are not enough (Server Room).

The dangerous option is exposing port 2283 directly to the internet with no reverse proxy. Do not do this. Immich holds your entire photo history; it deserves TLS and a real authentication front, not a raw port.

Is Immich itself your backup?

No — and this is the truth that belongs at the top of every self-hosting guide, not the bottom. Immich is the photos app, not a backup. One drive failure, one house fire, or one ransomware infection loses everything unless a second copy exists (LinkLoot's honest caveats; Tech Insider's whole reason for pairing Immich with offsite storage).

Immich helps with half of this: it dumps its database daily at 02:00 by default and keeps the last 14 dumps in UPLOAD_LOCATION/backups (Server Room). But those dumps hold metadata and file paths only — not your photos. The originals live in library, upload, and profile under UPLOAD_LOCATION. Back up those folders together with the dumps, or all of UPLOAD_LOCATION, and the docs recommend a 3-2-1 strategy — three copies, two media types, one offsite. Stopping the server during the backup keeps the database and files consistent (Server Room).

RAID on the server is not one of the three copies. RAID survives a drive failure; it does not survive a fire, a theft, a bad upgrade, or your own accidental delete. A tested offsite copy — an encrypted push to cloud object storage is the common pairing (Tech Insider's tested setup used Backblaze B2) — is the part that makes the system a backup instead of a library.

What do you give up compared with Google Photos?

The honest comparison, because self-hosting has real costs. You gain full control: no subscription per gigabyte, no AI training on your photos by default, no account lockout taking your memories hostage, and the self-hosted core stays free and open source forever (LinkLoot).

You give up convenience: Google does the backups, the storage, the redundancy, and the mobile-app polish for you. With Immich you are the storage team — hardware, disks, updates, offsite copies, and the occasional Docker troubleshooting are yours. That is also why Immich belongs in the same family as the rest of the self-host stack: if you already run a home media server, our Plex beginner guide covers the movie side of the same idea, and Immich covers the photos.

For most people the deciding question is simple: if your Google storage bill keeps growing and you have a machine with spare terabytes, Immich pays for itself. If you have no machine and no interest in running one, stay on Google Photos — Immich without hardware is just a wish.

Sources

  • LinkLoot — "Immich: A Self-Hosted Alternative to Google Photos" (published Oct 7, 2026, updated Oct 28, 2026) — definition, AGPL-3.0 licensing, official quick start, mobile backup, caveats. Read in full this run.
  • Server Room — "Self-Hosted Immich Server: Requirements, Setup" (checked Oct 30, 2026) — official requirements table, two-kinds-of-storage rule, Docker Compose install, SSH-tunnel admin registration, daily DB dumps, 3-2-1 note, x86-64-v2 rule. Read in full this run.
  • Tech Insider — "Self-Host Immich for Photo Backup: 13 Steps [2026]" (Sep 8, 2026) — tested against Immich v3.3.3 (checked Oct 14, 2026); v3.2.0 Search v2 (Sep 9, 2026); 113,011 GitHub stars (Aug 2026); four-container stack; .env setup; B2 offsite pairing. Search evidence this run.
  • Immich official CLI docs — docs.immich.app/features/command-line-interface/ (updated ~9 days ago) — npm install, Node.js 22+, login, upload --recursive, --dry-run, immich-go for Takeout. Search evidence this run.
  • ComputingForGeeks — "Install Immich on Ubuntu 26.04" (re-tested July 2026, Immich 3.0.3) — ML worker memory peaks, CPU microarchitecture rule, Docker CE install. Search evidence this run.
  • Ossalt — "How to Self-Host Immich in 2026: Docker Setup" (236 days ago) — 2 CPU / 4–8 GB tiers, Docker Engine 24.0+ requirement. Search evidence this run.
  • PikaPods — "Immich Basics" (docs.pikapods.com) — fastest managed path, first-user account, upload/photos/explore views. Search evidence this run.
  • Hostinger — "How to use the Immich VPS template" (45 days ago) — pre-installed VPS path, admin onboarding, dashboard features. Search evidence this run.
  • ZimaOS — "Immich on ZimaOS: Photo Backup and Storage Setup Guide" (8 days ago) — mobile app backup flow, AI face search, map marking, library migration. Search evidence this run.

Frequently asked questions

Is Immich really free?

Yes — the self-hosted core is free and open source under the AGPL-3.0 license, and personal self-hosting is fine under it (LinkLoot). Your costs are the hardware you run it on. Immich also sells a paid Immich Cloud option for people who want hosting without the server work; the self-hosted core stays free either way.

Can I install Immich without Docker?

Not in any way you should want to. The official and only supported path is the Docker Compose bundle published with each GitHub release — the four-container stack (server, machine learning, Redis, Postgres) is designed to run together (Tech Insider; Server Room). Manual installs are unsupported and break on updates.

How much storage does Immich need for my library?

Your existing library plus 10–20% extra for thumbnails and transcoded video, with the database (typically 1–3 GB) on an SSD (Server Room). A 500 GB camera roll needs roughly 550–600 GB total. Plan the array for years of growth, not just today's library.

Does Immich work on iPhone and Android?

Yes — both platforms have official apps. Install the app, point it at your server's address and port 2283 (or your reverse-proxy address), sign in, and enable backup (ZimaOS docs; LinkLoot). Backup uploads automatically while the app is open.

Is it safe to put Immich on the internet?

Not directly on a raw port. Keep port 2283 bound to localhost, put a reverse proxy with TLS in front, and publish only port 443 — or skip public exposure entirely and reach the server through a private VPN mesh like Tailscale (Server Room). Immich holds your entire photo history; treat its address like a front door.