Handing your entire photo history to a cloud service you do not control is a quiet gamble, and the bill only ever climbs. Immich is the self-hosted answer: a photo and video backup app that looks and feels like the big cloud galleries, complete with face recognition and search, but runs entirely on your own NAS. The mobile app auto-backs up your camera roll, the machine learning runs on your hardware, and no image leaves the building.
Quick Answer
To self-host Immich on a NAS, deploy its Docker Compose stack on an x86 unit with at least 6GB of RAM, 8GB recommended when running face recognition. The mobile app then auto-uploads your camera roll while the machine learning service handles faces and search locally. Immich sends no images to external servers.
Check Your NAS Can Run It
Immich is more demanding than a simple file share, so confirm the hardware first. It needs an x86 NAS, not an ARM-based budget unit, because the machine learning container requires the x86-64-v2 instruction level, which most CPUs from roughly 2012 onward support. RAM is the figure that catches people: 6GB is the minimum and 8GB is recommended, because the machine learning container alone wants 2 to 3GB while it processes faces and builds search indexes.
One storage note that matters: the Postgres database should live on local SSD, never on a network share, or you risk corruption. Your actual photos can sit on the NAS array, but the database wants fast local storage. The diskless NAS and storage range lays out which units have the x86 power and RAM headroom this needs.
Step-by-Step Deployment
- Confirm Docker is available. Immich runs via Docker with the Docker Compose plugin, using the modern
docker composecommand. Install Container Manager or the Docker package on your NAS if it is not already there. - Create a folder for Immich. Make a directory on the NAS to hold the configuration and the upload location for your photos.
- Download the official Compose files. Pull the docker-compose.yml and the example .env file from the Immich project. These define the four services: the server, the machine learning container, Redis, and the Postgres database.
- Edit the .env file. Set the upload location to your chosen photo folder, point the database location at local SSD storage, and set a strong database password. This file is where you tell Immich where everything lives.
- Start the stack. Run the compose command to pull the images and bring all four containers up. The first start downloads the machine learning models, around 2 to 4GB, which it caches so it only happens once.
Connect the Mobile App
- Open the web interface. Browse to your NAS address on the Immich port and create the admin account. This is your library's control panel.
- Install the mobile app. Download the Immich app on your phone, enter your server address, and log in with that account.
- Enable backup. Turn on automatic backup in the app and choose which albums to upload. From then on, the app backs up your camera roll in the background whenever the phone is on your network or, if you expose it securely, anywhere.
What the Machine Learning Does
Once photos are in, the machine learning service goes to work locally. It runs facial recognition to group photos by person, object detection so you can search for "beach" or "dog," and CLIP-based semantic search that finds images by description. The key point for privacy: all of this runs in the container on your NAS, so the models never send your images anywhere. If your NAS is tight on RAM you can disable the machine learning service entirely and lose only the smart features, keeping the backup. A fast cache or boot SSD from the SSD best sellers keeps the database and model cache responsive.
Frequently Asked Questions
How much RAM does Immich need with face recognition on?
6GB is the minimum and 8GB is recommended, because the machine learning container wants 2 to 3GB on its own while processing faces and search. If your NAS has less, you can disable machine learning and keep the core backup.
Does Immich work on an ARM-based NAS?
The machine learning container needs an x86-64-v2 capable CPU, so a low-end ARM NAS will not run the full feature set. Use an x86 unit for face recognition and smart search; most CPUs since around 2012 qualify.
Does Immich upload my photos to any cloud?
No. The whole point is that everything runs on your own NAS, the backup, the database, and the machine learning. No images are sent to external servers, which is the difference from mainstream cloud galleries.
Where should the database live?
On local SSD storage, never on a network share, to avoid corruption. Your photo files can sit on the NAS array, but the Postgres database wants fast local storage to stay reliable.
Can I still use the smart search on a low-RAM NAS?
Only if there is enough RAM for the machine learning container, which wants 2 to 3GB. On a constrained unit you can disable machine learning to keep the backup running, accepting that face grouping and semantic search will be unavailable.
Want a private photo library you fully control? Browse the NAS storage at Evetech for an x86 unit with the RAM for Immich, then pair it with a fast SSD to keep face recognition and search quick.