Immich
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;
environment.IMMICH_MACHINE_LEARNING_URL = "http://localhost:3003";
};
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;
};
};