{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs = { self, nixpkgs }: {
    nixosModules = rec {
      ps4 = import ./nixos;
      default = ps4;
    };
  
    nixosConfigurations = {
      "aeolia" = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ({ pkgs, ... }: { nixpkgs.overlays = [
            (final: super: {
              makeModulesClosure = x:
                super.makeModulesClosure (x // { allowMissing = true; });
            })
          ]; })
          ./nixos
          ./installer.nix
        ];
      };
    };

    usb.aeolia = nixpkgs.legacyPackages.x86_64-linux.stdenvNoCC.mkDerivation {
      name = "nixos-ps4-usb-aeolia";

      # kernel = self.nixosConfigurations.aeolia.config.system.build.kernel;
      # initrd = self.nixosConfigurations.aeolia.config.system.build.initialRamdisk;
      # rootfs = self.nixosConfigurations.aeolia.config.system.build.rootFileSystem;

      img = self.nixosConfigurations.aeolia.config.system.build.usbImage;

      buildCommand = ''
        cp $img $out
      '';

      # dontUnpack = true;
      # installPhase = ''
      #   mkdir -p $out/boot $out/root
      #   cp $kernel/bzImage $out/boot/bzImage
      #   cp $initrd/initrd.gz $out/boot/initramfs.cpio.gz
      #   cp $rootfs $out/root/rootfs.img
      # '';
    };
  };
}