Configuration

Your system flake

After installation, Jester Linux manages your system through a Nix flake at /etc/nixos/flake.nix. This file is the single source of truth for your entire system - packages, services, users, and settings all flow from here.

You don’t need to touch it to have a working system. Updates and maintenance are handled automatically in the background. But if you want to go further, this is where you do it.

Adding your own modules

You can extend your system by adding NixOS modules directly inside /etc/nixos/flake.nix. For example, to install an extra package or enable a service:

{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

  outputs = { nixpkgs, ... }: {
    nixosConfigurations.your-hostname = nixpkgs.lib.nixosSystem {
      modules = [
        ./hardware-configuration.nix
        # Add your own modules here:
        ({ pkgs, ... }: {
          environment.systemPackages = [ pkgs.htop ];
        })
      ];
    };
  };
}

Any change you save here will be picked up automatically - no manual intervention needed.

Using Jester Linux modules

The zuzeos flake exposes reusable NixOS modules you can pull into your own config:

{
  inputs.zuzeos.url = "git+https://codeberg.org/jester-linux/config";

  outputs = { nixpkgs, zuzeos, ... }: {
    nixosConfigurations.your-hostname = nixpkgs.lib.nixosSystem {
      modules = [
        zuzeos.nixosModules.wazuh
        ({ ... }: { services.wazuh.enable = true; })
      ];
    };
  };
}

Keeping inputs up to date

Jester Linux pins all its inputs in flake.lock for reproducibility. The auto-upgrade service keeps them current automatically. If you’ve added your own inputs and want to update them on demand:

sudo nix flake lock --update-input my-input /etc/nixos