Skip to content

Setting up a Development System

We recommend a set of Nix settings on your development system to ease development with Cyberus Linux. The most important step is enabling the Cyberus Linux binary cache to avoid spending a lot of time compiling software that our internal CI has already built.

Everywhere: Per-Project Setup

As mentioned in First Steps, our binary cache can be enabled on a per-project basis. This avoids touching global configuration and is a great way to try things out.

To enable our cache, add the following Nix configuration to your flake.nix:

nixConfig = {
  extra-substituters = [ "https://cache.cyberus-linux.com" ];
  extra-trusted-public-keys = [ "ctrl-os:baPzGxj33zp/P+GAIJXsr8ss9Law+qEEFViX1+flbv8=" ];
};

If you instead want a system-wide setting, read on.

On NixOS: Using the Cyberus Linux Developer Module

If your development system runs NixOS, you can use our cyberus-linux.profiles module set it up for Cyberus Linux development. If you run NixOS, we trust you already know how to use modules. For a reference of the module, check its documentation.

Info

The best NixOS version for your development system is the latest NixOS release (or unstable if you dare). Cyberus Linux is not meant to be used for desktop systems for now!

On a Flakes system, add github:cyberus-linux/cyberus-linux-modules as a flake input. You can then find the module as cyberus-linux-modules.nixosModules.profiles.

Without Flakes, you can just import the module directly in your NixOS configuration:

imports = let
  cyberus-linux-modules-src = builtins.fetchTarball {
    url = "https://github.com/cyberus-linux/cyberus-linux-modules/archive/refs/heads/main.zip";
  };

  modules = import "${cyberus-linux-modules-src}/modules";
in [ modules.profiles ];

Once you have imported the module, you have to enable it in your configuration:

cyberus-linux.profiles.developer.enable = true;

Once you have rebuilt your system, Nix uses our binary cache.

Other Systems: Configuring the Binary Cache Manually

To configure the binary cache, add it as one of the substituters and add the corresponding public key in your nix.conf. On Linux, nix.conf is typically located in your home directory in .config/nix/nix.conf.

Add the end, add:

extra-substituters = https://cache.cyberus-linux.com/
extra-trusted-public-keys = ctrl-os:baPzGxj33zp/P+GAIJXsr8ss9Law+qEEFViX1+flbv8=

After editing nix.conf, you are ready to go.