devenv
devenv
provides a devShell with many options, and container packages.
See also the setup guide at devenv.sh.
Installation
To use these options, add to your flake inputs:
devenv.url = "github:cachix/devenv";
and inside the mkFlake
:
imports = [
inputs.devenv.flakeModule
];
Run nix flake lock
and you're set.
Options
perSystem.devenv.modules
Extra modules to import into every shell. Allows flakeModules to add options to devenv for example.
Type: list of module
Default:
[ ]
Declared by:
perSystem.devenv.shells
The devenv.sh settings, per shell.
Each definition devenv.shells.<name>
results in a value for
devShells.<name>
.
Define devenv.shells.default
for the default nix develop
invocation - without an argument.
Type: lazy attribute set of (submodule)
Default:
{ }
Example:
{
# create devShells.default
default = {
# devenv settings, e.g.
languages.elm.enable = true;
};
}
Declared by:
perSystem.devenv.shells.<name>.packages
A list of packages to expose inside the developer environment. Search available packages using devenv search NAME
.
Type: list of package
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.android.enable
Whether to enable tools for Android Development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.android.abis
The Android ABIs to install. By default, the arm64-v8a and x86_64 ABIs are installed.
Type: list of string
Default:
[
"arm64-v8a"
"x86_64"
]
Declared by:
perSystem.devenv.shells.<name>.android.android-studio.enable
Whether to enable the installation of Android Studio.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.android.android-studio.package
The Android Studio package to use. By default, the Android Studio package from nixpkgs is used.
Type: package
Default:
pkgs.android-studio
Declared by:
perSystem.devenv.shells.<name>.android.buildTools.version
The version of the Android build tools to install. By default, version 30.0.3 is installed or [ “33.0.2” “30.0.3” ] if flutter is enabled.
Type: list of string
Default:
[
"34.0.0"
]
Declared by:
perSystem.devenv.shells.<name>.android.cmake.version
The CMake versions to install for Android. By default, version 3.22.1 is installed.
Type: list of string
Default:
[
"3.22.1"
]
Declared by:
perSystem.devenv.shells.<name>.android.cmdLineTools.version
The version of the Android command line tools to install. By default, version 11.0 is installed or 8.0 if flutter is enabled.
Type: string
Default:
"11.0"
Declared by:
perSystem.devenv.shells.<name>.android.emulator.enable
Whether to include the Android Emulator. By default, the emulator is included.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.android.emulator.version
The version of the Android Emulator to install. By default, version 34.1.9 is installed.
Type: string
Default:
"34.1.9"
Declared by:
perSystem.devenv.shells.<name>.android.extraLicenses
The additional Android licenses to accept. By default, several standard licenses are accepted.
Type: list of string
Default:
[
"android-sdk-preview-license"
"android-googletv-license"
"android-sdk-arm-dbt-license"
"google-gdk-license"
"intel-android-extra-license"
"intel-android-sysimage-license"
"mips-android-sysimage-license"
]
Declared by:
perSystem.devenv.shells.<name>.android.extras
The Android extras to install. By default, the Google Cloud Messaging (GCM) extra is installed.
Type: list of string
Default:
[
"extras;google;gcm"
]
Declared by:
perSystem.devenv.shells.<name>.android.flutter.enable
Whether to include the Flutter tools.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.android.flutter.package
The Flutter package to use. By default, the Flutter package from nixpkgs is used.
Type: package
Default:
pkgs.flutter
Declared by:
perSystem.devenv.shells.<name>.android.googleAPIs.enable
Whether to use the Google APIs. By default, the Google APIs are used.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.android.googleTVAddOns.enable
Whether to use the Google TV Add-Ons. By default, the Google TV Add-Ons are used.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.android.ndk.enable
Whether to include the Android NDK (Native Development Kit). By default, the NDK is included.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.android.ndk.version
The version of the Android NDK (Native Development Kit) to install. By default, version 26.1.10909125 is installed.
Type: list of string
Default:
[
"26.1.10909125"
]
Declared by:
perSystem.devenv.shells.<name>.android.platformTools.version
The version of the Android platform tools to install. By default, version 34.0.5 is installed or 34.0.5 if flutter is enabled.
Type: string
Default:
"34.0.5"
Declared by:
perSystem.devenv.shells.<name>.android.platforms.version
The Android platform versions to install. By default, versions 32 and 34 are installed.
Type: list of string
Default:
[
"32"
"34"
]
Declared by:
perSystem.devenv.shells.<name>.android.reactNative.enable
Whether to include the React Native tools.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.android.sources.enable
Whether to include the Android sources. By default, the sources are not included.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.android.systemImageTypes
The Android system image types to install. By default, the google_apis_playstore system image is installed.
Type: list of string
Default:
[
"google_apis_playstore"
]
Declared by:
perSystem.devenv.shells.<name>.android.systemImages.enable
Whether to include the Android system images. By default, the system images are included.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.android.tools.version
The version of the Android SDK tools to install. By default, version 26.1.1 is installed.
Type: string
Default:
"26.1.1"
Declared by:
perSystem.devenv.shells.<name>.aws-vault.enable
Whether to enable aws-vault integration.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.aws-vault.package
The aws-vault package to use.
Type: package
Default:
pkgs.aws-vault
Declared by:
perSystem.devenv.shells.<name>.aws-vault.awscliWrapper
Attribute set of packages including awscli2
Type: submodule
Default:
pkgs
Declared by:
perSystem.devenv.shells.<name>.aws-vault.awscliWrapper.enable
Whether to enable Wraps awscli2 binary as aws-vault exec <profile> -- aws <args>
.
.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.aws-vault.awscliWrapper.package
The awscli2 package to use.
Type: package
Default:
pkgs.awscli2
Declared by:
perSystem.devenv.shells.<name>.aws-vault.opentofuWrapper
Attribute set of packages including opentofu
Type: submodule
Default:
pkgs
Declared by:
perSystem.devenv.shells.<name>.aws-vault.opentofuWrapper.enable
Whether to enable Wraps opentofu binary as aws-vault exec <profile> -- opentofu <args>
.
.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.aws-vault.opentofuWrapper.package
The opentofu package to use.
Type: package
Default:
pkgs.opentofu
Declared by:
perSystem.devenv.shells.<name>.aws-vault.profile
The profile name passed to aws-vault exec
.
Type: string
Declared by:
perSystem.devenv.shells.<name>.aws-vault.terraformWrapper
Attribute set of packages including terraform
Type: submodule
Default:
pkgs
Declared by:
perSystem.devenv.shells.<name>.aws-vault.terraformWrapper.enable
Whether to enable Wraps terraform binary as aws-vault exec <profile> -- terraform <args>
.
.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.aws-vault.terraformWrapper.package
The terraform package to use.
Type: package
Default:
pkgs.terraform
Declared by:
perSystem.devenv.shells.<name>.cachix.enable
Whether to enable Cachix integration.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.cachix.package
The cachix package to use.
Type: package
Default:
pkgs.cachix
Example:
inputs.devenv.inputs.cachix.packages.${pkgs.stdenv.system}.cachix
Declared by:
perSystem.devenv.shells.<name>.cachix.pull
Which Cachix caches to pull from.
Type: list of string
Default:
[ "devenv" ]
Declared by:
perSystem.devenv.shells.<name>.cachix.push
Which Cachix cache to push to. This cache is also added to cachix.pull
.
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.certificates
List of domains to generate certificates for.
Type: list of string
Default:
[ ]
Example:
[
"example.com"
"*.example.com"
]
Declared by:
perSystem.devenv.shells.<name>.container.isBuilding
Set to true when the environment is building a container.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.containers
Container specifications that can be built, copied and ran using devenv container
.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.enableLayerDeduplication
Whether to enable layer deduplication using the approach described at https://blog.eigenvalue.net/2023-nix2container-everything-once/ .
Type: boolean
Default:
true
Example:
true
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.copyToRoot
Add a path to the container. Defaults to the whole git repo.
Type: path or list of path
Default:
self
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.defaultCopyArgs
Default arguments to pass to skopeo copy
.
You can override them by passing arguments to the script.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.entrypoint
Entrypoint of the container.
Type: list of anything
Default:
[ entrypoint ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.isBuilding
Set to true when the environment is building this container.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers
The layers to create.
Type: list of (submodule)
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.copyToRoot
A list of derivations copied to the image root directory.
Store path prefixes /nix/store/hash-path
are removed in order to relocate them to the image /
.
Type: list of package
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.deps
A list of store paths to include in the layer.
Type: list of package
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.ignore
A store path to ignore when building the layer. This is mainly useful to ignore the configuration file from the container layer.
Type: null or path in the Nix store
Default:
null
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.maxLayers
The maximum number of layers to create.
Type: signed integer
Default:
1
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms
A list of file permissions which are set when the tar layer is created.
These permissions are not written to the Nix store.
Type: list of (submodule)
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.gid
The group ID to apply to all of the files matched by the regex
.
Type: null or signed integer
Default:
null
Example:
"1000"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.gname
The group name to apply to all of the files matched by the regex
.
Type: null or string
Default:
null
Example:
"root"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.mode
The numeric permissions mode to apply to all of the files matched by the regex
.
Type: null or string
Default:
null
Example:
"644"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.path
A store path.
Type: path in the Nix store
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.regex
A regex pattern to select files or directories to apply the mode
to.
Type: null or string
Default:
null
Example:
".*"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.uid
The user ID to apply to all of the files matched by the regex
.
Type: null or signed integer
Default:
null
Example:
"1000"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.perms.*.uname
The user name to apply to all of the files matched by the regex
.
Type: null or string
Default:
null
Example:
"root"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.layers.*.reproducible
Whether the layer should be reproducible.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.maxLayers
Maximum number of container layers created.
Type: null or signed integer
Default:
1
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.name
Name of the container.
Type: null or string
Default:
"top-level name or containers.mycontainer.name"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.registry
Registry to push the container to.
Type: null or string
Default:
"docker-daemon:"
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.startupCommand
Command to run in the container.
Type: null or string or package
Default:
null
Declared by:
perSystem.devenv.shells.<name>.containers.<name>.version
Version/tag of the container.
Type: null or string
Default:
"latest"
Declared by:
perSystem.devenv.shells.<name>.delta.enable
Integrate delta into git: https://dandavison.github.io/delta/.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.devcontainer.enable
Whether to enable generation .devcontainer.json for devenv integration.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.devcontainer.settings
Devcontainer settings.
Type: JSON value
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.devcontainer.settings.customizations.vscode.extensions
List of preinstalled VSCode extensions.
Type: list of string
Default:
[
"mkhl.direnv"
]
Declared by:
perSystem.devenv.shells.<name>.devcontainer.settings.image
The name of an image in a container registry.
Type: string
Default:
"ghcr.io/cachix/devenv:latest"
Declared by:
perSystem.devenv.shells.<name>.devcontainer.settings.overrideCommand
Override the default command.
Type: anything
Default:
false
Declared by:
perSystem.devenv.shells.<name>.devcontainer.settings.updateContentCommand
Command to run after container creation.
Type: anything
Default:
"devenv test"
Declared by:
perSystem.devenv.shells.<name>.devenv.debug
Whether to enable debug mode of devenv enterShell script.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.devenv.flakesIntegration
Tells if devenv is being imported by a flake.nix file
Type: boolean
Default:
true
when devenv is invoked via the flake integration; false
otherwise.
Declared by:
perSystem.devenv.shells.<name>.devenv.isTesting
Whether the environment is being used for testing.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.devenv.latestVersion
The latest version of devenv.
Type: string
Default:
"1.3.1"
Declared by:
perSystem.devenv.shells.<name>.devenv.warnOnNewVersion
Whether to warn when a new version of either devenv or the direnv integration is available.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.difftastic.enable
Integrate difftastic into git: https://difftastic.wilfred.me.uk/.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.dotenv.enable
Whether to enable .env integration, doesn’t support comments or multiline values…
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.dotenv.disableHint
Disable the hint that are printed when the dotenv module is not enabled, but .env is present.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.dotenv.filename
The name of the dotenv file to load, or a list of dotenv files to load in order of precedence.
Type: string or list of string
Default:
".env"
Declared by:
perSystem.devenv.shells.<name>.enterShell
Bash code to execute when entering the shell.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.enterTest
Bash code to execute to run the test.
Type: strings concatenated with “\n”
Declared by:
perSystem.devenv.shells.<name>.env
Environment variables to be exposed inside the developer environment.
Type: lazy attribute set of anything
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.files
A set of files that will be linked into devenv root.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.files.<name>.executable
Make the file executable
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.files.<name>.ini
ini contents
Type: null or (attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string)))
Default:
null
Declared by:
perSystem.devenv.shells.<name>.files.<name>.json
json contents
Type: null or JSON value
Default:
null
Declared by:
perSystem.devenv.shells.<name>.files.<name>.text
text contents
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.files.<name>.toml
toml contents
Type: null or TOML value
Default:
null
Declared by:
perSystem.devenv.shells.<name>.files.<name>.yaml
yaml contents
Type: null or YAML value
Default:
null
Declared by:
perSystem.devenv.shells.<name>.git-hooks
Integration with https://github.com/cachix/git-hooks.nix
Type: submodule
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.hosts
List of hosts entries.
Type: attribute set of (string or list of string)
Default:
{ }
Example:
{
"another-example.com" = [
"::1"
"127.0.0.1"
];
"example.com" = "127.0.0.1";
}
Declared by:
perSystem.devenv.shells.<name>.hostsProfileName
Profile name to use.
Type: string
Default:
"devenv-<hash>"
Declared by:
perSystem.devenv.shells.<name>.infoSections
Information about the environment
Type: attribute set of list of string
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.languages.ansible.enable
Whether to enable tools for Ansible development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.ansible.package
The Ansible package to use.
Type: package
Default:
pkgs.ansible
Declared by:
perSystem.devenv.shells.<name>.languages.c.enable
Whether to enable tools for C development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.c.debugger
An optional debugger package to use with c.
The default is gdb
, if supported on the current system.
Type: null or package
Default:
pkgs.gdb
Declared by:
perSystem.devenv.shells.<name>.languages.clojure.enable
Whether to enable tools for Clojure development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.cplusplus.enable
Whether to enable tools for C++ development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.crystal.enable
Whether to enable Enable tools for Crystal development…
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.cue.enable
Whether to enable tools for Cue development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.cue.package
The CUE package to use.
Type: package
Default:
pkgs.cue
Declared by:
perSystem.devenv.shells.<name>.languages.dart.enable
Whether to enable tools for Dart development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.dart.package
The Dart package to use.
Type: package
Default:
pkgs.dart
Declared by:
perSystem.devenv.shells.<name>.languages.deno.enable
Whether to enable tools for Deno development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.deno.package
Which package of Deno to use.
Type: package
Default:
pkgs.deno
Declared by:
perSystem.devenv.shells.<name>.languages.dotnet.enable
Whether to enable tools for .NET development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.dotnet.package
The .NET SDK package to use.
Type: package
Default:
pkgs.dotnet-sdk
Declared by:
perSystem.devenv.shells.<name>.languages.elixir.enable
Whether to enable tools for Elixir development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.elixir.package
Which package of Elixir to use.
Type: package
Default:
pkgs.elixir
Declared by:
perSystem.devenv.shells.<name>.languages.elm.enable
Whether to enable tools for Elm development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.erlang.enable
Whether to enable tools for Erlang development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.erlang.package
Which package of Erlang to use.
Type: package
Default:
pkgs.erlang
Declared by:
perSystem.devenv.shells.<name>.languages.fortran.enable
Whether to enable tools for Fortran Development…
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.fortran.package
The Fortran package to use.
Type: package
Default:
pkgs.gfortran
Declared by:
perSystem.devenv.shells.<name>.languages.gawk.enable
Whether to enable tools for GNU Awk development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.gleam.enable
Whether to enable tools for Gleam development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.gleam.package
The Gleam package to use.
Type: package
Default:
pkgs.gleam
Declared by:
perSystem.devenv.shells.<name>.languages.go.enable
Whether to enable tools for Go development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.go.enableHardeningWorkaround
Enable hardening workaround required for Delve debugger (https://github.com/go-delve/delve/issues/3085)
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.go.package
The Go package to use.
Type: package
Default:
pkgs.go
Declared by:
perSystem.devenv.shells.<name>.languages.haskell.enable
Whether to enable tools for Haskell development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.haskell.package
Haskell compiler to use.
Type: package
Default:
pkgs.ghc
Declared by:
perSystem.devenv.shells.<name>.languages.haskell.languageServer
Haskell language server to use.
Type: null or package
Default:
pkgs.haskell-language-server
Declared by:
perSystem.devenv.shells.<name>.languages.haskell.stack
Haskell stack to use.
Type: null or package
Default:
pkgs.stack
Declared by:
perSystem.devenv.shells.<name>.languages.idris.enable
Whether to enable tools for Idris development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.idris.package
The Idris package to use.
Type: package
Default:
pkgs.idris2
Example:
pkgs.idris
Declared by:
perSystem.devenv.shells.<name>.languages.java.enable
Whether to enable tools for Java development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.java.gradle.enable
Whether to enable gradle.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.java.gradle.package
The Gradle package to use.
The Gradle package by default inherits the JDK from languages.java.jdk.package
.
Type: package
Default:
pkgs.gradle.override { java = cfg.jdk.package; }
Declared by:
perSystem.devenv.shells.<name>.languages.java.jdk.package
The JDK package to use.
This will also become available as JAVA_HOME
.
Type: package
Default:
pkgs.jdk
Example:
pkgs.jdk8
Declared by:
perSystem.devenv.shells.<name>.languages.java.maven.enable
Whether to enable maven.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.java.maven.package
The Maven package to use.
The Maven package by default inherits the JDK from languages.java.jdk.package
.
Type: package
Default:
pkgs.maven.override { jdk_headless = cfg.jdk.package; }
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.enable
Whether to enable tools for JavaScript development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.package
The Node.js package to use.
Type: package
Default:
pkgs.nodejs-slim
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.bun.enable
Whether to enable install bun.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.bun.package
The bun package to use.
Type: package
Default:
pkgs.bun
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.bun.install.enable
Whether to enable bun install during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.corepack.enable
Whether to enable wrappers for npm, pnpm and Yarn via Node.js Corepack.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.directory
The JavaScript project’s root directory. Defaults to the root of the devenv project. Can be an absolute path or one relative to the root of the devenv project.
Type: string
Default:
config.devenv.root
Example:
"./directory"
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.npm.enable
Whether to enable install npm.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.npm.package
The Node.js package to use.
Type: package
Default:
languages.javascript.package
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.npm.install.enable
Whether to enable npm install during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.pnpm.enable
Whether to enable install pnpm.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.pnpm.package
The pnpm package to use.
Type: package
Default:
pkgs.nodePackages.pnpm
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.pnpm.install.enable
Whether to enable pnpm install during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.yarn.enable
Whether to enable install yarn.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.yarn.package
The yarn package to use.
Type: package
Default:
pkgs.yarn
Declared by:
perSystem.devenv.shells.<name>.languages.javascript.yarn.install.enable
Whether to enable yarn install during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.jsonnet.enable
Whether to enable tools for jsonnet development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.julia.enable
Whether to enable tools for Julia development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.julia.package
The Julia package to use.
Type: package
Default:
pkgs.julia-bin
Declared by:
perSystem.devenv.shells.<name>.languages.kotlin.enable
Whether to enable tools for Kotlin development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.lean4.enable
Whether to enable tools for lean4 development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.lean4.package
The lean4 package to use.
Type: package
Default:
pkgs.lean4
Declared by:
perSystem.devenv.shells.<name>.languages.lua.enable
Whether to enable tools for Lua development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.lua.package
The Lua package to use.
Type: package
Default:
pkgs.lua
Declared by:
perSystem.devenv.shells.<name>.languages.nim.enable
Whether to enable tools for Nim development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.nim.package
The Nim package to use.
Type: package
Default:
pkgs.nim
Declared by:
perSystem.devenv.shells.<name>.languages.nix.enable
Whether to enable tools for Nix development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.nix.lsp.package
The LSP package to use
Type: package
Default:
pkgs.nil
Declared by:
perSystem.devenv.shells.<name>.languages.ocaml.enable
Whether to enable tools for OCaml development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.ocaml.packages
The package set of OCaml to use
Type: attribute set
Default:
pkgs.ocaml-ng.ocamlPackages_4_12
Declared by:
perSystem.devenv.shells.<name>.languages.odin.enable
Whether to enable tools for Odin Language.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.odin.package
The odin package to use.
Type: package
Default:
pkgs.odin
Declared by:
perSystem.devenv.shells.<name>.languages.odin.debugger
An optional debugger package to use with odin.
The default is gdb
, if supported on the current system.
Type: null or package
Default:
pkgs.gdb
Declared by:
perSystem.devenv.shells.<name>.languages.opentofu.enable
Whether to enable tools for OpenTofu development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.opentofu.package
The OpenTofu package to use.
Type: package
Default:
pkgs.opentofu
Declared by:
perSystem.devenv.shells.<name>.languages.pascal.enable
Whether to enable tools for Pascal development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.pascal.lazarus.enable
Whether to enable lazarus graphical IDE for the FreePascal language.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.perl.enable
Whether to enable tools for Perl development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.perl.packages
Perl packages to include
Type: list of string
Default:
[ ]
Example:
[
"Mojolicious"
]
Declared by:
perSystem.devenv.shells.<name>.languages.php.enable
Whether to enable tools for PHP development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.php.package
Allows you to override the default used package
to adjust the settings or add more extensions. You can find the
extensions using devenv search 'php extensions'
Type: package
Default:
pkgs.php
Example:
pkgs.php.buildEnv {
extensions = { all, enabled }: with all; enabled ++ [ xdebug ];
extraConfig = ''
memory_limit=1G
'';
};
Declared by:
perSystem.devenv.shells.<name>.languages.php.packages
Attribute set of packages including composer
Type: submodule
Default:
pkgs
Declared by:
perSystem.devenv.shells.<name>.languages.php.packages.composer
composer package
Type: null or package
Default:
pkgs.phpPackages.composer
Declared by:
perSystem.devenv.shells.<name>.languages.php.disableExtensions
PHP extensions to disable.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.php.extensions
PHP extensions to enable.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.extraConfig
Extra configuration that should be put in the global section of
the PHP-FPM configuration file. Do not specify the options
error_log
or daemonize
here, since they are generated by
NixOS.
Type: null or strings concatenated with “\n”
Default:
null
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.phpOptions
Options appended to the PHP configuration file php.ini
.
Type: strings concatenated with “\n”
Default:
""
Example:
''
date.timezone = "CET"
''
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools
PHP-FPM pools. If no pools are defined, the PHP-FPM service is disabled.
Type: attribute set of (submodule)
Default:
{ }
Example:
{
mypool = {
user = "php";
group = "php";
phpPackage = pkgs.php;
settings = {
"pm" = "dynamic";
"pm.max_children" = 75;
"pm.start_servers" = 10;
"pm.min_spare_servers" = 5;
"pm.max_spare_servers" = 20;
"pm.max_requests" = 500;
};
}
}
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.extraConfig
Extra lines that go into the pool configuration.
See the documentation on php-fpm.conf
for
details on configuration directives.
Type: null or strings concatenated with “\n”
Default:
null
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.listen
The address on which to accept FastCGI requests.
Type: string
Default:
""
Example:
"/path/to/unix/socket"
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.phpEnv
Environment variables used for this PHP-FPM pool.
Type: attribute set of string
Default:
{ }
Example:
{
HOSTNAME = "$HOSTNAME";
TMP = "/tmp";
TMPDIR = "/tmp";
TEMP = "/tmp";
}
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.phpOptions
Options appended to the PHP configuration file php.ini
used for this PHP-FPM pool.
Type: strings concatenated with “\n”
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.phpPackage
The PHP package to use for running this PHP-FPM pool.
Type: package
Default:
phpfpm.phpPackage
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.settings
PHP-FPM pool directives. Refer to the “List of pool directives” section of
https://www.php.net/manual/en/install.fpm.configuration.php"
the manual for details. Note that settings names must be
enclosed in quotes (e.g. "pm.max_children"
instead of
pm.max_children
).
Type: attribute set of (string or signed integer or boolean)
Default:
{ }
Example:
{
"pm" = "dynamic";
"pm.max_children" = 75;
"pm.start_servers" = 10;
"pm.min_spare_servers" = 5;
"pm.max_spare_servers" = 20;
"pm.max_requests" = 500;
}
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.pools.<name>.socket
Path to the Unix socket file on which to accept FastCGI requests.
This option is read-only and managed by NixOS.
Type: string (read only)
Example:
config.env.DEVENV_STATE + "/php-fpm/<name>.sock"
Declared by:
perSystem.devenv.shells.<name>.languages.php.fpm.settings
PHP-FPM global directives.
Refer to the “List of global php-fpm.conf directives” section of https://www.php.net/manual/en/install.fpm.configuration.php for details.
Note that settings names must be enclosed in
quotes (e.g. "pm.max_children"
instead of pm.max_children
).
You need not specify the options error_log
or daemonize
here, since
they are already set.
Type: attribute set of (string or signed integer or boolean)
Default:
{
error_log = config.env.DEVENV_STATE + "/php-fpm/php-fpm.log";
}
Declared by:
perSystem.devenv.shells.<name>.languages.php.ini
PHP.ini directives. Refer to the “List of php.ini directives” of PHP’s
Type: null or strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.languages.php.version
The PHP version to use.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.languages.purescript.enable
Whether to enable tools for PureScript development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.purescript.package
The PureScript package to use.
Type: package
Default:
pkgs.purescript
Declared by:
perSystem.devenv.shells.<name>.languages.python.enable
Whether to enable tools for Python development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.package
The Python package to use.
Type: package
Default:
pkgs.python3
Declared by:
perSystem.devenv.shells.<name>.languages.python.directory
The Python project’s root directory. Defaults to the root of the devenv project. Can be an absolute path or one relative to the root of the devenv project.
Type: string
Default:
config.devenv.root
Example:
"./directory"
Declared by:
perSystem.devenv.shells.<name>.languages.python.libraries
Additional libraries to make available to the Python interpreter.
This is useful when you want to use Python wheels that depend on native libraries.
Type: list of path
Default:
[ "${config.devenv.dotfile}/profile" ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.manylinux.enable
Whether to install manylinux2014 libraries.
Enabled by default on linux;
This is useful when you want to use Python wheels that depend on manylinux2014 libraries.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.enable
Whether to enable poetry.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.package
The Poetry package to use.
Type: package
Default:
pkgs.poetry
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.activate.enable
Whether to activate the poetry virtual environment automatically.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.enable
Whether to enable poetry install during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.allExtras
Whether to install all extras. See --all-extras
.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.compile
Whether poetry install
should compile Python source files to bytecode.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.extras
Which extras to install. See --extras
.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.groups
Which dependency groups to install. See --with
.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.ignoredGroups
Which dependency groups to ignore. See --without
.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.installRootPackage
Whether the root package (your project) should be installed. See --no-root
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.onlyGroups
Which dependency groups to exclusively install. See --only
.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.onlyInstallRootPackage
Whether to only install the root package (your project) should be installed, but no dependencies. See --only-root
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.quiet
Whether poetry install
should avoid outputting messages during devenv initialisation.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.poetry.install.verbosity
What level of verbosity the output of poetry install
should have.
Type: one of “no”, “little”, “more”, “debug”
Default:
"no"
Declared by:
perSystem.devenv.shells.<name>.languages.python.uv.enable
Whether to enable uv.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.uv.package
The uv package to use.
Type: package
Default:
pkgs.uv
Declared by:
perSystem.devenv.shells.<name>.languages.python.uv.sync.enable
Whether to enable uv sync during devenv initialisation.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.uv.sync.allExtras
Whether to install all extras. See --all-extras
.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.uv.sync.extras
Which extras to install. See --extra
.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.python.venv.enable
Whether to enable Python virtual environment.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.python.venv.quiet
Whether pip install
should avoid outputting messages during devenv initialisation.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.languages.python.venv.requirements
Contents of pip requirements.txt file.
This is passed to pip install -r
during devenv shell
initialisation.
Type: null or strings concatenated with “\n” or path
Default:
null
Declared by:
perSystem.devenv.shells.<name>.languages.python.version
The Python version to use.
This automatically sets the languages.python.package
using nixpkgs-python.
Type: null or string
Default:
null
Example:
"3.11 or 3.11.2"
Declared by:
perSystem.devenv.shells.<name>.languages.r.enable
Whether to enable tools for R development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.r.package
The R package to use.
Type: package
Default:
pkgs.R
Declared by:
perSystem.devenv.shells.<name>.languages.r.radian.enable
Whether to enable a 21 century R console.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.r.radian.package
The radian package to use.
Type: package
Default:
pkgs.radianWrapper
Declared by:
perSystem.devenv.shells.<name>.languages.racket.enable
Whether to enable tools for Racket development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.racket.package
The Racket package to use.
Type: package
Default:
pkgs.racket-minimal
Declared by:
perSystem.devenv.shells.<name>.languages.raku.enable
Whether to enable tools for Raku development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.robotframework.enable
Whether to enable tools for Robot Framework development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.robotframework.python
The Python package to use.
Type: package
Default:
pkgs.python3
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.enable
Whether to enable tools for Ruby development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.package
The Ruby package to use.
Type: package
Default:
pkgs.ruby_3_1
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.bundler.enable
Whether to enable bundler.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.bundler.package
The bundler package to use.
Type: package
Default:
pkgs.bundler.override { ruby = cfg.package; }
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.version
The Ruby version to use.
This automatically sets the languages.ruby.package
using nixpkgs-ruby.
Type: null or string
Default:
null
Example:
"3.2.1"
Declared by:
perSystem.devenv.shells.<name>.languages.ruby.versionFile
The .ruby-version file path to extract the Ruby version from.
This automatically sets the languages.ruby.package
using nixpkgs-ruby.
When the .ruby-version
file exists in the same directory as the devenv configuration, you can use:
languages.ruby.versionFile = ./.ruby-version;
Type: null or path
Default:
null
Example:
./ruby-version
Declared by:
perSystem.devenv.shells.<name>.languages.rust.enable
Whether to enable tools for Rust development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.rust.channel
The rustup toolchain to install.
Type: one of “nixpkgs”, “stable”, “beta”, “nightly”
Default:
"nixpkgs"
Declared by:
perSystem.devenv.shells.<name>.languages.rust.components
List of Rustup components
to install. Defaults to those available in nixpkgs
.
Type: list of string
Default:
[ "rustc" "cargo" "clippy" "rustfmt" "rust-analyzer" ]
Declared by:
perSystem.devenv.shells.<name>.languages.rust.mold.enable
Enable mold as the linker.
Enabled by default on x86_64 Linux machines when no cross-compilation targets are specified.
Type: boolean
Default:
pkgs.stdenv.isLinux && pkgs.stdenv.isx86_64 && languages.rust.targets == [ ]
Declared by:
perSystem.devenv.shells.<name>.languages.rust.rustflags
Extra flags to pass to the Rust compiler.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.languages.rust.targets
List of extra targets to install. Defaults to only the native target.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain
Rust component packages. May optionally define additional components, for example miri
.
Type: attribute set of package
Default:
nixpkgs
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain.cargo
cargo package
Type: null or package
Default:
pkgs.cargo
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain.clippy
clippy package
Type: null or package
Default:
pkgs.clippy
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain.rust-analyzer
rust-analyzer package
Type: null or package
Default:
pkgs.rust-analyzer
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain.rustc
rustc package
Type: null or package
Default:
pkgs.rustc
Declared by:
perSystem.devenv.shells.<name>.languages.rust.toolchain.rustfmt
rustfmt package
Type: null or package
Default:
pkgs.rustfmt
Declared by:
perSystem.devenv.shells.<name>.languages.scala.enable
Whether to enable tools for Scala development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.scala.package
The Scala package to use.
Type: package
Default:
pkgs.scala_3
Declared by:
perSystem.devenv.shells.<name>.languages.scala.mill.enable
Whether to enable mill, a simplified, fast build tool for Scala.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.scala.mill.package
The mill package to use.
Type: package
Default:
pkgs.mill
Declared by:
perSystem.devenv.shells.<name>.languages.scala.sbt.enable
Whether to enable sbt, the standard build tool for Scala.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.scala.sbt.package
The sbt package to use.
Type: package
Default:
pkgs.sbt
Example:
sbt-with-scala-native
Declared by:
perSystem.devenv.shells.<name>.languages.shell.enable
Whether to enable tools for shell development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.solidity.enable
Whether to enable tools for Solidity development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.solidity.package
Which compiler of Solidity to use.
Type: package
Default:
pkgs.solc
Declared by:
perSystem.devenv.shells.<name>.languages.solidity.foundry.enable
Whether to enable install Foundry.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.solidity.foundry.package
Which Foundry package to use.
Type: package
Default:
foundry.defaultPackage.$${pkgs.stdenv.system}
Declared by:
perSystem.devenv.shells.<name>.languages.standardml.enable
Whether to enable tools for Standard ML development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.standardml.package
The Standard ML package to use.
Type: package
Default:
pkgs.mlton
Declared by:
perSystem.devenv.shells.<name>.languages.swift.enable
Whether to enable tools for Swift development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.swift.package
The Swift package to use.
Type: package
Default:
pkgs.swift
Declared by:
perSystem.devenv.shells.<name>.languages.terraform.enable
Whether to enable tools for Terraform development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.terraform.package
The Terraform package to use.
Type: package
Default:
pkgs.terraform
Declared by:
perSystem.devenv.shells.<name>.languages.terraform.version
The Terraform version to use.
This automatically sets the languages.terraform.package
using nixpkgs-terraform.
Type: null or string
Default:
null
Example:
"1.5.0 or 1.6.2"
Declared by:
perSystem.devenv.shells.<name>.languages.texlive.enable
Whether to enable TeX Live.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.texlive.packages
Extra packages to add to the base TeX Live set
Type: list of string
Default:
[ ]
Example:
[
"algorithms"
"latexmk"
]
Declared by:
perSystem.devenv.shells.<name>.languages.texlive.base
TeX Live package set to use
Type: unspecified value
Default:
pkgs.texliveSmall
Example:
pkgs.texliveBasic
Declared by:
perSystem.devenv.shells.<name>.languages.typescript.enable
Whether to enable tools for TypeScript development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.typst.enable
Whether to enable tools for Typst development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.typst.package
Which package of Typst to use.
Type: package
Default:
pkgs.typst
Declared by:
perSystem.devenv.shells.<name>.languages.unison.enable
Whether to enable tools for Unison development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.unison.package
Which package of Unison to use
Type: package
Default:
pkgs.unison-ucm
Declared by:
perSystem.devenv.shells.<name>.languages.v.enable
Whether to enable tools for V development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.v.package
The V package to use.
Type: package
Default:
pkgs.vlang
Declared by:
perSystem.devenv.shells.<name>.languages.vala.enable
Whether to enable tools for Vala development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.vala.package
The Vala package to use.
Type: package
Default:
pkgs.vala
Example:
pkgs.vala_0_54
Declared by:
perSystem.devenv.shells.<name>.languages.zig.enable
Whether to enable tools for Zig development.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.languages.zig.package
Which package of Zig to use.
Type: package
Default:
pkgs.zig
Declared by:
perSystem.devenv.shells.<name>.name
Name of the project.
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.outputs
Nix outputs for devenv build
consumption.
Type: outputOf (attribute set)
Default:
{
git = pkgs.git;
foo = {
ncdu = pkgs.ncdu;
};
}
Declared by:
perSystem.devenv.shells.<name>.pre-commit
Alias of git-hooks
.
Type: submodule
Declared by:
perSystem.devenv.shells.<name>.process.manager.after
Bash code to execute after stopping processes.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.process.manager.args
Additional arguments to pass to the process manager.
Type: attribute set
Declared by:
perSystem.devenv.shells.<name>.process.manager.before
Bash code to execute before starting processes.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.process.manager.implementation
The process manager to use when running processes with devenv up
.
Type: one of “hivemind”, “honcho”, “overmind”, “process-compose”
Default:
"process-compose"
Example:
"overmind"
Declared by:
perSystem.devenv.shells.<name>.process.managers.hivemind.package
The hivemind package to use.
Type: package
Default:
pkgs.hivemind
Declared by:
perSystem.devenv.shells.<name>.process.managers.honcho.package
The honcho package to use.
Type: package
Default:
pkgs.honcho
Declared by:
perSystem.devenv.shells.<name>.process.managers.overmind.package
The overmind package to use.
Type: package
Default:
pkgs.overmind
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.package
The process-compose package to use.
Type: package
Default:
pkgs.process-compose
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.port
The port to bind the process-compose server to.
Not used when unixSocket.enable
is true.
Type: signed integer
Default:
8080
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.settings
Top-level process-compose.yaml options
Example: https://github.com/F1bonacc1/process-compose/blob/main/process-compose.yaml`
Type: YAML value
Default:
{ }
Example:
{
availability = {
backoff_seconds = 2;
max_restarts = 5;
restart = "on_failure";
};
depends_on = {
some-other-process = {
condition = "process_completed_successfully";
};
};
environment = [
"ENVVAR_FOR_THIS_PROCESS_ONLY=foobar"
];
}
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.tui.enable
Enable the TUI (Terminal User Interface)
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.unixSocket.enable
Whether to enable running the process-compose server over unix domain sockets instead of tcp.
Type: boolean
Default:
true
Example:
true
Declared by:
perSystem.devenv.shells.<name>.process.managers.process-compose.unixSocket.path
Override the path to the unix socket.
Type: string
Default:
${config.devenv.runtime}/pc.sock
Declared by:
perSystem.devenv.shells.<name>.processes
Processes can be started with devenv up
and run in the foreground.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.processes.<name>.exec
Bash code to run the process.
Type: string
Declared by:
perSystem.devenv.shells.<name>.processes.<name>.process-compose
process-compose.yaml specific process attributes.
Example: https://github.com/F1bonacc1/process-compose/blob/main/process-compose.yaml`
Only used when using process.manager.implementation = "process-compose";
Type: attribute set
Default:
{ }
Example:
{
availability = {
backoff_seconds = 2;
max_restarts = 5;
restart = "on_failure";
};
depends_on = {
some-other-process = {
condition = "process_completed_successfully";
};
};
environment = [
"ENVVAR_FOR_THIS_PROCESS_ONLY=foobar"
];
}
Declared by:
perSystem.devenv.shells.<name>.scripts
A set of scripts available when the environment is active.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.scripts.<name>.package
The package to use to run the script.
Type: package
Default:
pkgs.bash
Declared by:
perSystem.devenv.shells.<name>.scripts.<name>.binary
Override the binary name if it doesn’t match package name
Type: string
Default:
config.package.pname
Declared by:
perSystem.devenv.shells.<name>.scripts.<name>.description
Description of the script.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.scripts.<name>.exec
Shell code to execute when the script is run.
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.adminer.enable
Whether to enable Adminer process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.adminer.package
Which package of Adminer to use.
Type: package
Default:
pkgs.adminer
Declared by:
perSystem.devenv.shells.<name>.services.adminer.listen
Listen address for the Adminer.
Type: string
Default:
"127.0.0.1:8080"
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.enable
Whether to enable Blackfire profiler agent
It automatically installs Blackfire PHP extension. .
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.enableApm
Whether to enable Enables application performance monitoring, requires special subscription. .
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.package
Which package of blackfire to use
Type: package
Default:
pkgs.blackfire
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.client-id
Sets the client id used to authenticate with Blackfire. You can find your personal client-id at https://blackfire.io/my/settings/credentials.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.client-token
Sets the client token used to authenticate with Blackfire. You can find your personal client-token at https://blackfire.io/my/settings/credentials.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.server-id
Sets the server id used to authenticate with Blackfire. You can find your personal server-id at https://blackfire.io/my/settings/credentials.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.server-token
Sets the server token used to authenticate with Blackfire. You can find your personal server-token at https://blackfire.io/my/settings/credentials.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.blackfire.socket
Sets the server socket path
Type: string
Default:
"tcp://127.0.0.1:8307"
Declared by:
perSystem.devenv.shells.<name>.services.caddy.enable
Whether to enable Caddy web server.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.caddy.package
Caddy package to use.
Type: package
Default:
pkgs.caddy
Declared by:
perSystem.devenv.shells.<name>.services.caddy.adapter
Name of the config adapter to use. See https://caddyserver.com/docs/config-adapters for the full list.
Type: string
Default:
"caddyfile"
Example:
"nginx"
Declared by:
perSystem.devenv.shells.<name>.services.caddy.ca
Certificate authority ACME server. The default (Let’s Encrypt production server) should be fine for most people. Set it to null if you don’t want to include any authority (or if you want to write a more fine-graned configuration manually).
Type: null or string
Default:
"https://acme-v02.api.letsencrypt.org/directory"
Example:
"https://acme-staging-v02.api.letsencrypt.org/directory"
Declared by:
perSystem.devenv.shells.<name>.services.caddy.config
Verbatim Caddyfile to use.
Refer to https://caddyserver.com/docs/caddyfile for more information.
Caddy v2 supports multiple config formats via adapters (see services.caddy.adapter
).
Type: strings concatenated with “\n”
Default:
""
Example:
''
# Global options block
{
debug
}
# Site block
example.com {
encode gzip
log
root /srv/http
}
''
Declared by:
perSystem.devenv.shells.<name>.services.caddy.dataDir
The data directory, for storing certificates. Before 17.09, this would create a .caddy directory. With 17.09 the contents of the .caddy directory are in the specified data directory instead. Caddy v2 replaced CADDYPATH with XDG directories. See https://caddyserver.com/docs/conventions#file-locations.
Type: path
Default:
"${config.env.DEVENV_STATE}/caddy"
Declared by:
perSystem.devenv.shells.<name>.services.caddy.email
Email address (for Let’s Encrypt certificate).
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.caddy.resume
Use saved config, if any (and prefer over configuration passed with caddy.config
).
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.services.caddy.virtualHosts
Declarative vhost config.
Type: attribute set of (submodule)
Default:
{ }
Example:
{
"hydra.example.com" = {
serverAliases = [ "www.hydra.example.com" ];
extraConfig = ''''
encode gzip
log
root /srv/http
'''';
};
};
Declared by:
perSystem.devenv.shells.<name>.services.caddy.virtualHosts.<name>.extraConfig
These lines go into the vhost verbatim.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.caddy.virtualHosts.<name>.serverAliases
Additional names of virtual hosts served by this virtual host configuration.
Type: list of string
Default:
[ ]
Example:
[
"www.example.org"
"example.org"
]
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.enable
Whether to enable Add Cassandra process script…
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.package
Which version of Cassandra to use
Type: package
Default:
pkgs.cassandra_4
Example:
pkgs.cassandra_4;
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.allowClients
Enables or disables the native transport server (CQL binary protocol)
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.clusterName
The name of the cluster
Type: string
Default:
"Test Cluster"
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.extraConfig
Extra options to be merged into cassandra.yaml
as nix attribute set.
Type: attribute set
Default:
{ }
Example:
{
commitlog_sync_batch_window_in_ms = 3;
}
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.jvmOpts
Options to pass to the JVM through the JVM_OPTS environment variable
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.listenAddress
Listen address
Type: string
Default:
"127.0.0.1"
Example:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.cassandra.seedAddresses
The addresses of hosts designated as contact points of the cluster
Type: list of string
Default:
[
"127.0.0.1"
]
Declared by:
perSystem.devenv.shells.<name>.services.clickhouse.enable
Whether to enable clickhouse-server.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.clickhouse.package
Which package of clickhouse to use
Type: package
Default:
pkgs.clickhouse
Declared by:
perSystem.devenv.shells.<name>.services.clickhouse.config
ClickHouse configuration in YAML.
Type: strings concatenated with “\n”
Declared by:
perSystem.devenv.shells.<name>.services.clickhouse.httpPort
Which http port to run clickhouse on
Type: signed integer
Default:
8123
Declared by:
perSystem.devenv.shells.<name>.services.clickhouse.port
Which port to run clickhouse on
Type: signed integer
Default:
9000
Declared by:
perSystem.devenv.shells.<name>.services.cockroachdb.enable
Whether to enable Add CockroachDB process. .
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.cockroachdb.package
The CockroachDB package to use.
Type: unspecified value
Default:
pkgs.cockroachdb-bin
Declared by:
perSystem.devenv.shells.<name>.services.cockroachdb.http_addr
The hostname or IP address to bind to for HTTP requests.
Type: string
Default:
"localhost:8080"
Declared by:
perSystem.devenv.shells.<name>.services.cockroachdb.listen_addr
The address/hostname and port to listen on.
Type: string
Default:
"localhost:26257"
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.enable
Whether to enable CouchDB process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.package
Which version of CouchDB to use
Type: package
Default:
pkgs.couchdb3
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.baseDir
The directory where CouchDB will store its data.
Type: string (read only)
Default:
config.env.DEVENV_STATE + "/couchdb"
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings
CouchDB configuration. to know more about all settings, look at: <link xlink:href=“https://docs.couchdb.org/en/stable/config/couchdb.html” />
Type: attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))
Default:
{ }
Example:
{
couchdb = {
database_dir = baseDir;
single_node = true;
view_index_dir = baseDir;
uri_file = "${config.services.couchdb.baseDir}/couchdb.uri";
};
admins = {
"admin_username" = "pass";
};
chttpd = {
bind_address = "127.0.0.1";
port = 5984;
};
}
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.chttpd.bind_address
Defines the IP address by which CouchDB will be accessible.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.chttpd.port
Defined the port number to listen.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
5984
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.couchdb.database_dir
Specifies location of CouchDB database files (*.couch named). This location should be writable and readable for the user the CouchDB service runs as (couchdb by default).
Type: path
Default:
config.env.DEVENV_STATE + "/couchdb"
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.couchdb.single_node
When this configuration setting is set to true, automatically create the system databases on startup. Must be set false for a clustered CouchDB installation.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.couchdb.uri_file
This file contains the full URI that can be used to access this instance of CouchDB. It is used to help discover the port CouchDB is running on (if it was set to 0 (e.g. automatically assigned any free one). This file should be writable and readable for the user that runs the CouchDB service (couchdb by default).
Type: path
Default:
config.env.DEVENV_STATE + "/couchdb"/couchdb.uri
Declared by:
perSystem.devenv.shells.<name>.services.couchdb.settings.couchdb.view_index_dir
Specifies location of CouchDB view index files. This location should be writable and readable for the user that runs the CouchDB service (couchdb by default).
Type: path
Default:
config.env.DEVENV_STATE + "/couchdb"
Declared by:
perSystem.devenv.shells.<name>.services.dynamodb-local.enable
Whether to enable DynamoDB Local.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.dynamodb-local.package
Which package of DynamoDB to use.
Type: package
Default:
pkgs.dynamodb-local
Declared by:
perSystem.devenv.shells.<name>.services.dynamodb-local.port
Listen address for the Dynamodb-local.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8000
Declared by:
perSystem.devenv.shells.<name>.services.elasticmq.enable
Whether to enable elasticmq-server.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.elasticmq.package
Which package of elasticmq-server-bin to use
Type: package
Default:
pkgs.elasticmq-server-bin
Declared by:
perSystem.devenv.shells.<name>.services.elasticmq.settings
Configuration for elasticmq-server
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.enable
Whether to enable elasticsearch.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.package
Elasticsearch package to use.
Type: package
Default:
pkgs.elasticsearch7
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.cluster_name
Elasticsearch name that identifies your cluster for auto-discovery.
Type: string
Default:
"elasticsearch"
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.extraCmdLineOptions
Extra command line options for the elasticsearch launcher.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.extraConf
Extra configuration for elasticsearch.
Type: string
Default:
""
Example:
''
node.name: "elasticsearch"
node.master: true
node.data: false
''
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.extraJavaOptions
Extra command line options for Java.
Type: list of string
Default:
[ ]
Example:
[
"-Djava.net.preferIPv4Stack=true"
]
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.listenAddress
Elasticsearch listen address.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.logging
Elasticsearch logging configuration.
Type: string
Default:
''
logger.action.name = org.elasticsearch.action
logger.action.level = info
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
rootLogger.level = info
rootLogger.appenderRef.console.ref = console
''
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.plugins
Extra elasticsearch plugins
Type: list of package
Default:
[ ]
Example:
[ pkgs.elasticsearchPlugins.discovery-ec2 ]
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.port
Elasticsearch port to listen for HTTP traffic.
Type: signed integer
Default:
9200
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.single_node
Start a single-node cluster
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.elasticsearch.tcp_port
Elasticsearch port for the node to node communication.
Type: signed integer
Default:
9300
Declared by:
perSystem.devenv.shells.<name>.services.httpbin.enable
Whether to enable httpbin.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.httpbin.bind
Addresses for httpbin to listen on.
Type: list of string
Default:
[
"127.0.0.1:8080"
]
Declared by:
perSystem.devenv.shells.<name>.services.httpbin.extraArgs
Gunicorn CLI arguments for httpbin.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.influxdb.enable
Whether to enable influxdb.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.influxdb.package
An open-source distributed time series database
Type: package
Default:
pkgs.influxdb
Declared by:
perSystem.devenv.shells.<name>.services.influxdb.config
Configuration for InfluxDB-server
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.kafka.enable
Whether to enable Apache Kafka.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.package
The apacheKafka package to use.
Type: package
Default:
pkgs.apacheKafka
Declared by:
perSystem.devenv.shells.<name>.services.kafka.configFiles.log4jProperties
Kafka log4j property configuration file path
Type: path
Default:
"pkgs.writeText \"log4j.properties\" cfg.log4jProperties"
Declared by:
perSystem.devenv.shells.<name>.services.kafka.configFiles.serverProperties
Kafka server.properties configuration file path.
Defaults to the rendered settings
.
Type: path
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.enable
Whether to enable Kafka Connect.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.initialConnectors
List of Kafka Connect connectors to set up initially
Type: list of (lazy attribute set of (null or boolean or signed integer or string or list of (boolean or signed integer or string)))
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.initialConnectors.*.config
Initial configuration for the connector
Type: attribute set
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.initialConnectors.*.name
Name of the connector
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings
connect-standalone.properties
.
Note that .properties files contain mappings from string to string.
Keys with dots are NOT represented by nested attrs in these settings,
but instead as quoted strings (ie. settings."broker.id"
, NOT
settings.broker.id
).
Type: lazy attribute set of (null or boolean or signed integer or string or list of (boolean or signed integer or string))
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."bootstrap.servers"
A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.
Type: list of string
Default:
[
"localhost:9092"
]
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."key.converter"
The key converter to use for the connector.
Type: string
Default:
"org.apache.kafka.connect.json.JsonConverter"
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."key.converter.schemas.enable"
Whether the key converter should include schema information in the message.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings.listeners
List of listeners for Kafka Connect (By default Kafka Connect listens on http://localhost:8083)
Type: null or (list of string)
Default:
null
Example:
[
"http://localhost:8080"
]
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."offset.flush.interval.ms"
Interval at which to try committing offsets for tasks
Type: signed integer
Default:
10000
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."offset.storage.file.filename"
The file to store connector offsets in. By storing offsets on disk, a standalone process can be stopped and started on a single node and resume where it previously left off.
Type: string
Default:
"/.devenv/state/kafka/connect/connect.offsets"
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."plugin.path"
The list should consist of top level directories that include any combination of: a) directories immediately containing jars with plugins and their dependencies b) uber-jars with plugins and their dependencies c) directories immediately containing the package directory structure of classes of plugins and their dependencies Note: symlinks will be followed to discover dependencies or plugins.
Type: null or (list of (string or path))
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."value.converter"
The value converter to use for the connector.
Type: string
Default:
"org.apache.kafka.connect.json.JsonConverter"
Declared by:
perSystem.devenv.shells.<name>.services.kafka.connect.settings."value.converter.schemas.enable"
Whether the value converter should include schema information in the message.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.defaultMode
Which defaults to set for the mode Kafka should run in
kraft
(default): Run Kafka in KRaft mode, Which requires no extra configuration.zookeeper
: Run Kafka in Zookeeper mode, this requires more configuration.
Type: one of “zookeeper”, “kraft”
Default:
"kraft"
Declared by:
perSystem.devenv.shells.<name>.services.kafka.formatLogDirs
Whether to format log dirs in KRaft mode if all log dirs are unformatted, ie. they contain no meta.properties.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.formatLogDirsIgnoreFormatted
Whether to ignore already formatted log dirs when formatting log dirs, instead of failing. Useful when replacing or adding disks.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.kafka.jre
The JRE with which to run Kafka
Type: package
Default:
pkgs.apacheKafka.passthru.jre
Declared by:
perSystem.devenv.shells.<name>.services.kafka.jvmOptions
Extra command line options for the JVM running Kafka.
Type: list of string
Default:
[ ]
Example:
[
"-Djava.net.preferIPv4Stack=true"
"-Dcom.sun.management.jmxremote"
"-Dcom.sun.management.jmxremote.local.only=true"
]
Declared by:
perSystem.devenv.shells.<name>.services.kafka.log4jProperties
Kafka log4j property configuration.
Type: strings concatenated with “\n”
Default:
''
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
''
Declared by:
perSystem.devenv.shells.<name>.services.kafka.settings
Kafka broker configuration
server.properties
.
Note that .properties files contain mappings from string to string.
Keys with dots are NOT represented by nested attrs in these settings,
but instead as quoted strings (ie. settings."broker.id"
, NOT
settings.broker.id
).
Type: lazy attribute set of (null or boolean or signed integer or string or list of (boolean or signed integer or string))
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.kafka.settings."broker.id"
Broker ID. -1 or null to auto-allocate in zookeeper mode.
Type: null or signed integer
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.kafka.settings.listeners
Kafka Listener List. See listeners. If you change this, you should also update the readiness probe.
Type: list of string
Default:
[
"PLAINTEXT://localhost:9092"
]
Declared by:
perSystem.devenv.shells.<name>.services.kafka.settings."log.dirs"
Log file directories.
Type: list of path
Default:
[
"/.devenv/state/kafka/logs"
]
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.enable
Whether to enable mailhog process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.package
Which package of mailhog to use
Type: package
Default:
pkgs.mailhog
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.additionalArgs
Additional arguments passed to mailhog
.
Type: list of strings concatenated with “\n”
Default:
[ ]
Example:
[
"-invite-jim"
]
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.apiListenAddress
Listen address for API.
Type: string
Default:
"127.0.0.1:8025"
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.smtpListenAddress
Listen address for SMTP.
Type: string
Default:
"127.0.0.1:1025"
Declared by:
perSystem.devenv.shells.<name>.services.mailhog.uiListenAddress
Listen address for UI.
Type: string
Default:
"127.0.0.1:8025"
Declared by:
perSystem.devenv.shells.<name>.services.mailpit.enable
Whether to enable mailpit process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.mailpit.package
Which package of mailpit to use
Type: package
Default:
pkgs.mailpit
Declared by:
perSystem.devenv.shells.<name>.services.mailpit.additionalArgs
Additional arguments passed to mailpit
.
Type: list of strings concatenated with “\n”
Default:
[ ]
Example:
[
"--max=500"
]
Declared by:
perSystem.devenv.shells.<name>.services.mailpit.smtpListenAddress
Listen address for SMTP.
Type: string
Default:
"127.0.0.1:1025"
Declared by:
perSystem.devenv.shells.<name>.services.mailpit.uiListenAddress
Listen address for UI.
Type: string
Default:
"127.0.0.1:8025"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.enable
Whether to enable Meilisearch.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.package
Which Meilisearch package to use
Type: package
Default:
"pkgs.meilisearch"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.environment
Defines the running environment of Meilisearch.
Type: one of “development”, “production”
Default:
"development"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.listenAddress
Meilisearch listen address.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.listenPort
Meilisearch port to listen on.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
7700
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.logLevel
Defines how much detail should be present in Meilisearch’s logs. Meilisearch currently supports four log levels, listed in order of increasing verbosity:
- ‘ERROR’: only log unexpected events indicating Meilisearch is not functioning as expected
- ‘WARN:’ log all unexpected events, regardless of their severity
- ‘INFO:’ log all events. This is the default value
- ‘DEBUG’: log all events and including detailed information on Meilisearch’s internal processes. Useful when diagnosing issues and debugging
Type: string
Default:
"INFO"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.maxIndexSize
Sets the maximum size of the index. Value must be given in bytes or explicitly stating a base unit. For example, the default value can be written as 107374182400, ‘107.7Gb’, or ‘107374 Mb’. Default is 100 GiB
Type: string
Default:
"107374182400"
Declared by:
perSystem.devenv.shells.<name>.services.meilisearch.noAnalytics
Deactivates analytics. Analytics allow Meilisearch to know how many users are using Meilisearch, which versions and which platforms are used. This process is entirely anonymous.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.memcached.enable
Whether to enable memcached process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.memcached.package
Which package of memcached to use
Type: package
Default:
pkgs.memcached
Declared by:
perSystem.devenv.shells.<name>.services.memcached.bind
The IP interface to bind to.
null
means “all interfaces”.
Type: null or string
Default:
"127.0.0.1"
Example:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.memcached.port
The TCP port to accept connections. If port 0 is specified memcached will not listen on a TCP socket.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
11211
Declared by:
perSystem.devenv.shells.<name>.services.memcached.startArgs
Additional arguments passed to memcached
during startup.
Type: list of strings concatenated with “\n”
Default:
[ ]
Example:
[
"--memory-limit=100M"
]
Declared by:
perSystem.devenv.shells.<name>.services.minio.enable
Whether to enable MinIO Object Storage.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.minio.package
MinIO package to use.
Type: package
Default:
pkgs.minio
Declared by:
perSystem.devenv.shells.<name>.services.minio.accessKey
Access key of 5 to 20 characters in length that clients use to access the server.
Type: string
Default:
"minioadmin"
Declared by:
perSystem.devenv.shells.<name>.services.minio.afterStart
Bash code to execute after minio is running.
Type: strings concatenated with “\n”
Default:
""
Example:
''
mc anonymous set download local/mybucket
''
Declared by:
perSystem.devenv.shells.<name>.services.minio.browser
Enable or disable access to web UI.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.minio.buckets
List of buckets to ensure exist on startup.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.minio.clientConfig
Contents of the mc config.json
, as a nix attribute set.
By default, local
is configured to connect to the devenv minio service.
Use lib.mkForce null
to use your regular mc configuration from $HOME/.mc
instead.
Type: null or JSON value
Declared by:
perSystem.devenv.shells.<name>.services.minio.clientPackage
MinIO client package to use.
Type: package
Default:
pkgs.minio-client
Declared by:
perSystem.devenv.shells.<name>.services.minio.consoleAddress
IP address and port of the web UI (console).
Type: string
Default:
"127.0.0.1:9001"
Declared by:
perSystem.devenv.shells.<name>.services.minio.listenAddress
IP address and port of the server.
Type: string
Default:
"127.0.0.1:9000"
Declared by:
perSystem.devenv.shells.<name>.services.minio.region
The physical location of the server. By default it is set to us-east-1, which is same as AWS S3’s and MinIO’s default region.
Type: string
Default:
"us-east-1"
Declared by:
perSystem.devenv.shells.<name>.services.minio.secretKey
Specify the Secret key of 8 to 40 characters in length that clients use to access the server.
Type: string
Default:
"minioadmin"
Declared by:
perSystem.devenv.shells.<name>.services.mongodb.enable
Whether to enable MongoDB process and expose utilities.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.mongodb.package
Which MongoDB package to use.
Type: package
Default:
pkgs.mongodb-ce
Declared by:
perSystem.devenv.shells.<name>.services.mongodb.additionalArgs
Additional arguments passed to mongod
.
Type: list of strings concatenated with “\n”
Default:
[
"--noauth"
]
Example:
[
"--port"
"27017"
"--noauth"
]
Declared by:
perSystem.devenv.shells.<name>.services.mongodb.initDatabasePassword
This used in conjunction with initDatabaseUsername, create a new user and set that user’s password. This user is created in the admin authentication database and given the role of root, which is a “superuser” role.
Type: string
Default:
""
Example:
"secret"
Declared by:
perSystem.devenv.shells.<name>.services.mongodb.initDatabaseUsername
This used in conjunction with initDatabasePassword, create a new user and set that user’s password. This user is created in the admin authentication database and given the role of root, which is a “superuser” role.
Type: string
Default:
""
Example:
"mongoadmin"
Declared by:
perSystem.devenv.shells.<name>.services.mysql.enable
Whether to enable MySQL process and expose utilities.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.mysql.package
Which package of MySQL to use
Type: package
Default:
pkgs.mariadb
Declared by:
perSystem.devenv.shells.<name>.services.mysql.ensureUsers
Ensures that the specified users exist and have at least the ensured permissions. The MySQL users will be identified using Unix socket authentication. This authenticates the Unix user with the same name only, and that without the need for a password. This option will never delete existing users or remove permissions, especially not when the value of this option is changed. This means that users created and permissions assigned once through this option or otherwise have to be removed manually.
Type: list of (submodule)
Default:
[ ]
Example:
[
{
name = "devenv";
ensurePermissions = {
"devenv.*" = "ALL PRIVILEGES";
};
}
]
Declared by:
perSystem.devenv.shells.<name>.services.mysql.ensureUsers.*.ensurePermissions
Permissions to ensure for the user, specified as attribute set.
The attribute names specify the database and tables to grant the permissions for,
separated by a dot. You may use wildcards here.
The attribute values specfiy the permissions to grant.
You may specify one or multiple comma-separated SQL privileges here.
For more information on how to specify the target
and on which privileges exist, see the
GRANT syntax.
The attributes are used as GRANT ${attrName} ON ${attrValue}
.
Type: attribute set of string
Default:
{ }
Example:
{
"database.*" = "ALL PRIVILEGES";
"*.*" = "SELECT, LOCK TABLES";
}
Declared by:
perSystem.devenv.shells.<name>.services.mysql.ensureUsers.*.name
Name of the user to ensure.
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.mysql.ensureUsers.*.password
Password of the user to ensure.
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.mysql.importTimeZones
Whether to import tzdata on the first startup of the mysql server
Type: null or boolean
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.mysql.initialDatabases
List of database names and their initial schemas that should be used to create databases on the first startup of MySQL. The schema attribute is optional: If not specified, an empty database is created.
Type: list of (submodule)
Default:
[ ]
Example:
[
{ name = "foodatabase"; schema = ./foodatabase.sql; }
{ name = "bardatabase"; }
]
Declared by:
perSystem.devenv.shells.<name>.services.mysql.initialDatabases.*.name
The name of the database to create.
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.mysql.initialDatabases.*.schema
The initial schema of the database; if null (the default), an empty database is created.
Type: null or path
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.mysql.settings
MySQL configuration.
Type: lazy attribute set of lazy attribute set of anything
Default:
{ }
Example:
{
mysqld = {
key_buffer_size = "6G";
table_cache = 1600;
log-error = "/var/log/mysql_err.log";
plugin-load-add = [ "server_audit" "ed25519=auth_ed25519" ];
};
mysqldump = {
quick = true;
max_allowed_packet = "16M";
};
}
Declared by:
perSystem.devenv.shells.<name>.services.mysql.useDefaultsExtraFile
Whether to use defaults-exta-file for the mysql command instead of defaults-file. This is useful if you want to provide a config file on the command line. However this can problematic if you have MySQL installed globaly because its config might leak into your environment. This option does not affect the mysqld command.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.services.nginx.enable
Whether to enable nginx.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.nginx.package
The nginx package to use.
Type: package
Default:
pkgs.nginx
Declared by:
perSystem.devenv.shells.<name>.services.nginx.defaultMimeTypes
Default MIME types for NGINX, as MIME types definitions from NGINX are very incomplete, we use by default the ones bundled in the mailcap package, used by most of the other Linux distributions.
Type: path
Default:
${pkgs.mailcap}/etc/nginx/mime.types
Example:
${pkgs.nginx}/conf/mime.types
Declared by:
perSystem.devenv.shells.<name>.services.nginx.eventsConfig
The nginx events configuration.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.nginx.httpConfig
The nginx configuration.
Type: strings concatenated with “\n”
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.enable
Whether to enable OpenSearch.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.package
The OpenSearch package to use.
Type: package
Default:
pkgs.opensearch
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.extraCmdLineOptions
Extra command line options for the OpenSearch launcher.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.extraJavaOptions
Extra command line options for Java.
Type: list of string
Default:
[ ]
Example:
[
"-Djava.net.preferIPv4Stack=true"
]
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.logging
OpenSearch logging configuration.
Type: string
Default:
''
logger.action.name = org.opensearch.action
logger.action.level = info
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
rootLogger.level = info
rootLogger.appenderRef.console.ref = console
''
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings
OpenSearch configuration.
Type: YAML value
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings."cluster.name"
The name of the cluster.
Type: string
Default:
"opensearch"
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings."discovery.type"
The type of discovery to use.
Type: string
Default:
"single-node"
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings."http.port"
The port to listen on for HTTP traffic.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9200
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings."network.host"
Which port this service should listen on.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.opensearch.settings."transport.port"
The port to listen on for transport traffic.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9300
Declared by:
perSystem.devenv.shells.<name>.services.opentelemetry-collector.enable
Whether to enable opentelemetry-collector.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.opentelemetry-collector.package
The OpenTelemetry Collector package to use
Type: package
Default:
pkgs.opentelemetry-collector-contrib
Declared by:
perSystem.devenv.shells.<name>.services.opentelemetry-collector.configFile
Override the configuration file used by OpenTelemetry Collector.
By default, a configuration is generated from services.opentelemetry-collector.settings
.
If overriding, enable the health_check
extension to allow process-compose to check whether the Collector is ready.
Otherwise, disable the readiness probe by setting processes.opentelemetry-collector.process-compose.readiness_probe = {};
.
Type: null or path
Default:
null
Example:
pkgs.writeTextFile { name = "otel-config.yaml"; text = "..."; }
Declared by:
perSystem.devenv.shells.<name>.services.opentelemetry-collector.settings
OpenTelemetry Collector configuration. Refer to https://opentelemetry.io/docs/collector/configuration/ for more information on how to configure the Collector.
Type: YAML value
Default:
{
extensions = {
health_check = {
endpoint = "localhost:13133";
};
};
service = {
extensions = [
"health_check"
];
};
}
Declared by:
perSystem.devenv.shells.<name>.services.postgres.enable
Whether to enable Add PostgreSQL process. .
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.postgres.package
The PostgreSQL package to use. Use this to override the default with a specific version.
Type: package
Default:
pkgs.postgresql
Example:
pkgs.postgresql_15
Declared by:
perSystem.devenv.shells.<name>.services.postgres.createDatabase
Create a database named like current user on startup. Only applies when initialDatabases is an empty list.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.postgres.extensions
Additional PostgreSQL extensions to install.
The available extensions are:
- age
- anonymizer
- apache_datasketches
- citus
- cstore_fdw
- h3-pg
- hypopg
- jsonb_deep_sum
- lantern
- periods
- pg-gvm
- pg-semver
- pg_auto_failover
- pg_bigm
- pg_cron
- pg_ed25519
- pg_embedding
- pg_hint_plan
- pg_hll
- pg_ivm
- pg_libversion
- pg_net
- pg_partman
- pg_rational
- pg_relusage
- pg_repack
- pg_roaringbitmap
- pg_safeupdate
- pg_similarity
- pg_squeeze
- pg_topn
- pg_uuidv7
- pgaudit
- pgjwt
- pgmq
- pgroonga
- pgrouting
- pgsodium
- pgsql-http
- pgtap
- pgvecto-rs
- pgvector
- pgx_ulid
- plpgsql_check
- plr
- plv8
- postgis
- repmgr
- rum
- smlar
- sqlite_fdw
- system_stats
- tds_fdw
- temporal_tables
- timescaledb
- timescaledb-apache
- timescaledb_toolkit
- tsja
- wal2json
Type: null or (function that evaluates to a(n) list of package)
Default:
null
Example:
extensions: [
extensions.pg_cron
extensions.postgis
extensions.timescaledb
];
Declared by:
perSystem.devenv.shells.<name>.services.postgres.hbaConf
The contents of a custom pg_hba.conf file to copy into the postgres installation. This allows for custom connection rules that you want to establish on the server.
Type: null or string
Default:
null
Example:
builtins.readFile ./my-custom/directory/to/pg_hba.conf
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initdbArgs
Additional arguments passed to initdb
during data dir
initialisation.
Type: list of strings concatenated with “\n”
Default:
[
"--locale=C"
"--encoding=UTF8"
]
Example:
[
"--data-checksums"
"--allow-group-access"
]
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialDatabases
List of database names and their initial schemas that should be used to create databases on the first startup of Postgres. The schema attribute is optional: If not specified, an empty database is created.
Type: list of (submodule)
Default:
[ ]
Example:
[
{
name = "foodatabase";
schema = ./foodatabase.sql;
}
{ name = "bardatabase"; }
]
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialDatabases.*.name
The name of the database to create.
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialDatabases.*.pass
Password of owner of the database (only takes effect if user
is not null
).
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialDatabases.*.schema
The initial schema of the database; if null (the default), an empty database is created.
Type: null or path
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialDatabases.*.user
Username of owner of the database (if null, the default $USER is used).
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.postgres.initialScript
Initial SQL commands to run during database initialization. This can be multiple SQL expressions separated by a semi-colon.
Type: null or string
Default:
null
Example:
CREATE ROLE postgres SUPERUSER;
CREATE ROLE bar;
Declared by:
perSystem.devenv.shells.<name>.services.postgres.listen_addresses
Listen address
Type: string
Default:
""
Example:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.postgres.port
The TCP port to accept connections.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
5432
Declared by:
perSystem.devenv.shells.<name>.services.postgres.settings
PostgreSQL configuration. Refer to
https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE
for an overview of postgresql.conf
.
String values will automatically be enclosed in single quotes. Single quotes will be escaped with two single quotes as described by the upstream documentation linked above.
Type: attribute set of (boolean or floating point number or signed integer or string)
Default:
{ }
Example:
{
log_connections = true;
log_statement = "all";
logging_collector = true
log_disconnections = true
log_destination = lib.mkForce "syslog";
}
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.enable
Whether to enable the RabbitMQ server, an Advanced Message Queuing Protocol (AMQP) broker.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.package
Which rabbitmq package to use.
Type: package
Default:
pkgs.rabbitmq-server
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.configItems
Configuration options in RabbitMQ’s new config file format,
which is a simple key-value format that can not express nested
data structures. This is known as the rabbitmq.conf
file,
although outside NixOS that filename may have Erlang syntax, particularly
prior to RabbitMQ 3.7.0.
If you do need to express nested data structures, you can use
config
option. Configuration from config
will be merged into these options by RabbitMQ at runtime to
form the final configuration.
See https://www.rabbitmq.com/configure.html#config-items
For the distinct formats, see https://www.rabbitmq.com/configure.html#config-file-formats
Type: attribute set of string
Default:
{ }
Example:
{
"auth_backends.1.authn" = "rabbit_auth_backend_ldap";
"auth_backends.1.authz" = "rabbit_auth_backend_internal";
}
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.cookie
Erlang cookie is a string of arbitrary length which must be the same for several nodes to be allowed to communicate. Leave empty to generate automatically.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.listenAddress
IP address on which RabbitMQ will listen for AMQP
connections. Set to the empty string to listen on all
interfaces. Note that RabbitMQ creates a user named
guest
with password
guest
by default, so you should delete
this user if you intend to allow external access.
Together with ‘port’ setting it’s mostly an alias for
configItems.“listeners.tcp.1” and it’s left for backwards
compatibility with previous version of this module.
Type: string
Default:
"127.0.0.1"
Example:
""
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.managementPlugin.enable
Whether to enable the management plugin.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.managementPlugin.port
On which port to run the management plugin
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
15672
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.nodeName
The name of the RabbitMQ node. This is used to identify
the node in a cluster. If you are running multiple
RabbitMQ nodes on the same machine, you must give each
node a unique name. The name must be of the form
name@host
, where name
is an arbitrary name and
host
is the domain name of the host.
Type: string
Default:
"rabbit@localhost"
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.pluginDirs
The list of directories containing external plugins
Type: list of path
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.plugins
The names of plugins to enable
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.rabbitmq.port
Port on which RabbitMQ will listen for AMQP connections.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
5672
Declared by:
perSystem.devenv.shells.<name>.services.redis.enable
Whether to enable Redis process and expose utilities.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.redis.package
Which package of Redis to use
Type: package
Default:
pkgs.redis
Declared by:
perSystem.devenv.shells.<name>.services.redis.bind
The IP interface to bind to.
null
means “all interfaces”.
Type: null or string
Default:
"127.0.0.1"
Example:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.redis.extraConfig
Additional text to be appended to redis.conf
.
Type: strings concatenated with “\n”
Default:
"locale-collate C"
Declared by:
perSystem.devenv.shells.<name>.services.redis.port
The TCP port to accept connections. If port 0 is specified Redis, will not listen on a TCP socket and a unix socket file will be found at $REDIS_UNIX_SOCKET.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
6379
Declared by:
perSystem.devenv.shells.<name>.services.sqld.enable
Whether to enable sqld.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.sqld.extraArgs
Add other sqld flags.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.sqld.port
Port number to listen on
Type: signed integer
Default:
8080
Declared by:
perSystem.devenv.shells.<name>.services.tailscale.funnel.enable
Whether to enable Tailscale funnel.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.tailscale.funnel.target
Target host or host:port for Tailscale funnel
Type: string
Declared by:
perSystem.devenv.shells.<name>.services.temporal.enable
Whether to enable Temporal process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.temporal.package
Which package of Temporal to use.
Type: package
Default:
pkgs.temporal-cli
Declared by:
perSystem.devenv.shells.<name>.services.temporal.ip
IPv4 address to bind the frontend service to.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.temporal.namespaces
Specify namespaces that should be pre-created (namespace “default” is always created).
Type: list of string
Default:
[ ]
Example:
[
"my-namespace"
"my-other-namespace"
]
Declared by:
perSystem.devenv.shells.<name>.services.temporal.port
Port for the frontend gRPC service.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
7233
Declared by:
perSystem.devenv.shells.<name>.services.temporal.state
State configuration.
Type: submodule
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.temporal.state.ephemeral
When enabled, the Temporal state gets lost when the process exists.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.temporal.state.sqlite-pragma
Sqlite pragma statements
Type: attribute set of string
Default:
{ }
Example:
{
journal_mode = "wal";
synchronous = "2";
}
Declared by:
perSystem.devenv.shells.<name>.services.temporal.ui
UI configuration.
Type: submodule
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.temporal.ui.enable
Enable the Web UI.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.temporal.ui.ip
IPv4 address to bind the Web UI to.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.temporal.ui.port
Port for the Web UI.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
services.temporal.port
+ 1000
Declared by:
perSystem.devenv.shells.<name>.services.tideways.enable
Whether to enable Tideways profiler daemon
It automatically installs Tideways PHP extension. .
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.tideways.apiKey
Sets the API-Key for the Tideways Daemon.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.tideways.cliPackage
Which package of tideways-cli to use
Type: package
Default:
pkgs.tideways-cli
Declared by:
perSystem.devenv.shells.<name>.services.tideways.daemonPackage
Which package of tideways-daemon to use
Type: package
Default:
pkgs.tideways-daemon
Declared by:
perSystem.devenv.shells.<name>.services.tideways.environment
Sets the Environment for Tideways Daemon.
Type: string
Default:
"devenv"
Declared by:
perSystem.devenv.shells.<name>.services.tideways.profilingSpace
When the profiling space is enabled, the default monitoring will be disabled.
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.tideways.service
Sets the Service name for Tideways Daemon.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.enable
Whether to enable Apache Traffic Server.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.package
Apache Traffic Server package
Type: package
Default:
pkgs.trafficserver
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.cache
Caching rules that overrule the origin’s caching policy.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
"dest_domain=example.com suffix=js action=never-cache"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.hosting
Partition the cache according to origin server or domain
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
"domain=example.com volume=1"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.ipAllow
Control client access to Traffic Server and Traffic Server connections to upstream servers.
Consult the upstream documentation for more details.
Type: null or YAML value
Default: upstream defaults
Example:
{
ip_allow = [{
apply = "in";
ip_addrs = "127.0.0.1";
action = "allow";
methods = "ALL";
}];
}
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.logging
Configure logs.
Consult the upstream documentation for more details.
Type: null or YAML value
Default: upstream defaults
Example:
{ }
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.parent
Identify the parent proxies used in an cache hierarchy.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
''
dest_domain=. method=get parent="p1.example:8080; p2.example:8080" round_robin=true
''
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.plugins
Controls run-time loadable plugins available to Traffic Server, as well as their configuration.
Consult the upstream documentation for more details.
Type: list of (submodule)
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.plugins.*.arg
arguments to pass to the plugin
Type: string
Default:
""
Example:
"--header=ATS-My-Debug"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.plugins.*.path
Path to plugin. The path can either be absolute, or relative to the plugin directory.
Type: string
Example:
"xdebug.so"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.records
List of configurable variables used by Traffic Server.
Consult the upstream documentation for more details.
When defining the values for the option x.y
, a nested attribute should
be used. Using a flat attribute set with the attribute name x.y
will
result in an error.
If options for both x.y
and x.y.z
needs to be set, you can set
x.y._
as x.y
. This only applies to Traffic Server versions prior to
10. Traffic Server 10 and onwards uses YAML configuration, which doesn’t
have this kind of problem.
Type: Traffic Server records value
Default:
{ }
Example:
{
proxy = {
config = {
proxy_name = "my_server";
};
};
}
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.remap
URL remapping rules used by Traffic Server.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
"map http://from.example http://origin.example"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.runroot
File layout used by Traffic Server
Type: unspecified value (read only)
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.sni
Configure aspects of TLS connection handling for both inbound and outbound connections.
Consult the upstream documentation for more details.
Type: null or YAML value
Default:
null
Example:
{
sni = [{
fqdn = "no-http2.example.com";
https = "off";
}];
}
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.splitDns
Specify the DNS server that Traffic Server should use under specific conditions.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
''
dest_domain=internal.corp.example named="255.255.255.255:212 255.255.255.254" def_domain=corp.example search_list="corp.example corp1.example"
dest_domain=!internal.corp.example named=255.255.255.253
''
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.sslMulticert
Configure SSL server certificates to terminate the SSL sessions.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
""
Example:
"dest_ip=* ssl_cert_name=default.pem"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.storage
List all the storage that make up the Traffic Server cache.
Consult the upstream documentation for more details.
Type: strings concatenated with “\n”
Default:
"${config.services.traffic-server.runroot.cachedir} 256M"
Example:
"/dev/disk/by-id/XXXXX volume=1"
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.strategies
Specify the next hop proxies used in an cache hierarchy and the algorithms used to select the next proxy.
Consult the upstream documentation for more details.
Type: null or YAML value
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.trafficserver.volume
Manage cache space more efficiently and restrict disk usage by creating cache volumes of different sizes.
Consult the upstream documentation for more details.
Type: null or YAML value
Default:
""
Example:
"volume=1 scheme=http size=20%"
Declared by:
perSystem.devenv.shells.<name>.services.typesense.enable
Whether to enable typesense process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.typesense.package
Which package of typesense to use
Type: package
Default:
pkgs.typesense
Declared by:
perSystem.devenv.shells.<name>.services.typesense.additionalArgs
Additional arguments passed to typesense
.
Type: list of strings concatenated with “\n”
Default:
[ ]
Example:
[ ]
Declared by:
perSystem.devenv.shells.<name>.services.typesense.apiKey
API Key.
Type: string
Default:
"example"
Declared by:
perSystem.devenv.shells.<name>.services.typesense.host
The HTTP host to accept connections.
Type: string
Default:
"127.0.0.1"
Declared by:
perSystem.devenv.shells.<name>.services.typesense.port
The HTTP port to accept connections.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8108
Declared by:
perSystem.devenv.shells.<name>.services.typesense.searchOnlyKey
Search Only Key.
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.services.varnish.enable
Whether to enable Varnish process and expose utilities.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.varnish.package
Which Varnish package to use.
Type: package
Default:
pkgs.varnish
Declared by:
perSystem.devenv.shells.<name>.services.varnish.extraModules
Varnish modules (except ‘std’).
Type: list of package
Default:
[ ]
Example:
[ pkgs.varnish73Packages.modules ]
Declared by:
perSystem.devenv.shells.<name>.services.varnish.listen
Which address to listen on.
Type: string
Default:
"127.0.0.1:6081"
Declared by:
perSystem.devenv.shells.<name>.services.varnish.memorySize
How much memory to allocate to Varnish.
Type: string
Default:
"64M"
Declared by:
perSystem.devenv.shells.<name>.services.varnish.vcl
Varnish VCL configuration.
Type: strings concatenated with “\n”
Default:
''
vcl 4.0;
backend default {
.host = "127.0.0.1";
.port = "80";
}
''
Declared by:
perSystem.devenv.shells.<name>.services.vault.enable
Whether to enable vault process.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.vault.package
Which package of Vault to use.
Type: package
Default:
pkgs.vault-bin
Declared by:
perSystem.devenv.shells.<name>.services.vault.address
Specifies the address to bind to for listening
Type: string
Default:
"127.0.0.1:8200"
Declared by:
perSystem.devenv.shells.<name>.services.vault.disableClustering
Specifies whether clustering features such as request forwarding are enabled
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.vault.disableMlock
Disables the server from executing the mlock syscall
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.vault.ui
Enables the built-in web UI
Type: boolean
Default:
true
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.enable
Whether to enable WireMock.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.package
Which package of WireMock to use.
Type: package
Default:
pkgs.wiremock
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.disableBanner
Whether to disable print banner logo.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.mappings
The mappings to mock. See the JSON examples on https://wiremock.org/docs/stubbing/ for more information.
Type: JSON value
Default:
[ ]
Example:
[
{
request = {
method = "GET";
url = "/body";
};
response = {
body = "Literal text to put in the body";
headers = {
Content-Type = "text/plain";
};
status = 200;
};
}
{
request = {
method = "GET";
url = "/json";
};
response = {
jsonBody = {
someField = "someValue";
};
status = 200;
};
}
]
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.port
The port number for the HTTP server to listen on.
Type: signed integer
Default:
8080
Declared by:
perSystem.devenv.shells.<name>.services.wiremock.verbose
Whether to log verbosely to stdout.
Type: boolean
Default:
false
Declared by:
perSystem.devenv.shells.<name>.starship.enable
Whether to enable the Starship.rs command prompt.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.starship.package
The Starship package to use.
Type: package
Default:
pkgs.starship
Declared by:
perSystem.devenv.shells.<name>.starship.config.enable
Whether to enable Starship config override.
Type: boolean
Default:
false
Example:
true
Declared by:
perSystem.devenv.shells.<name>.starship.config.path
The Starship configuration file to use.
Type: path
Default:
${config.env.DEVENV_ROOT}/starship.toml
Declared by:
perSystem.devenv.shells.<name>.stdenv
The stdenv to use for the developer environment.
Type: package
Default:
pkgs.stdenv
Declared by:
perSystem.devenv.shells.<name>.tasks
A set of tasks.
Type: attribute set of (submodule)
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.package
Package to install for this task.
Type: package
Default:
pkgs.bash
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.after
List of tasks to run after this task.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.before
List of tasks to run before this task.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.binary
Override the binary name if it doesn’t match package name
Type: string
Default:
config.package.pname
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.description
Description of the task.
Type: string
Default:
""
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.exec
Command to execute the task.
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.exports
List of environment variables to export.
Type: list of string
Default:
[ ]
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.input
Input values for the task, encoded as JSON.
Type: attribute set of anything
Default:
{ }
Declared by:
perSystem.devenv.shells.<name>.tasks.<name>.status
Check if the command should be ran
Type: null or string
Default:
null
Declared by:
perSystem.devenv.shells.<name>.unsetEnvVars
A list of removed environment variables to make the shell/direnv more lean.
Type: list of string
Default:
[
"HOST_PATH"
"NIX_BUILD_CORES"
"__structuredAttrs"
"buildInputs"
"buildPhase"
"builder"
"depsBuildBuild"
"depsBuildBuildPropagated"
"depsBuildTarget"
"depsBuildTargetPropagated"
"depsHostHost"
"depsHostHostPropagated"
"depsTargetTarget"
"depsTargetTargetPropagated"
"dontAddDisableDepTrack"
"doCheck"
"doInstallCheck"
"nativeBuildInputs"
"out"
"outputs"
"patches"
"phases"
"preferLocalBuild"
"propagatedBuildInputs"
"propagatedNativeBuildInputs"
"shell"
"shellHook"
"stdenv"
"strictDeps"
]
Declared by: