{ lib, config, ... }:
with lib;
let
  cfg = config.nas-apps.manyfold;
in
{
  imports = [ ./options.nix ];

  config = mkIf cfg.enable {
    virtualisation.oci-containers.containers."${cfg.name}" = {
      autoStart = cfg.autoStart;
      image = cfg.image;
      ports = [ "${cfg.httpPort}:3214" ];
      extraOptions = [
        "--cap-drop=ALL"
        "--cap-add=CHOWN"
        "--cap-add=DAC_OVERRIDE"
        "--cap-add=SETUID"
        "--cap-add=SETGID"
        "--security-opt=no-new-privileges:true"
      ];
      volumes = [
        "${cfg.configPath}:/config"
        "${cfg.dataPath}:/libraries"
      ];
      environment = {
        PUID = cfg.puid;
        PGID = cfg.pgid;
        TZ = cfg.timeZone;
      };
      environmentFiles = [ config.sops.secrets."jallen-nas/manyfold/secretkeybase".path ];
    };
  };
}
