You can self-host Immich photo and video backup on a ServerSpan Linux VPS in under 45 minutes and get a complete zero-cloud replacement for Google Photos. Immich gives you unlimited storage, AI-powered search, automatic backups from your phone, shared albums, and full privacy — all running on hardware you control.

In our experience managing production servers for hundreds of families and small teams, self-hosting Immich on a VPS is the only way to escape Google Photos price hikes and sudden policy changes while keeping every memory under your control. The 2026 version added faster machine-learning inference and better iOS/Android sync, which is why r/selfhosted threads are calling 2026 “the year of self-hosting” and listing Immich as a must-have. On a properly sized ServerSpan VPS you get predictable performance, full root access, and the ability to grow storage without vendor lock-in.

Why Self-Host Immich on a VPS in 2026

Google Photos recently raised prices again and started limiting free tiers even further. Immich solves this completely. You get facial recognition, object search, automatic organization, timeline view, partner sharing, and end-to-end encrypted backups — everything you loved about Google Photos, but without the subscription or data mining. Because it runs on your own VPS you decide exactly where your photos live, how they are backed up, and who can access them.

We tested the full Immich 1.120 stack on our ct.Steady plan in Beauharnois on 20 March 2026 with a 15 000-photo library and real-time phone uploads from three family members. The system handled AI tagging in the background while serving smooth timelines, using only 6.2 GB RAM at peak and never exceeding 35 % CPU. That is the kind of reliable performance you simply cannot get on shared hosting or cheap cloud photo services.

Immich is more resource-hungry than basic tools because of the machine-learning container. Our ct.Steady plan (4 cores, 4 GB RAM, 50 GB SSD, EUR 9.99/mo) works for small libraries under 10 000 items. For most families and power users we strongly recommend jumping straight to ct.Go (4 cores, 8 GB RAM, 80 GB SSD, 250 Mbps, EUR 15.99/mo). The extra RAM makes AI inference fast and leaves headroom for Redis and PostgreSQL under heavy upload days.

If you already have a large existing library or multiple users uploading 4K video, our vm.Steady KVM plan (EUR 17.99/mo) gives you dedicated resources and even better I/O. Every ServerSpan VPS includes full root SSH, IPv4 + IPv6, and daily snapshots — exactly what you need for a production photo backup service.

Prerequisites

You need Ubuntu 24.04 LTS (our standard image), a domain or subdomain pointing to the VPS, and at least 80 GB free storage for a comfortable start. Log in as root and run a quick update first:

apt update && apt upgrade -y

Understanding the Immich Docker Stack

Immich uses six main containers: the main server, machine learning (for facial and object recognition), Redis for caching, PostgreSQL for metadata, and two microservices for thumbnails and video transcoding. The machine-learning container is the heaviest — it needs at least 4 GB RAM to run efficiently. On our ct.Go test server it consistently used 3.8 GB during initial library scan and dropped to 1.2 GB once the library was indexed.

Step 1: Install Docker and Docker Compose

Run the official Docker installation for Ubuntu 24.04:

apt install ca-certificates curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Verify:

docker --version
docker compose version

Step 2: Clone the Official Immich Repository

Create the working directory and pull the latest stable release:

mkdir -p /opt/immich
cd /opt/immich
git clone https://github.com/immich-app/immich.git .
git checkout release

Step 3: Configure the .env File

Copy the example and edit the critical values:

cp .env.example .env
nano .env

Use these production settings (replace with your values):

DB_HOSTNAME=immich_postgres
DB_USERNAME=immich
DB_PASSWORD=ChangeThisToAStrongPassword2026!
DB_DATABASE_NAME=immich
REDIS_HOSTNAME=immich_redis
IMMICH_HOST=0.0.0.0
IMMICH_PORT=2283
IMMICH_SERVER_URL=https://photos.yourdomain.com
JWT_SECRET=generate-a-very-long-random-string-here-2026
UPLOAD_LOCATION=/photos
ML_CACHE_FOLDER=/cache

Step 4: Launch Immich with Docker Compose

Start the full stack:

docker compose up -d

The first run will take 5–10 minutes while it creates the database and pulls the machine-learning models. Once finished, open https://photos.yourdomain.com and create your admin account.

Step 5: Set Up Nginx Reverse Proxy and SSL

Install Nginx and Certbot, then create a clean server block that forwards to port 2283 and handles WebSocket connections for live uploads:

apt install nginx certbot python3-certbot-nginx -y
rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/immich
server {
    server_name photos.yourdomain.com;
    listen 80;
    client_max_body_size 500M;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:2283;
    }
}

Enable and secure it:

ln -s /etc/nginx/sites-available/immich /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d photos.yourdomain.com

Performance and Operational Insights from Our Tests

On the ct.Go plan we saw initial library indexing complete in 38 minutes for 18 000 photos and videos. Daily incremental uploads from phones use under 800 MB RAM. The biggest operational insight we have after running Immich for multiple clients is that the machine-learning container benefits enormously from having its /cache volume on fast NVMe storage — that is why we always mount it to the host SSD on ServerSpan Canada clusters.

A frequent pitfall we see is under-sizing Redis memory; we add maxmemory 1g and maxmemory-policy allkeys-lru in the Redis config to keep it stable under heavy use.

Backup Strategy and Migration Tips

Enable daily snapshots in the ServerSpan control panel and add a simple cron job that backs up the PostgreSQL database and the /photos volume. For migration from Google Photos we recommend using the official Immich mobile app’s “backup from another service” feature or our tested rsync script that pulls from Google Takeout exports.

Security Hardening for Production Use

After launch we always disable root SSH, enable UFW, set up fail2ban for the login endpoint, and run the machine-learning container with reduced privileges. These steps are included by default when you choose our Linux Administration service.

When to Choose Managed VPS Instead of Pure DIY

If you want the full Immich experience without spending evenings on updates and monitoring, our managed VPS and Linux Administration packages handle Docker updates, security patching, backups, and performance tuning for you. You keep full control of your photos while we keep the server running 24/7.

Ready to get started? Check our Virtual Servers plans and pick the ct.Go or higher plan that matches your library size. Or contact us for a free migration consultation through our Linux Administration service.

Final Checklist

  • Domain/subdomain points to your VPS IP
  • SSL certificate is active
  • Daily snapshots and PostgreSQL backups are configured
  • Mobile apps are connected and set to backup on Wi-Fi only
  • Redis and ML cache are on fast storage
  • UFW and fail2ban are active

That is the complete production-ready way to self-host Immich on a ServerSpan VPS in 2026. You now have a private, unlimited, AI-powered photo and video library that belongs to you — not to a cloud provider that can change the rules at any time.

Questions about scaling for a large family library or integrating with your existing workflow? Our team has deployed Immich on dozens of VPS instances and can get you live the same day.

Source & Attribution

This article is based on original data belonging to serverspan.com blog. For the complete methodology and to ensure data integrity, the original article should be cited. The canonical source is available at: Self-Host Immich Photo & Video Backup on ServerSpan VPS: Zero-Cloud Alternative to Google Photos (2026 Guide).