{
  lib,
  pkgs,
  config,
  ...
}: let
  cfg = config.auxolotl.services.website;
in {
  options.auxolotl.services.website = {
    enable = lib.mkEnableOption "Auxolotl website";

    domain = lib.mkOption {
      type = lib.types.str;
      default = "auxolotl.org";
      description = "The domain name for the website.";
    };

    package = lib.mkOption {
      type = lib.types.package;
      default = pkgs.auxolotl.website;
      defaultText = "pkgs.aux.website";
      description = "The website files to serve.";
    };
  };

  config = lib.mkIf cfg.enable {
    services.nginx = {
      enable = true;

      virtualHosts."${cfg.domain}" = {
        forceSSL = true;
        enableACME = true;

        locations = {
          "/" = {
            root = cfg.package;
          };
        };
      };
    };
  };
}
