LibrePortal
Sponsor
Install

Immich

Photo & Video Backup

Immich backs up the photos and videos on your phone to your own server, by itself, then lets you browse them by date and place, gather them into albums and share them, much like Google Photos or iCloud, but on hardware you own.

On this page
  1. At a glance
  2. What it's good for
  3. Signing in
  4. Backing up your phone
  5. Adding people
  6. Smart search and faces
  7. Good to know
  8. What the install asks
  9. Addresses and ports
  10. Settings
  11. In its config file
  12. Tools
  13. Works with
  14. Privacy and security
  15. What leaves this server
  16. What LibrePortal turns off
  17. Sources
  18. Under the hood

Good to know before you install

About 0.8 to 1.3 GB of memory, and with Smart search & faces on (off by default) 0.2 GB more idle and 1.3 GB more while it works, after fetching 0.8 GB of models from Hugging Face once; the photo library can grow very large; in the phone app enter the address the Open button shows (plain http://<server>:<port> works on your own network); it contacts no other service on its own.

At a glance#

What it is
Photo & Video Backup Media
Where it opens
Web Interface On its own port at http://your-server:port, or photos.your-domain once you have a domain
Updates
When you choose New versions wait for you to press Update
Backups
Included Part of the daily backup when that's switched on
Copies
One per server
Needs
memory

What it's good for#

If your phone keeps warning that it's full, or your family's photos are split between three cloud accounts, Immich brings them home. Its phone app uploads new photos and videos in the background, so every picture you take ends up on your server. On the server, they're laid out on a timeline, sorted by date, with a map of where they were taken, albums you make, and links you can send to share an album with someone.

Each person in the house gets their own account and their own library, and you can share albums between you.

Immich or Nextcloud?

Nextcloud's phone app can upload your camera roll too, but Nextcloud is a place for files of every kind. Immich is built only for photos and videos: a fast timeline, search by date, place and camera, albums, sharing and, if you switch it on, search by what's in a picture. If photos are what you care about, Immich is the better home for them.

Signing in#

A new Immich asks the first person who opens it to create the admin account, which would be a problem on a server anyone can reach. So LibrePortal makes that account itself, as soon as Immich answers, and keeps Immich reachable from the server only until it has checked the new login works. Nobody gets a chance to reach the setup page first. After that, Immich's setup page is switched off for good, so it can't be used even if the admin account were ever deleted.

Immich signs people in with an email address. The install asks for the Admin email; leave it empty and one is made up: admin@<your domain> with a domain, or admin@immich.invalid without one, an address that can never receive mail. The email and password are in the Login Details shown when the install finishes. Press Welcome on the app's page to see them again.

If the install couldn't make the account

If something went wrong (Immich didn't answer within ten minutes, say), the install says so and leaves the app reachable from the server only, so it can't be claimed by someone else. The simplest fix is to uninstall it and install it again. See until the admin account exists.

Backing up your phone#

Immich's own phone app, for Android and iPhone, is how most photos arrive. In the app:

  1. Enter the server address. The app asks for a server endpoint URL. Use the address the Open button on Immich's page opens. On your own network, a plain address like http://192.168.1.50:31283 works. From outside, use https://photos.<your domain> once you have a domain, or the LibrePortal VPN.
  2. Sign in with your email and password.
  3. Turn on backup and choose which albums on the phone to back up. The app then uploads new photos by itself.

If this server serves its apps over HTTPS on their own ports, with its own certificate rather than one from a domain, turn on Allow self-signed SSL certificates in the phone app's advanced settings, or it will refuse to connect.

This is why Immich is marked Public in the catalogue, with no extra login in front of it: the phone app has to reach the same port the browser does, and so do the people you send shared-album links to. If you only back up at home, you can make it private instead, and use the VPN when you're out.

Adding people#

Each person should have their own account, so their photos stay theirs. Create accounts in Immich itself, from its administration pages, signed in as the admin. Other people's passwords are also reset there.

The Tools tab has two tools. Reset Admin Password sets a new password for the admin account (leave it empty to generate one), updates the Login Details and signs the admin out everywhere. List Users shows every account and whether it's an admin.

Change the admin password with the tool

Reset Admin Password works by signing in to Immich with the password LibrePortal holds. If you change the admin's password or email inside Immich, the tool can no longer sign in and the Login Details go out of date. Use the tool instead. If it's too late, Immich's own immich-admin reset-admin-password command, run in a terminal on the server, gets you back in. To check: say how to put the password LibrePortal holds back in step after immich-admin reset-admin-password; the tool needs the old password, and the value isn't on the Config tab

Smart search and faces#

Immich can look at what's in your photos: find "dog on a beach", group the same person across years of pictures, spot duplicates and read text in images. This runs in a separate part of Immich that needs a lot more memory, so it's off in a new install. Without it, photos still back up, play and group by date and place, and you can search by file name, date, place and camera.

To switch it on, tick Smart Search & Faces on the Config tab and press Update Configuration. The first time it runs, it downloads about 0.8 GB of models from Hugging Face. Photos you already have aren't looked at by themselves: in Immich's administration pages, open the job queues and run Smart Search and Face Detection for all photos. Turning it off again removes that part and frees the memory.

Good to know#

  • Memory. Immich uses about 0.8 GB after a fresh start and around 1.3 GB once it's been working on uploads, database included. Smart search and faces adds about 0.2 GB when idle and about 1.3 GB more while it works.
  • The library grows, and so do backups. Immich keeps your originals and makes thumbnails and smaller videos from them, all in the library folder in its app folder. LibrePortal backs up the whole library with the database, so check your backup location has room; after the first backup, only new photos add much. The downloaded models aren't backed up, because they can be fetched again. Immich also keeps nightly copies of its own database inside the library. If the library outgrows its disk, move it to a bigger one.
  • Keep a backup. Immich is where your photos live once they leave the phone, so make sure LibrePortal's backups are going somewhere other than the server itself.
  • Updates wait for you. Immich releases often, every release changes its database the first time it starts, and its release notes sometimes ask for a step first. So LibrePortal starts Immich on Manual and pins it to an exact version: pressing Update brings fresh builds of that version, and nothing jumps to a new release on its own. When a newer release appears on the Updates tab, Upgrade moves Immich up one version at a time, taking a backup and checking it at every step, so you do it when you've read the release notes. If you'd rather it climbed on its own, set it to Automatic and it steps up one verified version a day. A backup is taken first, as always. See Updates. The phone app updates from its app store, and it works best when the server isn't far behind it.
  • It contacts no one else by default. The new-version check and the map are switched off at install, because the map's pictures come from Immich's own tile server, which would learn roughly where your photos were taken. Place names like "Paris, France" are worked out on your server. You can turn either back on in Immich's own settings. The only outside contact left is the one-off model download, and only if you switch on smart search.
  • One per server. Immich can't run as several copies side by side.

What the install asks#

When you install Immich, LibrePortal asks for a little more than usual before it starts:

  • Admin email. The admin signs in to Immich and its phone app with this. Its password is made for you and shown with the app's logins. Empty makes up an address. You can leave this one empty.

Addresses and ports#

Immich has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Web Interface Anyone photos.your-domain

Settings#

In its config file#

Immich's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_IMMICH_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_IMMICH_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
true
Detailed logs
CFG_IMMICH_VERBOSE_LOGS
Whether Immich writes its normal, chattier logs, including who connected, instead of only warnings and errors.
Choices: true, false
false
Debug logging for 24 hours
CFG_IMMICH_DEBUG_LOGS
Turn on to see everything Immich is doing while you look for a problem; it turns itself off after 24 hours.
Choices: true, false
false
Smart Search & Faces
CFG_IMMICH_SMART_SEARCH
Search by what is in a photo and group people (needs more memory)
Choices: true, false
false
Admin Email
CFG_IMMICH_ADMIN_EMAIL
The email the admin signs in with. Empty makes one up Empty

Tools#

Immich's Tools tab has 3 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.

Use a shared photos folderTested on 3.2.4

Read LibrePortal's SharedPhotos folder, read-only, as an External Library in Immich. It is the same folder ownCloud and Nextcloud show, and it is turned on if it is off. Immich restarts for a few seconds. Nothing is copied or deleted either way.

Asks for: Photos from (optional)
Reset Admin Password

Set a new password for the admin and sign it out everywhere. Leave blank to generate one.

Asks for: New password (optional)
List Users

List every account.

Works with#

These are the other apps Immich knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Shared photos folder: Reads the SharedPhotos folder you fill from Nextcloud or ownCloud. Nothing is copied.
  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Home Assistant: Show your photos on Home Assistant dashboards.
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

All clear Immich keeps your photos on your server. LibrePortal turns off its update check and online map, so it contacts nobody except Hugging Face once to fetch the face-recognition models.

What leaves this server#

  • Face-recognition and search models are downloaded once from Hugging Face

What LibrePortal turns off#

  • Detailed logs and per-request access logging (switchable in Config)
  • Update check against Immich's servers
  • Online map tiles

Licence: AGPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs these images: ghcr.io/immich-app/immich-server:v3.2.4@sha256:d317916b28090c33eb36b308464ea391f8b7df1d850fcfea227a39ec879718c2, ghcr.io/immich-app/immich-machine-learning:v3.2.4@sha256:e16c2f166a8174901959fdf85e2e4c7bd1ebc4b37e0b6655de97c41408a260c4, ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23, docker.io/valkey/valkey:9@sha256:3add1a336a920ea54770a001ab6feb3da5fceea96a40373a3a2cd469b815f0b7. The version is pinned, and moves only when you update it.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/immich-app/immich

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps