Commit graph

30 commits

Author SHA1 Message Date
Diogo Correia c0c664b327
nixos/immich: reindex VectorChord indexes on update
VectorChord requires its indexes to be reindexed when the extension is
updated. [1]
This commit adds functionality to save the current version of the
extension before performing an update, and then compare it with the
updated version to decide whether it should reindex Immich's indexes.
This complexity is needed to avoid reindexing every time PostgreSQL is
started, as it is an expensive operation that would slow down startup.

[1]: https://docs.immich.app/administration/postgres-standalone/#updating-vectorchord
2025-10-24 19:20:20 +01:00
Fabian Möller 15a1d17c02
nixos/immich: fix missing parens in sql file creation 2025-10-20 08:55:36 +02:00
sweenu 16041e56cc
nixos/immich: fix sql command on inexistant table 2025-10-19 22:24:39 +02:00
Nicolas Mémeint 7dc3d46155 nixos/immich: Trim trailing newline from secretSettings file contents 2025-10-18 10:39:41 +02:00
Robert Schütz f1e52abf0d nixos/immich: fix eval with settings == null
Using the module without declarative settings previously failed with

    error: attribute 'settingsFile' missing
2025-10-06 15:08:09 -07:00
Robert Schütz c78079059a nixos/immich: add secretSettings option 2025-10-05 02:44:08 -07:00
Robert Schütz 3fbb8e08a1 nixos/immich: set $XDG_CACHE_HOME
The immich-machine-learning service can fail with

    RuntimeError: Data processing error: I/O error: Operation not permitted (os error 1)

because huggingface attempts to download files to $HOME/.cache (which
doesn't exist in this case) unless $XDG_CACHE_HOME or $HF_HOME is set.
2025-09-19 05:35:12 -07:00
Sefa Eyeoglu a9c17c34b1
nixos/immich: add VectorChord migration docs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-08-19 17:56:20 +02:00
Sefa Eyeoglu 0b93bf6c22
nixos/immich: add enableVectors option
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-08-19 17:55:28 +02:00
Sefa Eyeoglu fd1994a8b7
nixos/immich: add enableVectorChord option
This enables VectorChord in the database (currently) alongside
pgvecto.rs. Note that VectorChord requires pgvector, which is enabled as
well by this option.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-08-19 17:55:14 +02:00
Sefa Eyeoglu 1a24457782
nixos/immich: only start after reaching postgres.target
Without this dependency, we may run into a race condition, especially in
our tests.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-08-14 22:30:00 +02:00
Wolfgang Walther 41c5662cbe
nixos/postgresql: move postStart into separate unit
This avoids restarting the postgresql server, when only ensureDatabases
or ensureUsers have been changed. It will also allow to properly wait
for recovery to finish later.

To wait for "postgresql is ready" in other services, we now provide a
postgresql.target.

Resolves #400018

Co-authored-by: Marcel <me@m4rc3l.de>
2025-06-24 15:26:47 +02:00
Wolfgang Walther dfbaabf75c
nixos/immich: assert postgresql is below v17 (#418962) 2025-06-22 16:19:10 +00:00
Wolfgang Walther cb30307559
nixos/immich: assert postgresql is below v17
We recently bumped the default PostgreSQL version to v17 in the NixOS
module. This breaks immich, which still needs PostgreSQL 16.
2025-06-22 17:50:08 +02:00
Wolfgang Walther 62d2b6d593
nixos/immich: fix postgresql.package regression
`config.services.postgresql.package` is now only available when the
PostgreSQL module is actually enabled. If we're not using the local
database, we'll need to fallback to the latest postgresql version, since
we don't know about the remote version.
2025-06-22 14:25:03 +02:00
Nico Felbinger e0d1b49a46
chore: move meta option to top level in many modules 2025-04-19 18:27:48 +02:00
Torsten Trautwein c397110901 nixos/immich: Add accelerationDevices configuration option
This allows immich to utilize devices for hardware accelerated video
transcoding.
2025-02-03 08:03:49 +01:00
Benjamin Saunders fd21ef2a65 nixos/immich: restrict filesystem permissions
immich appears to create this directory with permissions 0755 by
default, which needlessly exposes user data to other processes.
2024-12-10 20:02:17 -08:00
Martin Weinelt 223a6c6ed0
nixos/postgresql: rename extraPlugins to extensions
This is the upstream lingo, and it makes everything slightly less
confusing.
2024-11-16 14:46:16 +01:00
Robert Schütz ee1cffa25c immich: 1.119.1 -> 1.120.1
Changelog: https://github.com/immich-app/immich/releases/tag/v1.120.0
           https://github.com/immich-app/immich/releases/tag/v1.120.1
2024-11-09 14:44:21 -08:00
Robert Schütz 22ffb72803 nixos/immich: generate config file from services.immich.settings 2024-10-29 17:58:50 -07:00
Robert Schütz 376dd27232 nixos/immich: add systemd slice 2024-10-29 16:24:32 -07:00
Robert Schütz 74e0f237ea immich: 1.118.2 -> 1.119.0
Changelog: https://github.com/immich-app/immich/releases/tag/v1.119.0
2024-10-28 13:04:14 -07:00
Matthieu Coudron 5c8ff2e60c
nixos/immich: use 'immich' as syslog identifier (#350551)
use 'immich' as syslog identifier

seeing 'immich' instead of the generic 'server' in journalctl is more understandable
2024-10-24 00:15:19 +02:00
Brendan Taylor 04e39de6eb nixos/immich: do not set services.redis.servers.immich.user
the redis module expects a user and group to exist with this name.
previously if there was no group with the same name as
`services.immich.user` the immich redis server would fail to start.

instead we can use the redis module's default behaviour: it will
create a user & group named "redis-immich".
2024-10-17 07:19:02 -06:00
Robert Schütz e3152f80bf nixos/immich: change default port to 2283
This was always upstream's default but they also change the internal
port, i.e. behind the reverse proxy, to 2283 in
https://github.com/immich-app/immich/pull/13185.
2024-10-16 10:30:34 -07:00
Leona Maroni a23db91282
nixos/immich: add option database.port (#345094) 2024-09-28 18:01:08 +02:00
Brendan Taylor 8debc8df79 nixos/immich: add option database.port 2024-09-26 08:06:59 -06:00
Robert Schütz 7cdda564e0 nixos/immich: override machine-learning with cfg.package
Otherwise they could use different versions:

    nix-repl> (immich.overrideAttrs { version = "0"; }).machine-learning.version
    "1.115.0"
2024-09-24 09:53:24 -07:00
Jan van Brügge cedcd9f4f0
nixos/immich: init module 2024-09-23 22:38:02 +02:00