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
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, orphotos.your-domainonce 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:
- 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:31283works. From outside, usehttps://photos.<your domain>once you have a domain, or the LibrePortal VPN. - Sign in with your email and password.
- 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
libraryfolder 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 is | Who can reach it | With 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.
| Setting | What it does | Starts as |
|---|---|---|
NameCFG_IMMICH_DISPLAY_NAME |
What this app is called on your dashboards. Leave empty to use its usual name | Empty |
Show on the LibrePortal DashboardCFG_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 logsCFG_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 hoursCFG_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 & FacesCFG_IMMICH_SMART_SEARCH |
Search by what is in a photo and group people (needs more memory) Choices: true, false |
false |
Admin EmailCFG_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.
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.
Set a new password for the admin and sign it out everywhere. Leave blank to generate one.
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.