Replace Google Photos with Immich — an open-source, high-performance photo and video backup solution with mobile apps and machine learning features.
2 GB RAM. On low-memory servers, disable ML in Settings → Machine Learning.Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/media/immich/immich-ubuntu.sh
chmod +x immich-ubuntu.sh
sudo bash immich-ubuntu.sh
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/media/immich/immich-ubuntu.sh
chmod +x immich-ubuntu.sh
The script installs Docker if needed, then sets up the service automatically.
sudo bash immich-ubuntu.sh
Open your browser and navigate to:
http://<your-server-ip>:2283
Download the Immich app for iOS or Android — enable automatic photo backup in the app settings to start syncing your library.
| Port | Purpose |
|---|---|
| 2283 | Immich Web UI |
Immich is a high-performance, self-hosted photo and video backup solution designed as a full replacement for Google Photos. It provides automatic mobile backup via native iOS and Android apps, a clean web gallery, facial recognition, object detection, and EXIF-based map views — all running on your own infrastructure.
Google Photos scans your personal photos for AI training and ad targeting — your family memories are processed by one of the world's largest advertising platforms. Immich puts the same machine learning (facial recognition, object detection, CLIP semantic search) on your own server: your photos stay on your hardware, behind your firewall, under your control. The mobile app is indistinguishable from Google Photos in daily use: take a photo, it appears in Immich within minutes, automatically backed up.
Immich serves on port 2283 by default. Proxy through Nginx Proxy Manager with HTTPS — the mobile app requires a valid HTTPS certificate for external access. The ML container, PostgreSQL (5432), and Redis are internal Docker services. Open only port 2283 on the host (or only 443 if using Nginx Proxy Manager). Ensure sufficient upload bandwidth — photo backup generates sustained upload traffic from multiple phones.
PhotoPrism (better RAW workflow, WebDAV, no dedicated mobile backup app), Nextcloud Photos (integrates with Nextcloud but less ML), Piwigo (gallery-focused, no auto-backup), LibrePhotos (Python-based, less polished). Immich is the best self-hosted Google Photos replacement — the mobile app is the decisive advantage over alternatives.
Skip Immich if you are a photographer primarily managing RAW files with a desktop workflow — PhotoPrism's WebDAV and Darktable integration are better suited. Also be cautious if you have less than 2 GB RAM — the ML container uses significant memory; disable machine learning in Settings to run on lower-spec hardware (you lose face recognition and smart search but keep backup functionality). Immich development moves fast — always check the changelog before major updates.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Install the Immich app on iOS or Android and connect it to your server URL with your account credentials. In the app settings, enable Auto Backup and choose which device albums to include (Camera, Screenshots, Downloads, etc.). The app monitors those albums for new photos and videos and uploads them to your Immich server in the background — typically within minutes of taking a photo when connected to Wi-Fi. You can also configure backup over mobile data. Uploaded originals are stored in the upload volume on your server; the app can optionally keep local copies or remove them after successful backup.
CLIP (Contrastive Language-Image Pre-Training) is an AI model that understands the relationship between images and natural language descriptions. Immich uses CLIP to enable semantic search: type 'red bicycle on a street' and Immich returns photos matching that description — even without any manual tags, captions, or keywords on the photos. This is the same technology behind Google Photos' natural language search. The CLIP model runs in Immich's ML container on your server — no photos are sent to any external AI service.
Immich's ML container detects faces in all indexed photos and clusters them by facial similarity. Visit the People section of the web interface to see all detected face clusters. Click on a cluster and assign a name — that person's People album is created and all matching photos appear in it. New photos are automatically assigned to the correct person on future ML runs. The model distinguishes between different people accurately and can detect faces across varying ages in your library.
Yes. Use Google Takeout to export your Google Photos library as a zip file (takeout.google.com). The export includes original photos with metadata JSON files. Use the Immich CLI tool (docker exec immich-server immich upload --google-photos) to import the Takeout export — it reads the JSON files and preserves original dates, albums, and descriptions. For large libraries, the CLI import is faster than uploading through the web interface. Duplicate detection prevents re-importing photos already in Immich.
Immich offers several sharing options. Per-album sharing: create an album, add photos, and share it with specific users on your Immich server — they see it in their own account. Public links: generate a shareable link for an album or individual photo — anyone with the link can view without an account. Partner sharing: grant a specific user view access to your entire library (and optionally allow them to see your faces) — ideal for partners who want to see each other's full camera roll on one server.
Yes. Immich backs up video files from your phone alongside photos — MP4, MOV, and other formats are supported. Videos are transcoded in the background for web playback with lower bandwidth requirements, while the original file is preserved. Motion photos (Google Pixel) and Live Photos (iPhone) are handled correctly — the photo and video component are stored together and displayed as a live photo in the web interface and mobile app.
Storage depends on your phone camera quality. A modern smartphone at 12MP takes JPEG photos of 3–5 MB each and HEIC photos at 2–4 MB. Videos vary from 50 MB (30-second clip) to several GB for long 4K recordings. A family of 4 taking an average of 10 photos per day generates roughly 50 GB per year. Plan for at minimum 500 GB for an active family; 2+ TB for 10+ years of photos. Immich also generates thumbnails (small, using 10–20% of original size) in addition to storing originals.
Yes. In the Immich docker-compose, you can remove the immich-machine-learning service entirely. In Settings → Machine Learning (admin panel), disable all ML features: facial recognition, CLIP search, and object detection. Without ML, Immich functions as a reliable photo backup and organisation tool with timeline, albums, sharing, and map view — just without smart search and face recognition. This reduces RAM usage significantly, making Immich viable on 1 GB RAM servers for basic backup use.