
If you are tired of paying for cloud photo storage or worried about who has access to your private photos, you are not alone. Many Linux users want a private alternative to Google Photos or iCloud, and that is exactly what Immich offers.
This guide will show you how to Install Immich Fedora 44 using Docker Compose, the official and recommended method for production use. By the end, you will have a working self-hosted photo server running on your own Fedora machine.
We will walk through every command, explain what it does, and more importantly, explain why you need to run it. This is not just a copy-paste tutorial. It is written from a sysadmin’s perspective, so you understand what is happening under the hood at each step.
Whether you are a beginner exploring Linux server tutorial content for the first time, or an intermediate user looking to configure Immich Fedora 44 properly, this article covers everything you need.
What Is Immich and Why Use It on Fedora
Immich is an open source, self-hosted photo and video backup solution. It replicates many features found in commercial cloud photo apps, including automatic backups from your phone, face recognition, and a clean web interface.
Fedora 44 is a strong choice to host Immich because it ships with modern container tooling and a security-focused system design out of the box. Running Immich on Fedora gives you full control over your data while benefiting from a stable, well-supported Linux distribution.
Unlike quick one-line install scripts you might find elsewhere, this tutorial follows the official Docker Compose method. This approach keeps your setup clean, easy to upgrade, and easy to troubleshoot later.
Prerequisites
Before you begin, make sure your setup meets these requirements. Skipping any of these can cause installation errors later.
- Fedora 44 installed and fully updated, either on bare metal or a virtual machine.
- Root or sudo access to install packages and manage services.
- At least 6 GB of RAM and 2 CPU cores for smooth performance.
- Enough free disk space for your photo library, ideally on a separate partition or drive.
- A stable internet connection to download Docker images and Immich files.
- Basic familiarity with the Linux terminal.
Keep these requirements in mind as you move through the setup. Now let’s get into the actual Install Immich Fedora 44 setup process.
Step 1: Update Your Fedora System
The first thing any experienced sysadmin does before installing new software is update the system. This step matters because outdated packages can cause dependency conflicts with Docker later on.
Run the system update
sudo dnf update -y
What this does: it refreshes your package repositories and installs the latest versions of installed packages.
Why it matters: running an update first reduces the risk of package conflicts and ensures you have the latest security patches before installing new services on your server.
Once the update finishes, it is a good idea to reboot if the kernel was updated.
sudo systemctl reboot
This makes sure your system is running on the freshest kernel and libraries before you continue.
Step 2: Install Docker and Docker Compose
Immich relies on Docker Compose to manage multiple containers together, including the app, database, and Redis cache. Fedora provides its own Docker packages through official repositories, so you do not need third-party repos for this step.
Install Docker Engine
Run the following command to install Docker and the container runtime:
sudo dnf install docker-cli containerd -y
What this does: it installs the Docker command line client along with containerd, the underlying container runtime that actually runs your containers.
Why it matters: you need both pieces working together. The client sends commands, and containerd executes them.
Install the Docker Compose Plugin
Next, install the Compose plugin so you can use the docker compose command:
sudo dnf install docker-compose -y
What this does: it adds Compose version 2 support as a Docker plugin, letting you run docker compose instead of the older standalone docker-compose script.
Why it matters: Immich’s official installation instructions specifically use docker compose up -d, and using the wrong version can cause file parsing errors.
Expected output after installation should show a successful transaction summary listing the installed packages without errors.
Step 3: Enable and Verify the Docker Service
Installing Docker is not enough. You need to make sure the service actually starts and stays running.
sudo systemctl enable --now docker
What this does: it enables Docker to start automatically at boot and starts the service immediately.
Why it matters: without this step, Docker will not run after a reboot, which means your Immich containers will not restart either.
Confirm Docker is working correctly with a quick test:
sudo docker run hello-world
If everything is set up correctly, you should see a message confirming that Docker can pull and run images successfully. This small test saves you from debugging bigger problems later.
Step 4: Download the Immich Installation Files
With Docker ready, it is time to prepare the files needed for the How To Install Install Immich Fedora 44 process. Immich provides an official Compose file and environment template that you should always use as your starting point.
Create a dedicated directory first:
mkdir ~/immich-app
cd ~/immich-app
Why it matters: keeping Immich files in their own folder makes future upgrades, backups, and troubleshooting much simpler. You never want configuration files scattered across your home directory.
Now download the official Compose file and environment template:
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.env
What this does: the first command downloads the Compose file that defines all Immich services. The second downloads the environment template and saves it directly as .env.
Why it matters: always pull these files from the latest official release. This keeps your setup aligned with the current stable Immich version and avoids using outdated configuration options.
Step 5: Configure Immich Fedora 44 Environment Variables
This is one of the most important steps when you configure Immich Fedora 44 for the first time. The .env file controls where your photos are stored, your database credentials, and your timezone.
Open the file with a text editor:
nano .env
Set the Upload Location
Look for this line:
UPLOAD_LOCATION=./library
Why it matters: this folder stores every photo and video you upload. Point it to a location with plenty of free space, ideally a separate disk or partition, so your system drive does not fill up over time.
Change the Default Database Password
Find this line:
DB_PASSWORD=postgres
Change it to something unique using only letters and numbers.
Why it matters: even though the database is not exposed to the internet, using a weak default password is still bad practice for a production server.
Set Your Timezone
Uncomment and update this line:
TZ=Asia/Jakarta
Why it matters: correct timezone settings keep your photo timestamps accurate, which matters a lot when your library organizes images by date taken.
Save the file and exit the editor once you are done.
Step 6: Start the Immich Containers
Now comes the moment you have been building toward. From inside your ~/immich-app directory, run:
docker compose up -d
What this does: it downloads the required container images and starts all Immich services in the background, including the server, database, and machine learning components.
Why it matters: running with -d keeps the containers running even after you close your terminal, just like a proper background service.
The first startup can take a few minutes since Docker needs to download several images. Check the status with:
docker compose ps
You should see multiple containers listed with a status of “Up” or “healthy.”
Step 7: Access Immich and Create Your Admin Account
Open a web browser and go to:
http://your-server-ip:2283
Why it matters: testing access through the browser confirms that Immich is actually reachable on your network before you move on to more advanced configuration.
You will be prompted to create an administrator account. Fill in your email and a strong password to finish the setup.
Try uploading a test photo right after logging in. This confirms your storage path and permissions are working correctly before you trust the server with your real photo library.

Step 8: Handle SELinux on Fedora Correctly
Fedora ships with SELinux enabled by default, and this can quietly block container file access even when Docker itself runs fine. This is a common headache reported by Fedora users setting up Immich.
Rather than disabling SELinux entirely, which weakens your security posture, check for denied actions first:
sudo ausearch -m avc -ts recent
Why it matters: this command shows you exactly what SELinux blocked, so you can create a targeted fix instead of turning off protection system-wide.
If your upload folder is outside the default Docker context, you may need to relabel it so containers can write to it properly. Always confirm the exact permission issue before changing security policies on a production server.
Step 9: Add HTTPS With a Reverse Proxy
Running Immich directly on port 2283 works fine for local testing, but a reverse proxy is strongly recommended for real use. A reverse proxy like Caddy or nginx handles TLS encryption and gives you a clean domain name instead of an IP address and port.
Why it matters: your reverse proxy must forward specific headers correctly, including Host, X-Real-IP, X-Forwarded-Proto, and X-Forwarded-For. Skipping this step can break login sessions or file uploads.
Also make sure your proxy allows large file uploads, since photo and video files are often much bigger than typical web traffic. This detail is easy to miss and causes failed uploads for large video files.
Troubleshooting Common Immich Fedora 44 Errors
Even a solid Linux server tutorial can run into a few bumps. Here are the most common issues and how to fix them.
Error: “unknown shorthand flag: ‘d’ in -d”
This usually means you are running an old Docker Compose version. Reinstall the Compose plugin using the official Fedora package shown in Step 2.
Error: Containers show “unhealthy” status
Check container logs for details:
docker compose logs
This reveals the exact service causing problems, often related to database connection issues or incorrect environment variables.
Error: Uploads fail or files do not save
This is often a permissions or SELinux problem. Double check that your UPLOAD_LOCATION folder exists and has correct ownership, then review SELinux logs as covered in Step 8.
Error: Cannot access the web interface
Confirm the container is actually running with docker compose ps. If it shows as running but you still cannot connect, check your firewall settings to make sure port 2283 is open.
Error: Health check fails with a start_interval message
This happens on older Docker Engine versions. Comment out the start_interval line in the database section of your docker-compose.yml file to resolve it.