{
  config,
  lib,
  pkgs,
  ...
}: {
  config = {
    pub-solar.core.disk-encryption-active = false;

    fileSystems = {
      "/" = {
        device = "/dev/disk/by-label/NIXOS_SD";
        fsType = "ext4";
        options = ["noatime"];
      };
    };

    networking.hostName = "paperless";

    services.openssh = {
      enable = true;
      openFirewall = true;
      allowSFTP = true;
    };

    boot.kernelParams = [
	    "boot.shell_on_fail=1"
    ];

    # Would decrease closure size, but currenly broken (cairo)
    #environment.noXlibs = true;

    nix = {
      gc.automatic = true;

      optimise.automatic = true;

      settings = {
        auto-optimise-store = true;
        sandbox = true;
        allowed-users = ["@wheel"];
        trusted-users = ["root" "@wheel"];
      };

      extraOptions = ''
        min-free = 536870912
        keep-outputs = true
        keep-derivations = true
        fallback = true
      '';
    };

    # custom raspi boot loader is already present
    boot.loader.systemd-boot.enable = false;
    boot.loader.grub.enable = false;
    boot.loader.generic-extlinux-compatible.enable = true;
    boot.kernelPackages = pkgs.linuxPackages_6_6;

    nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";

    # This value determines the NixOS release from which the default
    # settings for stateful data, like file locations and database versions
    # on your system were taken. It‘s perfectly fine and recommended to leave
    # this value at the release version of the first install of this system.
    # Before changing this value read the documentation for this option
    # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
    system.stateVersion = "23.11"; # Did you read the comment?
  };
}