diff --git a/nixos/modules/hardware/facter/default.nix b/nixos/modules/hardware/facter/default.nix
new file mode 100644
index 000000000000..0d3163185b98
--- /dev/null
+++ b/nixos/modules/hardware/facter/default.nix
@@ -0,0 +1,40 @@
+{
+ lib,
+ config,
+ ...
+}:
+{
+ meta.maintainers = with lib.maintainers; [ mic92 ];
+
+ options.hardware.facter = with lib; {
+ report = mkOption {
+ type = types.attrsOf types.anything;
+ default =
+ if config.hardware.facter.reportPath == null then
+ { }
+ else
+ builtins.fromJSON (builtins.readFile config.hardware.facter.reportPath);
+ defaultText = "A JSON import from config.hardware.facter.reportPath (if not null), {} otherwise.";
+ description = ''
+ Hardware report data generated by nixos-facter.
+
+ See for more information.
+ '';
+ };
+
+ reportPath = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to a hardware report generated by nixos-facter.
+
+ To generate a report, run the following as root:
+ ```
+ nix-shell -p nixos-facter --run nixos-facter > facter.json
+ ```
+
+ See for more information.
+ '';
+ };
+ };
+}
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 5b285ee24580..45351dd2b145 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -66,6 +66,7 @@
./hardware/decklink.nix
./hardware/device-tree.nix
./hardware/digitalbitbox.nix
+ ./hardware/facter
./hardware/flipperzero.nix
./hardware/flirc.nix
./hardware/fw-fanctrl.nix