Affiliate disclosure: this post contains affiliate links (CJ) to Contabo. If you order through them, SiftGuide may earn a commission at no extra cost to you; it does not change your price or terms. Plans and prices come from Contabo’s official pages and price data; Immich requirements and commands from Immich’s official documentation and GitHub; firewall behaviour from Docker’s documentation. All checked on October 27, 2026 (Europe/Bucharest). We have not benchmarked these servers or placed an order. Figures marked “our arithmetic” are our own calculations.
Immich is the open-source, self-hosted alternative to Google Photos and iCloud Photos: a phone app that backs up your camera roll, plus a web timeline with face recognition and smart search. Running it on a VPS is easy. Picking the VPS is where most guides go wrong, because they size it by CPU and RAM. A photo library needs disk, and it only grows. At Contabo, the same €14.00 a month buys either 300 GB (Cloud VPS 8) or 1 TB (Storage VPS 30). This guide shows which plan fits which library, how to install Immich with Docker, and the one firewall mistake that can leave port 2283 open to the internet.

The short answer
- Most families: Storage VPS 30 (6 vCPU, 18 GB RAM, 1 TB SSD) at €14.00 a month, or €11.20 on a 24-month term, before VAT. Same price as Cloud VPS 8, more than three times the disk.
- Small library (under ~300 GB of originals): Storage VPS 20 (3 vCPU, 8 GB RAM, 400 GB SSD) at €7.50 a month. It meets Immich’s recommended 8 GB of RAM; its 3 cores are under the recommended 4, so the first import will be slower.
- Skip Storage VPS 10 for Immich unless you turn machine learning off: its 4 GB RAM is below Immich’s 6 GB minimum.
- Choose Cloud VPS instead if you want Contabo’s snapshots and its paid Auto Backup add-on, which Storage VPS does not offer in its order options. Cloud VPS 8 with Contabo’s Storage Extension option (listed as 600 GB SSD, doubling its 300 GB) is €18.50 a month (our arithmetic).
- Security: Docker publishes port 2283 past UFW. Bind it to 127.0.0.1 and put a reverse proxy with HTTPS (or a VPN) in front.
What Immich actually needs
From Immich’s official requirements page (last updated October 21, 2026):
- RAM: “Minimum 6GB, recommended 8GB”. “For systems with only 4GB of RAM, Immich can be run with machine learning features disabled.”
- CPU: “Minimum 2 cores, recommended 4 cores”. Since v3, the machine-learning container on amd64 needs the x86-64-v2 microarchitecture level or newer.
- Disk: thumbnails and transcoded videos “increase the size of the photo library by 10-20% on average”, and the Postgres database should sit on local SSD storage, “never a network share”.
- Software: Linux with Docker and the
docker composeplugin (Immich notes that the olddocker-composecommand is deprecated).
Our arithmetic for disk: if generated files add up to 20%, a 1 TB disk holds roughly 830 GB of original photos and videos, and 400 GB holds roughly 330 GB, before the operating system, the database and Immich’s own database dumps. Check the size of your current library (Google Takeout or your phone’s storage screen) and leave room to grow.
Contabo plans that fit Immich
Euros before VAT, from Contabo’s price data and plan cards. “24-month rate” is the effective monthly price Contabo shows “for the first 24 months” of a 24-month term. Contabo lists every plan with “Unlimited Traffic”, with a fair-usage note for outgoing traffic.
Plan: Storage VPS 10
- vCPU / RAM: 2 vCPU / 4 GB
- Disk: 300 GB SSD or 150 GB NVMe
- Monthly term: €5.50/mo
- 24-month rate: €4.40/mo
- Price per 100 GB, monthly (our arithmetic): €1.83
- Immich fit (our reading): Only with machine learning off (4 GB RAM)
Plan: Storage VPS 20
- vCPU / RAM: 3 vCPU / 8 GB
- Disk: 400 GB SSD
- Monthly term: €7.50/mo
- 24-month rate: €6.00/mo
- Price per 100 GB, monthly (our arithmetic): €1.88
- Immich fit (our reading): Small library; meets 8 GB RAM
Plan: Storage VPS 30
- vCPU / RAM: 6 vCPU / 18 GB
- Disk: 1 TB SSD
- Monthly term: €14.00/mo
- 24-month rate: €11.20/mo
- Price per 100 GB, monthly (our arithmetic): €1.40
- Immich fit (our reading): Best value for most libraries
Plan: Storage VPS 40
- vCPU / RAM: 8 vCPU / 30 GB
- Disk: 1.2 TB SSD
- Monthly term: €25.00/mo
- 24-month rate: €20.00/mo
- Price per 100 GB, monthly (our arithmetic): €2.08
- Immich fit (our reading): Large library, 1.2 TB
Plan: Storage VPS 50
- vCPU / RAM: 14 vCPU / 50 GB
- Disk: 1.4 TB SSD
- Monthly term: €37.00/mo
- 24-month rate: €29.60/mo
- Price per 100 GB, monthly (our arithmetic): €2.64
- Immich fit (our reading): Large library, several users
Plan: Cloud VPS 4
- vCPU / RAM: 4 vCPU / 8 GB
- Disk: 100 GB SSD
- Monthly term: €5.50/mo
- 24-month rate: €4.40/mo
- Price per 100 GB, monthly (our arithmetic): €5.50
- Immich fit (our reading): Fits RAM; 100 GB disk fills fast
Plan: Cloud VPS 6
- vCPU / RAM: 6 vCPU / 12 GB
- Disk: 200 GB SSD or 100 GB NVMe
- Monthly term: €7.50/mo
- 24-month rate: €6.00/mo
- Price per 100 GB, monthly (our arithmetic): €3.75
- Immich fit (our reading): Small library; snapshots included
Plan: Cloud VPS 8
- vCPU / RAM: 8 vCPU / 24 GB
- Disk: 300 GB SSD or 150 GB NVMe
- Monthly term: €14.00/mo
- 24-month rate: €11.20/mo
- Price per 100 GB, monthly (our arithmetic): €4.67
- Immich fit (our reading): Contabo’s own tutorial pick; 300 GB
Plan: Cloud VPS Plus 8
- vCPU / RAM: 8 vCPU / 24 GB
- Disk: 450 GB NVMe
- Monthly term: €35.00/mo
- 24-month rate: €28.00/mo
- Price per 100 GB, monthly (our arithmetic): €7.78
- Immich fit (our reading): Fast NVMe, but 450 GB for €35.00
See Contabo Storage VPS plans · See Contabo Cloud VPS plans

Storage VPS or Cloud VPS: the real trade-off
- Disk per euro: Storage VPS 30 works out to €1.40 per 100 GB a month, Cloud VPS 8 to €4.67 (our arithmetic, monthly term). Contabo itself says the Storage VPS line “trades compute headroom for significantly larger SSD allocations at the same price points”.
- Snapshots and Auto Backup: Cloud VPS plans list snapshots (1 on Cloud VPS 4, 2 on 6, 3 on 8) and offer Auto Backup at €1.65, €3.35 and €5.00 a month. The Storage VPS specs list no snapshots, and its order options have no Auto Backup add-on. For photos you cannot replace, you need an off-server backup either way (see below).
- Growing later: Cloud VPS 4, 6 and 8 offer a Storage Extension option, listed as 200 GB SSD for €1.50, 400 GB SSD for €3.00, 600 GB SSD for €4.50 a month respectively. Contabo’s VPS page says Core VPS plans can “double capacity through Storage Extension, up to 1.2 TB on the top tier”.
- Region: prices above are for the EU location. The UK adds €3.25 and Japan €8.00 a month on Storage VPS 30 and Cloud VPS 8. Contabo’s country list shows, for example, 19% VAT for Germany, 20% for the UK and 21% for Romania; our prices are before VAT.
Where the sources disagree
- Which plan? Contabo’s Immich v3 tutorial uses “Contabo Cloud VPS 8 (8 vCores, 24 GB RAM, 300 GB SSD), or an equivalent plan with at least 6 GB of RAM”. Its separate install guide suggests Cloud VPS 6 and Cloud VPS Plus 8, and its Immich vs PhotoPrism vs Ente comparison calls “4 vCPU and 8 GB RAM” a practical floor. Immich’s own minimum is 6 GB RAM and 2 cores.
- Old prices in a Contabo blog post. The install guide lists Cloud VPS 6 at €7.14 and Cloud VPS Plus 8 at €33.32 a month on a 24-month term. Contabo’s current price data shows €6.00 and €28.00. Trust the order page.
- Names. Contabo’s menu says “Core VPS” and “Performance VPS”; the plan cards and price data say “Cloud VPS 4/6/8” and “Cloud VPS Plus 8”. They are the same products.
- Turning machine learning off. The Contabo tutorial sets
IMMICH_MACHINE_LEARNING_ENABLED=falsein.env. We could not find that variable on Immich’s environment-variables page. Immich’s FAQ says to disable it under Administration > Settings > Machine Learning Settings and, to stop the container entirely, to comment out theimmich-machine-learningsection ofdocker-compose.yml. - Version tag. The tutorial’s setup step uses
IMMICH_VERSION=release; Immich’s currentexample.envdefaults tov3. Keep the official default. - “Port 2283 stays closed”. The tutorial relies on UFW for that, but Docker’s documentation says published container ports bypass UFW. See the next section.
Install Immich on the VPS (official Docker Compose method)
On a fresh Ubuntu or Debian server, logged in over SSH as a sudo user, with Docker Engine and the Compose plugin installed from Docker’s instructions:
- Download the two official files from the latest release into a new folder:
mkdir ~/immich-app && cd ~/immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
- Edit
.env: setUPLOAD_LOCATION(where photos go; on a Storage VPS the default./libraryon the main disk is fine), changeDB_PASSWORDfrom the defaultpostgresto a long random value (Immich asks for letters and digits only, A-Za-z0-9), and keepIMMICH_VERSION=v3. - Close port 2283 to the internet before the first start. In
docker-compose.yml, change the server’s port line from- '2283:2283'to:
ports:
- '127.0.0.1:2283:2283'
Why: Docker’s docs say that when you publish a container’s ports, traffic “gets diverted before it goes through the ufw firewall settings”, and that publishing ports “is insecure by default”. With 127.0.0.1 in front, “only the Docker host can access the published container port”, so only your reverse proxy on the same server can reach Immich.
- Start it:
docker compose up -d
- Add HTTPS with a reverse proxy. Immich’s docs include a Caddy example (Caddy gets the certificate automatically). Point a subdomain such as photos.example.com at the server, then use:
photos.example.com {
reverse_proxy http://127.0.0.1:2283
}
Immich “does not support being served on a sub-path”, so use a subdomain, not example.com/photos. With nginx, Immich’s example raises client_max_body_size to 50000M so large videos upload. Open only ports 22, 80 and 443 in UFW (or reach SSH over a VPN).
- Create the admin account immediately. Contabo’s install guide warns that “the first account registered on a fresh instance becomes the administrator, so register immediately”.
- Connect the phone app. Enter https://photos.example.com in the Immich app on iOS or Android and turn on background backup. Contabo’s tutorial notes that Samsung and Xiaomi battery restrictions can silently stop background uploads, so set the app to unrestricted battery use.
Rather not expose it at all? Skip the public domain and reach Immich only through a private VPN on the same server; our WireGuard on Contabo guide covers the 1-click setup. If you already run a deploy platform such as Coolify on Contabo, keep in mind that a large photo library on the same disk competes with your apps for space.
Back up the photos, not just the server
Immich recommends a “3-2-1 backup strategy” and is blunt about the rest: “Immich does not handle filesystem backups for you.”
- Database: Immich makes automatic database dumps in
UPLOAD_LOCATION/backups(by default daily at 2:00 AM, keeping the last 14). But “database backups do not contain photos or videos”; they hold only metadata such as albums, faces and users. - Files: back up the whole
UPLOAD_LOCATION. The critical folders areUPLOAD_LOCATION/library,/uploadand/profile; if you back up only those, you will need to rerun the thumbnail and transcoding jobs after a restore. - Off the server: Contabo sells FTP backup space as an add-on on the Storage VPS plans and Cloud VPS 4, 6 and 8 (100 GB €4.59, 500 GB €13.79, 1 TB €22.99, 2 TB €36.79 a month). A home NAS or a second provider works too. Keep your phone’s originals until the first full backup has finished.
Our arithmetic, a full example: Storage VPS 30 plus 1 TB of FTP backup space, EU, monthly term: €14.00 + €22.99 = €36.99 a month before VAT, for up to roughly 830 GB of originals with a second copy.
Updating Immich
Immich ships often; the latest release when we checked was v3.3.5, published October 21, 2026, a security fix. Read the release notes, back up, then:
cd ~/immich-app
docker compose pull && docker compose up -d
Is it worth it?
Immich itself is free and open source (AGPL-3.0, over 117K stars on GitHub); the team sells an optional product key to fund development. Immich’s own FAQ answers “Will Immich save me money?” with “Probably not”, pointing to hardware, backup storage and your time. The reasons to do it are control and privacy: your library on your server, no scanning by a big platform, and no per-gigabyte cloud tiers. If you also want files, calendars and contacts, compare it with Nextcloud on Contabo, which has its own photo app but is not built around a phone-first timeline.
Order a Contabo Storage VPS for Immich · Contabo Cloud VPS
What we could not confirm
- Real Immich performance on these plans: we have not benchmarked them. Expect the first import of a large library (face detection and smart search) to take hours to days on a few vCPUs.
- The disk type behind Storage VPS: its cards say SSD; we did not check whether it is shared or local storage beyond that.
- Snapshot support on Storage VPS: none is listed in its specs or order options.
More Contabo guides: all Contabo VPS prices, Nextcloud on Contabo, a private WireGuard VPN and Coolify on Contabo. Or start from Contabo’s homepage.
FAQ
Which Contabo plan is best for Immich?
For most personal and family libraries, Storage VPS 30: 6 vCPU, 18 GB RAM and 1 TB SSD for €14.00 a month (€11.20 on 24 months) before VAT. For a library under about 300 GB, Storage VPS 20. Pick a Cloud VPS if you want snapshots and Contabo’s Auto Backup add-on.
How much RAM does Immich need?
Immich’s docs say a minimum of 6 GB and 8 GB recommended. With 4 GB it runs only with machine learning (faces, smart search) disabled.
Can I run Immich on Storage VPS 10?
Only with machine learning switched off, because it has 4 GB of RAM. Storage VPS 20 costs €2.00 more a month (our arithmetic) and has 8 GB.
Does UFW protect Immich’s port 2283?
Not by itself. Docker routes published ports before UFW’s rules apply. Publish the port as 127.0.0.1:2283:2283 and reach Immich through a reverse proxy or a VPN.
Can I put Immich at example.com/photos?
No. Immich does not support being served on a sub-path; use a subdomain such as photos.example.com.
Do Immich’s automatic backups include my photos?
No. The automatic dumps cover only the database. Back up UPLOAD_LOCATION (at least library, upload and profile) to another machine or service.
Is Immich free?
Yes, it is open source under AGPL-3.0. An optional paid product key supports the developers.
Sources
All checked on October 27, 2026 (Europe/Bucharest).
- Contabo – Storage VPS: https://contabo.com/en/storage-vps/
- Contabo – VPS (Cloud VPS): https://contabo.com/en/vps/
- Contabo blog – How to Self-Host Immich v3 on a VPS with Docker Compose: https://contabo.com/blog/self-host-immich-vps/
- Contabo blog – Immich installation guide: https://contabo.com/blog/how-to-install-immich-vps/
- Contabo blog – Immich vs PhotoPrism vs Ente: https://contabo.com/blog/immich-vs-photoprism-vs-ente/
- Immich docs – Requirements: https://docs.immich.app/install/requirements/
- Immich docs – Docker Compose install: https://docs.immich.app/install/docker-compose/
- Immich docs – Backup and restore: https://docs.immich.app/administration/backup-and-restore/
- Immich docs – Reverse proxy: https://docs.immich.app/administration/reverse-proxy/
- Immich docs – FAQ: https://docs.immich.app/FAQ/
- Immich docs – Environment variables: https://docs.immich.app/install/environment-variables/
- Immich on GitHub: https://github.com/immich-app/immich
- Docker docs – Packet filtering and firewalls (Docker and ufw): https://docs.docker.com/engine/network/packet-filtering-firewalls/
- Docker docs – Port publishing: https://docs.docker.com/engine/network/port-publishing/
