Are you tired of paying monthly fees to big tech companies just to keep your digital memories safe? Imagine having your own private version of Google Photos that is faster, more secure, and completely under your control. Today, we are going to learn how to set up Immich on a TrueNAS SCALE server.
Immich is an advanced, high-performance self-hosted solution for managing your photos and videos. Unlike simple file storage, Immich provides a rich user interface, automatic backups from your mobile devices, and even artificial intelligence to recognize faces and objects in your pictures. It is designed to run efficiently on your home server, providing a seamless experience for your entire family. To get the best performance, we will use a “Split Storage Architecture.” This means we put the database and configuration files on a fast SSD for quick searching, while storing the actual large photo files on a high-capacity HDD. This gives us the speed of a modern app with the massive storage of a professional server.
Before we begin the installation, we must understand why we are separating the data. In the world of Information Technology (IT), we often separate “Hot Data” from “Cold Data.” Hot data includes things like the PostgreSQL database and Machine Learning (ML) cache. These files are small but need to be accessed thousands of times per second. If these are on a slow hard drive, the app will feel sluggish. Cold data, like your actual high-resolution videos and photos, are much larger and don’t need that lightning-fast access speed. By placing the configuration on an SSD pool and the media library on an HDD pool, we create a professional-grade environment.
We will also explore two different ways to install Immich. The first method uses the official TrueNAS Apps Catalog, which is the most user-friendly way. The second method uses a tool called Dockge, which gives us more control over the Docker Compose files. Both methods are effective, but you should only choose one. Immich is a very “healthy” project, meaning the developers update it frequently—sometimes several times a week. It has a massive community on GitHub and is currently considered one of the best self-hosted projects in existence. By the end of this tutorial, you will have a fully functioning system that rivals any commercial cloud provider.
Now, let’s get our hands dirty with the technical setup. Please follow these steps carefully to ensure your permissions are correct, as this is where most people face issues.
- First, log into your TrueNAS SCALE dashboard and navigate to the “Datasets” tab on the left sidebar.
- We need to create two specific datasets. Click on your SSD pool, select “Add Dataset,” name it “immich,” and click “Save.”
- Next, click on your HDD pool (often named “tank”), select “Add Dataset,” name it “immich-library,” and click “Save.”
- Now we must fix the permissions. Click on the “immich” dataset you just created, find the “Permissions” section, and click “Edit.”
- Set the “Group” to “apps” and ensure the “Group” has “Read,” “Write,” and “Execute” permissions. Check the box “Apply group recursively” and click “Save.” Repeat this exact process for the “immich-library” dataset.
- Go to the “Apps” tab on the left sidebar. Click “Discover Apps” at the top right.
- Type “immich” in the search bar. Click on the Immich tile and then click “Install.”
- In the configuration screen, give the application a name. Scroll down to “Storage Configuration.”
- For “Data Storage,” change the type to “Host Path.” Point the “Host Path” to your HDD dataset:
/mnt/tank/immich-library. - For “Postgres Data Storage,” change the type to “Host Path.” Point the “Host Path” to your SSD dataset:
/mnt/ssd/configs/immich. - Scroll down to “Resources Configuration.” If your server has plenty of RAM, I recommend increasing the memory limit to at least 8GB to help with face recognition processing.
- Click “Install” at the bottom. The system will now download the Docker containers. This might take a few minutes because the machine learning models are quite large.
- Once the status changes to “Active,” click the “Web UI” button or navigate to the server’s IP address followed by port 2283.
- Follow the on-screen instructions to create your Admin account. Set your theme, and I highly recommend enabling the “Storage Template” feature to keep your files organized in neat folders based on the date they were taken.
Building your own photo cloud is a significant step toward digital independence. Immich provides the same convenience as commercial apps but keeps your private moments strictly inside your home. Remember that since you are now the “Cloud Provider,” you are also responsible for backups. I recommend setting up a secondary backup task to another drive or a remote location so you never lose your precious memories. As you become more comfortable with the system, you can explore adding more users for your family or even connecting a dedicated Graphics Card (GPU) to make the AI facial recognition run even faster.
