{inputs, ...}: { flake.nixosModules.wordle-solver = { config, lib, pkgs, ... }: let cfg = config.hive.wordle-solver; in { options.hive.wordle-solver = { enable = lib.mkEnableOption "Enable wordle-solver site"; instanceFQDN = lib.mkOption { type = lib.types.singleLineStr; example = "wordle-solver.example.com"; description = "Fully qualified domain name of the wordle-solver host"; }; }; config = lib.mkIf cfg.enable { # Fallback server with only 403 services.nginx.virtualHosts.${config.networking.domain} = lib.mkDefault { default = true; locations."/".return = 403; forceSSL = true; enableACME = true; }; # Virtual host for wordle-solver services.nginx.virtualHosts."${cfg.instanceFQDN}" = { forceSSL = true; enableACME = true; root = "${inputs.wordle-solver.packages.${pkgs.system}.wordle-solver-web}/"; }; }; }; }