{
  description = "System configuration for zion";

  inputs = {
    nixpkgs.url = "nixpkgs/nixos-unstable";
    agenix = {
      url = "github:ryantm/agenix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nixos-hardware.url = "github:NixOS/nixos-hardware";
    nix-matrix-appservices = {
      url = "gitlab:coffeetables/nix-matrix-appservices";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, agenix, nixos-hardware, nix-matrix-appservices, ...
    }@inputs:
    let
      system = "aarch64-linux";

      pkgs = import pkgs { inherit system; };

      lib = nixpkgs.lib;

    in {
      nixosConfigurations.zion = lib.nixosSystem {
        inherit system;
        modules = [
          (import ./configuration.nix)
          agenix.nixosModules.age
          nixos-hardware.nixosModules.raspberry-pi-4
          nix-matrix-appservices.nixosModule
        ];
        specialArgs = { inherit inputs; };
      };

    };
}