GuidesAdvanced installation

Advanced installation

This guide is intended for users who’d like to install Determinate on these platforms:

💡

For instructions on installing Determinate on a fleet of machines using Mobile Device Management (MDM), see our dedicated MDM guide.

Install on NixOS

If you’re a NixOS user, you can set up Determinate using the nixosModules.default module output from the determinate flake. Here’s an example NixOS configuration:

flake.nix
{
  inputs.determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
  inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0";
 
  outputs = { determinate, nixpkgs, ... }: {
    nixosConfigurations.my-workstation = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        # Load the Determinate module
        determinate.nixosModules.default
      ];
    };
  };
}

Then pass two extra flags when you run nixos-rebuild for the initial configuration switchover:

sudo nixos-rebuild \
  --option extra-substituters https://install.determinate.systems \
  --option extra-trusted-public-keys cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM= \
  --flake ... \
  switch

These flags configure Nix to use install.determinate.systems as an additional binary cache for Nix so that you don’t have to build Determinate Nix yourself.

If you’re using a version of Determinate Nix older than version 3.6.0, you can pass --option extra-substituters https://install.determinate.systems to upgrade to v3.6.0 or after without building. Once you’re on Determinate Nix version 3.6.0 or later, however, you don’t need to configure any extra substituters to upgrade.