summaryrefslogtreecommitdiff
path: root/immich.nix
blob: 8bd021ff9d775a5541db50a68144eec9fdc2f06e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{ config, ... }:
let
  storageDir = "/media/draupner/immich-media";
in
{
  services.immich = {
    enable = true;
    mediaLocation = storageDir;
    accelerationDevices = [ "/dev/dri/renderD128" ];
    database = {
      enableVectors = false;
      enableVectorChord = true;
    };
    # settings.server.externalDomain = "immich.0m.nu";
  };

  systemd.tmpfiles.rules = [ "d ${storageDir} 750 immich immich" ];

  services.nginx = {
    enable = true;
    virtualHosts."immich.oden.m" = {
      extraConfig = ''
        client_max_body_size 50000M;
        proxy_read_timeout 600s;
        proxy_send_timeout 600s;
        send_timeout       600s;
      '';
      locations."/" = {
        proxyPass = "http://localhost:${toString config.services.immich.port}";
        proxyWebsockets = true;
      };
      listen = [ {
        addr = "10.69.0.1";
        port = 80;
      } ];
    };
  };
  networking.firewall.allowedTCPPorts = [ 80 ];

  # services.immich-public-proxy = { };
}