{
  lib,
  config,
  flake-inputs,
  pkgs,
  ...
}:
let
  domain = "foundryvtt.${config.services.nginx.domain}";
in
{
  imports = [ flake-inputs.foundryvtt.nixosModules.foundryvtt ];

  services.foundryvtt = {
    enable = true;
    hostName = domain;
    minifyStaticFiles = true;
    proxySSL = true;
    proxyPort = 443;
    package = flake-inputs.foundryvtt.packages.${pkgs.system}.foundryvtt_11;
  };

  # Want to start it manually when I need it, not have it constantly
  # running
  systemd.services.foundryvtt.wantedBy = lib.mkForce [ ];

  services.nginx.virtualHosts."${domain}" =
    let
      inherit (config.services.foundryvtt) port;
    in
    {
      forceSSL = true;
      useACMEHost = "tlater.net";
      enableHSTS = true;

      locations."/" = {
        proxyWebsockets = true;
        proxyPass = "http://localhost:${toString port}";
      };
    };

  services.backups.foundryvtt = {
    user = "foundryvtt";
    paths = [ config.services.foundryvtt.dataDir ];
    pauseServices = [ "foundryvtt.service" ];
  };
}