{ config, lib, ... }:
with lib;
let
  cfg = config.eboskma.nginx-proxy-manager;
in
{
  options.eboskma.nginx-proxy-manager = {
    enable = mkEnableOption "Nginx Proxy Manager";
  };

  config = mkIf cfg.enable {
    virtualisation.docker = {
      enable = true;
      autoPrune = {
        enable = true;
        dates = "weekly";
      };
    };

    virtualisation.oci-containers.containers = {
      nginx-proxy-manager = {
        autoStart = true;
        image = "jc21/nginx-proxy-manager:latest";
        ports = [
          "80:80"
          "81:81"
          "443:443"
          "2222:2222"
          "8443:8443"
        ];
        volumes = [
          "/var/lib/npm/data:/data"
          "letsencrypt:/etc/letsencrypt"
        ];
      };
    };
    users.users.${config.eboskma.var.mainUser}.extraGroups = [ "docker" ];
  };
}