config/modules/services/photoprism/default.nix

35 lines
838 B
Nix

{ config, lib, ... }:
let
cfg = config.mj.services.photoprism;
in
{
options.mj.services.photoprism = with lib.types; {
enable = lib.mkEnableOption "enable photoprism";
uidgid = lib.mkOption { type = int; };
paths = lib.mkOption { type = attrsOf str; };
passwordFile = lib.mkOption { type = str; };
};
config = lib.mkIf cfg.enable {
services.photoprism = {
enable = true;
originalsPath = "/data";
passwordFile = cfg.passwordFile;
};
systemd.services.photoprism.serviceConfig = {
ProtectHome = lib.mkForce "tmpfs";
BindPaths = lib.mapAttrsToList (name: srcpath: "${srcpath}:/data/${name}") cfg.paths;
};
users = {
groups.photoprism.gid = cfg.uidgid;
users.photoprism = {
group = "photoprism";
uid = cfg.uidgid;
};
};
};
}