Skip to content
Tutorial emka
Menu
  • Home
  • Debian Linux
  • Ubuntu Linux
  • Red Hat Linux
Menu

How to build a high-performance private photo cloud with Immich and TrueNAS SCALE

Posted on May 3, 2026

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.

  1. First, log into your TrueNAS SCALE dashboard and navigate to the “Datasets” tab on the left sidebar.
  2. We need to create two specific datasets. Click on your SSD pool, select “Add Dataset,” name it “immich,” and click “Save.”
  3. Next, click on your HDD pool (often named “tank”), select “Add Dataset,” name it “immich-library,” and click “Save.”
  4. Now we must fix the permissions. Click on the “immich” dataset you just created, find the “Permissions” section, and click “Edit.”
  5. 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.
  6. Go to the “Apps” tab on the left sidebar. Click “Discover Apps” at the top right.
  7. Type “immich” in the search bar. Click on the Immich tile and then click “Install.”
  8. In the configuration screen, give the application a name. Scroll down to “Storage Configuration.”
  9. For “Data Storage,” change the type to “Host Path.” Point the “Host Path” to your HDD dataset: /mnt/tank/immich-library.
  10. For “Postgres Data Storage,” change the type to “Host Path.” Point the “Host Path” to your SSD dataset: /mnt/ssd/configs/immich.
  11. 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.
  12. 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.
  13. Once the status changes to “Active,” click the “Web UI” button or navigate to the server’s IP address followed by port 2283.
  14. 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.

Recent Posts

  • How to Hardening Mount Option in Linux Server
  • How to Secure Linux Server with AIDE
  • Auditd Custom Rules & Tips
  • Securing SSH Server with fail2ban
  • Fedora Linux Firewalld Drop Zone and Rich Rules
  • How to SSH Hardening 2026
  • How to Add Password Protection to GRUB
  • Linux Kernel Hardening: Command-line Lockdown
  • Make Linux Kernel More Safe and Hardening with Sysctl Easy Way
  • How to Lockdown Root & Wheel Group in Linux
  • How to Secure Sudo in Linux (Secure Sudo Logging & Timeout)
  • Make Fedora Login Safe with Authselect and Faillock
  • How Measure Linux Security Use OpenSCAP Lynis and Systemd
  • SELinux Make Nginx Break and How to Fix It Easy
  • How See Hidden SELinux Errors When Your Server Is Broken
  • How Fix SELinux Port Denied Error With Sealert Easy Guide
  • Read SELinux AVC Denial Log Simple Guide for Noob
  • How Check and Fix SELinux Block Things in Fedora Linux
  • How Actually SELinux is Work?
  • How to Install Elementary OS 8 Easy and Make It Good
  • How to Install UniFi OS Server on Ubuntu Linux Without Cloud Key
  • Top DNF5 Tips to Make Your Fedora Linux Super Fast
  • Run Local AI on Fedora 44 CPU Without Expensive GPU
  • Google Gemini Live Redesign: Works with more ‘Connected Apps’ on Android
  • A new LILYGO T3S3 ESP32-S3 with LoRA, WiFi & Bluetooth is Released only $16
  • Inilah Cara Mengatur Raspberry Pi 5 dengan Ubuntu Server untuk Python dan Desktop GUI Tanpa Ribet
  • Inilah Alasan Kenapa Galaxy Z Fold 8 Ultra Bisa Jadi Produk yang Mengecewakan
  • Inilah Alasan Intel Merilis Raptor Lake Next di Socket LGA 1700, Masih Setia dengan DDR4!
  • Gini Caranya Menghilangkan Recycle Bin dari Desktop Windows 11 Supaya Lebih Bersih!
  • Inilah Huawei AirEngine 8771-X1T, Solusi Wi-Fi 7 Super Cepat untuk Bisnis Masa Kini
  • How to Automate Your Entire SEO Strategy Using a Swarm of 100 Free AI Agents Working in Parallel
  • How to create professional presentations easily using NotebookLM’s AI power for school projects and beyond
  • How to Master SEO Automation with Google Gemini 3.1 Flash-Lite in Google AI Studio
  • How to create viral AI video ads and complete brand assets using the Claude and Higgsfield MCP integration
  • How to Transform Your Mac Into a Supercharged AI Assistant with Perplexity Personal Computer
RSS Error: WP HTTP Error: A valid URL was not provided.
©2026 Tutorial emka | Design: Newspaperly WordPress Theme