Installation
The package can be installed from the snap store like any other snap package. The package is huge (over 700MB) so it can take some time to download. For more information see the Snap Store.
Important information if you like to use candidate, beta or edge
The edge
channel is not intended for end users, it contains experimental untested builds directly from the repository. The beta
channel contains software that "works on my machine" and is published for general testing, expect things to break. I personally use candidate
as a staging ground to try out a release for a few days before I push it to stable.
Updates from "candidate to candidate", "stable to stable" or "stable to candidate" should always work. Otherwise I consider it a bug. The snap may contain migration logic that makes hard to downgrade, never downgrade a revision.
Feel free to use the candidate
channel if you can't wait, but overall for a trouble free experience, stay at the default stable
channel. Sounds complicated? Use the default stable
channel.
Prerequisites
snapd
A computer running Linux with support for snapd. Most commonly used Linux distributions are supported. If you do not have any strong preferences I recommends Ubuntu, or something Ubuntu based.
Windows and WSL2
The snap almost works under Windows Subsystem for Linux. This is not a tested deployment but feel free to try it out if you are a Windows user. I did a quick test and noticed only a minor problem with the machine learning service.
Hardware
A computer with a relatively modern Intel or AMD based CPU, for example the AVX instructionset is needed. You need at minimum 4GB available RAM, 6 or 8 is preferred. You probably also need a lot of free disk space, pictures are stored at /var/snap
.
What about ARM?
There is nothing technically blocking me from adapting this package for more architectures like ARM. At the moment I do not have any ARM based systems running to test and develop ARM support, so I have focused my resources on what I use personally.
Used ports
Immich Distribution requires ports 3001-3003
, 8081
, 5432
and 6379
to be unused, port 80
is also required by default, and port 443
if you enable https. It also allocates free ports in the 34000-36000
range.
See HAProxy if you like to change the http or https ports. Immich will fail to start if these ports are used by another application.
Used ports with service names
Port | Interface | Configurable | Comment |
---|---|---|---|
80 |
all | YES | HAProxy - Reverse proxy |
443 |
all | YES | HAProxy (only if HTTPS is enabled) |
3001-3003 |
lo | NO | Immich Services |
8081 |
all | NO | Metrics (Prometheus) |
5432 |
lo | NO | Postgres - Relation database |
6379 |
lo | NO | Redis - In-memory KV database |
34000-36000 |
all | YES | ACME certificate renewals (if enabled) |
Note: Immich Distribution allocates unused ports in the range 34000-36000
. The entire range will of course not be used.
Connecting to the server
If you installed immich-distribution to a server with the IP 192.168.1.10
open a browser and navigate to http://192.168.1.10
. The stack can take up to a minute to fully start, especially the machine learning components are slow to start.
See the official Post Install Steps will guide you to setup your account, and configure your mobile application.
If this installation is exposed to the public internet I stronly suggest that you set up https and read the security section.
Updates
Updates are by default automatic, this is a core concept of the package format. I write the software with that in mind so I will never push a breaking change. You should never have a broken system as a result of an automatic update.
Disable or control automatic updates
The advantages with automatic updates usually outweights the disadvantages for ordinary users, that's why automatic updates are on by default. If you have other needs this behavior can be changed with the following commands.
Please note that if you do not update regularly (that's about once a week, at minimum) I can't guarantee that updates are completely trouble free. They should be, but I test only updates done sequentially from version to version.
- Change this to a value to your likeing. See the documentation for more information.
Another alternative is to pick a time when updates are applied, like in the middle in the night. For more information about that, and much more see snapd:s documentation.
Do not expect me to release updates the same day as an upstream Immich release. I hope to do so in a reasonable time. When Immich releases an update I will build and push an update to the candidate channel when I beleave I got it right (my server uses this channel) and try it out myself for a few days. I will relese the build to the stable channel after a few days, if everyting works.
When is the next update released?
Updates can be quick and easy, or a lot of work depending on the changes upstream. I will open a tracking issue tagged with new-version when I detect an update, feel free to ask questions there. If you have experience with building snap packages, see upgrade how to contribute to the project.
To speed up the transition time from "beta -> candidate -> stable", help me test the build and inform me about detected problems, try to troubleshoot them, and of course, also report success!
Finally, just a thumbs up or any message will keep me motivated to carry on!
Configuration
By default you should have a working installation of Immich, but you may like to configure it a bit. See the configuration pages for that.