// Engineering Log
Self-hosted cloud: Part 5 — Immich instead of Google Photos
Published on 2026-09-22
Immich — is an application for storing and viewing photos and videos on your own server. In capabilities it is close to Google Photos: the mobile app uploads photos from the phone automatically, and the web interface has a feed, albums, a map, face search and content search. The difference is that files are on your disk, not with a cloud provider.
The project is distributed under the AGPLv3 license. The current stable branch as of September 2026 is 3.x (version 3.2.2).
Components
- Server — several containers: the main application, a machine learning service (face recognition and content search), a PostgreSQL database and Redis.
- Clients — apps for Android and iOS and a web interface.
The phone connects to your server’s address and uploads new photos and videos in the background. Originals are stored in the directory you specified during installation.
Installation
The official documentation recommends Docker Compose and the files from the latest release, not cloning the repository:
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.envIn the .env file you need to set:
UPLOAD_LOCATION— directory for photos and videos, preferably on a separate disk;DB_DATA_LOCATION— database directory; per the comment in the file, network resources for the database are not supported;DB_PASSWORD— your own password of letters and digits;TZ— time zone.
Then:
docker compose up -dThe documentation requires Docker Engine version 25 or newer. The web interface opens by default on port 2283; the first registered user becomes the administrator.
Mobile app and external access
For the phone to upload photos not only at home, the server must be reachable from outside. Two reasonable options:
- VPN or mesh network (WireGuard, Tailscale) — the phone connects to the server as a device on its network, nothing is exposed externally;
- reverse proxy with HTTPS (Caddy, Nginx) — if access by domain name is needed. In that case, strong passwords and timely updates are mandatory.
Do not open port 2283 directly to the internet without HTTPS.
Backups
Immich is storage, not a backup. If photos are deleted from the phone after upload, the only copy remains on the server, and it needs to be protected just like any valuable data.
You need to save two things:
- Original files — according to the documentation, the
library,uploadandprofiledirectories insideUPLOAD_LOCATIONare critical. Previews and transcoded videos can be regenerated. - The database — albums, faces, metadata, users. Immich itself makes database dumps: by default daily at 2:00, the last 14 are kept, in the
UPLOAD_LOCATION/backupsdirectory. Dumps do not include photos and videos, only metadata, so you should copy them together with the originals.
Then the usual 3-2-1 rule applies: a copy on another medium and a copy off-site. Details on strategies are in the article about the rule 3-2-1.
Server requirements
There are no exact minimum requirements in the installation section. In practice the machine learning service noticeably loads the CPU and memory during initial processing of a large library: face recognition for tens of thousands of photos can take hours. After initial indexing the load decreases. Disk space is determined by the size of the library plus previews and transcoded videos.
Limitations
- Updates require attention. The project is actively developed; between major versions there can be changes that require manual actions. Before updating, read the release notes and have a fresh backup.
- Administration is on you. Disks, updates, external access and backups are your responsibility.
- Family and friends. You can create multiple users and shared albums, but each new user increases data volume and load.
Common mistakes
- Storing the database on a network resource — Immich does not support this.
- Deleting photos from the phone without having a second copy of the library.
- Updating containers “blindly” without reading the release notes.
- Exposing the server to the internet over HTTP.
When Immich is a good fit
It suits those who already have a home server or NAS and who are willing to monitor updates and backups. If you don’t have your own hardware, start by choosing where the data will be stored — about that in the previous parts of the series, including about file storage on Nextcloud.
// Contact
Need help?
Get in touch with me and I'll help solve the problem
I reply within one business day (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related