{
  options,
  config,
  lib,
  pkgs,
  ...
}:

with lib;
with lib.metacfg;
let
  cfg = config.metacfg.podman;
in
{
  options.metacfg.podman = with types; {
    enable = mkBoolOpt false "Whether or not to enable podman.";
  };

  config = mkIf cfg.enable {
    virtualisation = {
      podman = {
        enable = true;

        # Create a `docker` alias for podman, to use it as a drop-in replacement
        dockerCompat = lib.mkDefault true;

        # For Nixos version > 22.11
        defaultNetwork.settings = {
          dns_enabled = true;
        };
      };
    };
  };
}