aboutsummaryrefslogtreecommitdiff
path: root/modules/storage/immich.nix
blob: 2f3e4f100733e4c051ccd18f671a3f228fda7ac8 (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
42
43
44
45
46
47
{ settings, ... }:
let
  ports = settings.network.ports;
in
{
  systemd.tmpfiles.rules = [
    "d ${settings.immich.baseDir} 0770 ${settings.immich.user} ${settings.immich.group} - -"
  ];

  services.immich = {
    enable = true;
    host = "0.0.0.0";
    port = ports.immich;
    group = settings.immich.group;
    user = settings.immich.user;
    openFirewall = true;
    mediaLocation = settings.immich.baseDir;
    machine-learning.enable = false;
    settings = {
      library.watch.enabled = true;
      library.scan = {
        enabled = true;
        cron = "0 */5 * * *";
      };
      trash = {
        enabled = true;
        days = 15;
      };
      backup.database = {
        enabled = false;
        cronExpression = "0 02 * * *";
      };
      server.externalDomain = "http://photos.local";
      passwordLogin.enabled = true;
      newVersionCheck.enabled = false;
      map.enabled = false;
      machineLearning.enabled = false;
    };
  };

  users.users.bacchus.extraGroups = [ settings.immich.group ];
  users.users.${settings.immich.user}.extraGroups = [
    settings.immich.group
    settings.syncthing.group
    settings.media.group
  ];
}