{
  config,
  options,
  lib,
  ...
}:
with lib; let
  # get a list of interfaces
  interfaces = attrNames config.networking.interfaces;
  # check if an IP has been assigned
  has_ip = interface: (length config.networking.interfaces."${interface}".ipv4.addresses) != 0;
in {
  config = {
    skynet.lxc = false;

    assertions = [
      {
        assertion = lists.any has_ip interfaces;
        message = "Must have a ip address set";
      }
      {
        assertion = config.networking.hostName != "nixos";
        message = "Must have networking.hostName set";
      }
    ];
  };
}