Immich: Difference between revisions

From NixOS Wiki
I was unable to upload videos to Immich. Turned out that nginx was refusing upload of large files. So I took instructions from https://v1.122.2.archive.immich.app/docs/administration/reverse-proxy#nginx-example-config and added some missing config for nginx.
Dander (talk | contribs)
m update option link
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;}}
[https://search.nixos.org/options?channel=unstable&query=services.immich More options] are available.
[https://search.nixos.org/options?show=services.immich. More options] are available.


== Tips and Tricks ==
== Tips and Tricks ==

Revision as of 23:45, 3 January 2025

Immich is a self-hosted photo and video management solution.

Installation

To install Immich, add the following to your NixOS configuration:

/etc/nixos/configuration.nix
services.immich.enable = true;
services.immich.port = 2283;

More options are available.

Tips and Tricks

Enabling Hardware Accelerated Video Transcoding

Add the Immich user to the render and video groups, and enable Accelerated Video Playback on your system:

/etc/nixos/configuration.nix
hardware.graphics = { 
 # ...
 # See: https://wiki.nixos.org/wiki/Accelerated_Video_Playback
};
users.users.immich.extraGroups = [ "video" "render" ];

Using Immich behind Nginx

This is a typical Nginx configuration for Immich:

/etc/nixos/configuration.nix
services.nginx.virtualHosts."immich.example.com" = {
  enableACME = true;
  forceSSL = true;
  locations."/" = {
    proxyPass = "http://[::1]:${toString config.services.immich.port}";
    proxyWebsockets = true;
    recommendedProxySettings = true;
    extraConfig = ''
      client_max_body_size 50000M;
      proxy_read_timeout   600s;
      proxy_send_timeout   600s;
      send_timeout         600s;
    '';
  };
};