Skip to content

Getting Started

Here are the minimum steps to get started.

Installation

a) Install Nix

sh <(curl -L https://nixos.org/nix/install) --daemon
sh <(curl -L https://nixos.org/nix/install)
sh <(curl -L https://nixos.org/nix/install) --no-daemon
docker run -it nixos/nix

b) Install Cachix (recommended, speeds up the installation by providing binaries)

nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use devenv
nix profile install nixpkgs#cachix
cachix use devenv

c) Install devenv

Note

To update devenv, rerun the installation commands below.

If you get errors that devenv already exists, run nix profile list and nix profile remove <number> beforehand.

nix-env -if https://github.com/cachix/devenv/tarball/latest
nix profile install --accept-flake-config github:cachix/devenv/latest 
configuration.nix
environment.systemPackages = [ 
  (import (fetchTarball https://github.com/cachix/devenv/archive/v0.6.2.tar.gz)).default
];
flake.nix
 {
    inputs.devenv.url = "github:cachix/devenv/latest";

    outputs = { devenv, ... }: {
        packages.x86_64-linux = [devenv.packages.x86_64-linux.devenv];
    };
}

Initial set up

Given a Git repository, create the initial structure:

$ devenv init
Creating .envrc
Creating devenv.nix
Creating devenv.yaml
Appending .devenv* to .gitignore
Done.

Commands

  • devenv ci builds your developer environment and makes sure that all checks pass. Useful to run in your continuous integration environment.
  • devenv shell activates your developer environment.
  • devenv search NAME searches packages matching NAME in Nixpkgs input.
  • devenv update updates and pins inputs from devenv.yaml into devenv.lock.
  • devenv gc deletes unused environments to save disk space.
  • devenv up starts processes.

Learn more