35 lines
838 B
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;
|
|
};
|
|
};
|
|
};
|
|
|
|
}
|