{
  inputs,
  pkgs,
  config,
  ...
}: {
  imports = [
    inputs.arion.nixosModules.arion
    ./dns
    ./infrastructure
    ./nextcloud
    ./push
    ./git
    ./passwords
    ./media
    ./dashboard
    ./smarthome
    ./signal
    ./feed
    # ./matrix
    ./headscale
    ./auth
    ./minio
    ./stats
    ./wiki
  ];

  environment.systemPackages = with pkgs; [arion];

  virtualisation.arion.backend = "docker";

  systemd.services.init-dmz-bridge-network = {
    description = "Create the network bridge dmz for the Docker stack.";
    after = ["network.target"];
    wantedBy = ["multi-user.target"];

    serviceConfig.Type = "oneshot";
    script = let
      dockercli = "${config.virtualisation.docker.package}/bin/docker";
    in ''
      # Put a true at the end to prevent getting non-zero return code, which will
      # crash the whole service.
      check=$(${dockercli} network ls | grep "dmz" || true)
      if [ -z "$check" ]; then
        ${dockercli} network create dmz
      else
        echo "dmz already exists in docker"
      fi
    '';
  };
}