Immich: Difference between revisions

From NixOS Wiki
Ralith (talk | contribs)
Add nginx reverse proxy example
Onny (talk | contribs)
Cleanup config
 
Line 5: Line 5:
The following example configuration will enable Immich locally.
The following example configuration will enable Immich locally.


{{file|/etc/nixos/configuration.nix|nix|3=services.immich = {
{{file|/etc/nixos/configuration.nix|nix|3=services.immich.enable = true;
  enable = true;
  environment.IMMICH_MACHINE_LEARNING_URL = "http://localhost:3003";
};
}}To see more options, visit the [https://search.nixos.org/options?channel=unstable&query=services.immich Immich module's options page].
}}To see more options, visit the [https://search.nixos.org/options?channel=unstable&query=services.immich Immich module's options page].



Latest revision as of 12:46, 9 December 2024

Immich is an open source photo and video management solution, designed to provide a self-hosted alternative for managing and backing up photos and videos, with a focus on privacy and ease of use.

Setup

The following example configuration will enable Immich locally.

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

To see more options, visit the Immich module's options page.

After applying the above configuration you will be able to access Immich at http://localhost:2283.

Hardware Accelerated Transcoding using VA-API

Before anything else, make sure you have configured hardware acceleration on your system as described in Accelerated Video Playback.

To make use of hardware accelerated video transcoding using VA-API, add your Immich user to the render and video groups.

If you are using the default immich user, you can use the following snippet to enable VA-API support.

/etc/nixos/configuration.nix
users.users.immich.extraGroups = [ "video" "render" ];

Reverse Proxy

A typical nginx configuration to multiplex Immich with other web services might look like:

/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;
  };
};