Immich: Difference between revisions
Add under Troubleshooting: note that if Immich on nixos-stable is too old and causes client sync errors, set services.immich.package = pkgs.unstable.immich;. |
|||
| (6 intermediate revisions by 4 users not shown) | |||
| Line 5: | Line 5: | ||
{{file|/etc/nixos/configuration.nix|nix|3=services.immich.enable = true; | {{file|/etc/nixos/configuration.nix|nix|3=services.immich.enable = true; | ||
services.immich.port = 2283;}} | services.immich.port = 2283;}} | ||
To access Immich from other devices via network, add the following as well: | |||
{{file|/etc/nixos/configuration.nix|nix|3=services.immich.host = "0.0.0.0"; | |||
services.immich.openFirewall = true;}} | |||
More options are available: {{nixos:option|services.immich.}} | More options are available: {{nixos:option|services.immich.}} | ||
== Tips and Tricks == | == Tips and Tricks == | ||
=== Custom Media Location === | |||
While the official Immich documentation recommends modifying <code>UPLOAD_LOCATION</code> environmental variable for Docker build, NixOS does not support modifying it. Instead, {{nixos:option|services.immich.mediaLocation}} may be used, which simply sets [https://docs.immich.app/install/environment-variables/ <code>IMMICH_MEDIA_LOCATION</code>] variable, while this is not recommended in the official documentation: | |||
{{file|/etc/nixos/configuration.nix|nix|3=services.immich.mediaLocation = "/var/lib/immich"; | |||
}} | |||
{{warning|If you have used Immich before, changing this option will completely stop Immich service, disabling access from browser. You may need to reset / remove Postgresql database.}} | |||
{{info|If you only need to change the location where raw data is stored, [https://docs.immich.app/guides/external-library/ External Libraries] may be used.}} | |||
=== Enabling Hardware Accelerated Video Transcoding === | === Enabling Hardware Accelerated Video Transcoding === | ||
| Line 44: | Line 58: | ||
Following Immichs [https://immich.app/docs/administration/backup-and-restore/ backup docs] and [https://immich.app/docs/guides/template-backup-script backup script] an automated backup using [[Borg backup]] could look something like this: | Following Immichs [https://immich.app/docs/administration/backup-and-restore/ backup docs] and [https://immich.app/docs/guides/template-backup-script backup script] an automated backup using [[Borg backup]] could look something like this: | ||
{{File|3=services.borgbackup.jobs."Immich" = { | {{File|3=services.borgbackup.jobs."Immich" = { | ||
paths = | paths = config.services.immich.mediaLocation; | ||
repo = "<path-to-borg-repo>"; | repo = "<path-to-borg-repo>"; | ||
startAt = "Sat 04:00"; | startAt = "Sat 04:00"; | ||
| Line 70: | Line 84: | ||
Jul 01 14:23:12 server2 immich[178592]: line: '477', | Jul 01 14:23:12 server2 immich[178592]: line: '477', | ||
Jul 01 14:23:12 server2 immich[178592]: routine: 'CheckMyDatabase' | Jul 01 14:23:12 server2 immich[178592]: routine: 'CheckMyDatabase' | ||
Jul 01 14:23:12 server2 immich[178592]: }</syntaxhighlight>To fix this, run <code>sudo -u immich psql -d immich</code> and execute these | Jul 01 14:23:12 server2 immich[178592]: }</syntaxhighlight>To fix this, run <code>sudo -u immich psql -d immich</code> and execute these two commands:<syntaxhighlight lang="sql" line="1"> | ||
ALTER DATABASE immich REFRESH COLLATION VERSION; | ALTER DATABASE immich REFRESH COLLATION VERSION; | ||
REINDEX DATABASE immich; | REINDEX DATABASE immich; | ||
| Line 78: | Line 92: | ||
If you still run into issues after restarting postgresql and immich-server services, some additional postgresql database changes might be necessary to [https://web.archive.org/web/20240910231531/https://docs.pgvecto.rs/admin/upgrading.html#upgrading upgrade pgvecto.rs table]: | If you still run into issues after restarting postgresql and immich-server services, some additional postgresql database changes might be necessary to [https://web.archive.org/web/20240910231531/https://docs.pgvecto.rs/admin/upgrading.html#upgrading upgrade pgvecto.rs table]: | ||
Run <code>sudo -u | Run <code>sudo -u postgres psql</code> and execute consecutively:<syntaxhighlight lang="sql" line="1"> | ||
CREATE EXTENSION IF NOT EXISTS unaccent; | CREATE EXTENSION IF NOT EXISTS unaccent; | ||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; | CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; | ||