EQVPS

Self-host Immich on a VPS: your own private Google Photos

Sep 3, 2026 · 2 min read · EQVPS Team

Phone galleries fill up, and the easy fix — a cloud that auto-backs-up everything — means a third party now holds every photo you've ever taken and quietly runs AI over them. Immich gives you the same experience — auto-backup, timeline, albums, face and object search — on a server you control. Run it on a VPS with Docker and pay for the server in crypto, no KYC.

What Immich needs

Set it up (Ubuntu 24.04, Docker)

# docker-compose.yml — Immich (server + machine-learning + Redis + Postgres/pgvecto)
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    restart: always
    ports: ["127.0.0.1:2283:2283"]
    volumes: ["/srv/immich/library:/usr/src/app/upload"]
    env_file: [.env]
    depends_on: [redis, database]
  immich-ml:
    image: ghcr.io/immich-app/immich-machine-learning:release
    restart: always
    volumes: ["ml-cache:/cache"]
    env_file: [.env]
  redis:
    image: redis:alpine
    restart: always
  database:
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    restart: always
    environment:
      POSTGRES_USER: immich
      POSTGRES_PASSWORD: change-me-strong
      POSTGRES_DB: immich
    volumes: ["/srv/immich/db:/var/lib/postgresql/data"]
volumes: { ml-cache: {} }

Put a TLS reverse proxy in front:

# TLS + reverse proxy (dedicated IPv4 + domain + inbound 443)
apt install -y caddy
echo 'photos.yourdomain.com { reverse_proxy 127.0.0.1:2283 }' > /etc/caddy/Caddyfile
systemctl restart caddy && ufw allow 80,443/tcp

Open https://photos.yourdomain.com, create the admin user, install the mobile app and point it at your server — your camera roll now backs up to storage you own.

Make it yours

Why EQVPS for Immich

Self-host Nextcloud (files, calendar) → · Anonymous VPS hosting explained →

FAQ

Why self-host Immich instead of Google Photos?

Immich gives you phone auto-backup, timeline, albums and AI face/object search — but the photos and the machine-learning run on a server you control, not a cloud that scans your library or changes its free tier. You set the storage, keep originals untouched, and can pay for the server in crypto without ID.

What plan and resources does Immich need?

Two things matter: disk for the photo/video library, and RAM for the machine-learning (face and object recognition). A Medium plan with a dedicated IPv4 is a good start; scale disk to your library and add RAM if you enable smart search on a large collection. You need a dedicated IP because the mobile app reaches it over inbound HTTPS on 443.

Do I need a dedicated IP and a domain?

Yes. The Immich mobile app connects to https://photos.yourdomain.com, which needs a domain, valid TLS and inbound 443 — so a dedicated-IPv4 plan. Our NAT plans don't accept inbound web traffic. A reverse proxy (Caddy) gives you automatic HTTPS.

Does the AI search send my photos anywhere?

No. Immich's machine-learning runs locally in its own container on your VPS — face and object recognition happen on your server, nothing is sent to a third-party API. TLS protects uploads in transit and you hold the data.

Do you ask for ID or a card?

No. Register with an email, pay in USDC or USDT. No documents, no card, no KYC.

← Back to blogSee plans & pricing →

Comments

No comments yet. Be the first.

Leave a comment

Comments are moderated before they appear.