Profiles allow you to organize different variations of your development environment. You can define them in your devenv.nix file using the profiles option. Profiles can be activated manually via the CLI or automatically based on system environment (hostname or username).
To activate a single profile:
devenv --profile <profile_name> shell
To activate multiple profiles:
devenv --profile <profile_1> --profile <profile_2> shell
{ pkgs, config, ... }: {
profiles = {
backend.module = {
services.postgres.enable = true;
services.redis.enable = true;
env.ENVIRONMENT = "backend";
};
frontend.module = {
languages.javascript.enable = true;
processes.dev-server.exec = "npm run dev";
env.ENVIRONMENT = "frontend";
};
testing.module = { pkgs, ... }: {
packages = [ pkgs.playwright pkgs.cypress ];
env.NODE_ENV = "test";
};
};
}