{
  utils,
  lib,
  config,
  ...
}: {
  options.blog.enable = lib.mkEnableOption "blog";

  config = lib.mkIf config.blog.enable {
    kubernetes.resources = {
      deployments.blog.spec = {
        replicas = 3;
        selector.matchLabels.app = "blog";

        template = {
          metadata.labels.app = "blog";

          spec = {
            containers.blog = {
              image = utils.mkNixNGImage "blog";
              ports.web.containerPort = 80;
            };
          };
        };
      };

      services.blog.spec = {
        selector.app = "blog";

        ports.web = {
          port = 80;
          targetPort = "web";
        };
      };
    };

    lab.ingresses.blog = {
      host = "pim.kun.is";

      service = {
        name = "blog";
        portName = "web";
      };
    };
  };
}