Shared Development Packages
Every developer workstation – whether it runs NixOS, WSL2, or macOS – should start with the same solid toolbox.
This module provides that toolbox in a single, opt-in bundle so you can pick exactly the languages and utilities you need and ignore the rest.
Highlights
- Unified experience on Linux and Darwin
- Simple opt-in groups (
dc-tec.development-packages.tools.<group> = true)
(e.g.go,python,k8s,security, …) - Pre-configured Git, LSP servers, linters and modern CLI replacements
- Cloud & infrastructure tooling for Terraform, Kubernetes and the major public clouds
Quick start
Enable the module and select the groups you care about:
{
dc-tec.development-packages = {
enable = true;
# Pick any combination of groups
tools = {
go = true; # Go compiler + tooling
python = true; # Python 3 + LSP + Ruff
iac = true; # Terraform, Ansible, …
k8s = true; # kubectl, helm, kustomize, …
cloud = true; # AWS, Azure & Hetzner CLIs
dev = true; # just, httpie, pre-commit, …
infra = true; # HashiCorp Boundary / Consul / Nomad
security = true; # Vault, OpenBao
database = true; # PostgreSQL client
networking = true; # (reserved – coming soon)
};
};
}
All packages are installed through Home-Manager, so they live in the user profile and can be easily updated or removed.
Package groups
Go (tools.go)
go,gopls,golangci-lint,gosec,goreleaser
Python (tools.python)
python3,python-lsp-server,python-lsp-ruff,uv
Infrastructure-as-Code (tools.iac)
tenv,terraform-docs,tflint,terraform-lsansible,ansible-builder,ansible-lint
Kubernetes (tools.k8s)
kubectl,helm,kustomize,kube-linter,kubescapeargocd,cilium-cli,kubectl-cnpg,kubeseal,talosctl- Local clusters:
k3d,kind - Docs & RBAC helpers:
helm-docs,rakkess
Cloud (tools.cloud)
awscli2,azure-cli,hcloud
Developer tools (tools.dev)
devenv,just,pre-commit,httpie,bats,yaml-language-server,powershell,nodejs
Infrastructure (tools.infra)
packer,boundary,consul,nomad
Security (tools.security)
vault,openbao
Database (tools.database)
postgresqlclient and utilities
Behind the scenes
The module lives at modules/shared/development/{packages,git}.nix and is imported through
modules/shared/development/default.nix. When enabled it:
- Defines the option set under
dc-tec.development-packages.*. - Installs the selected package groups to the user profile via Home-Manager.
- Provides sensible Git defaults (signature enforcement, email per-project, etc.).
Feel free to cherry-pick only the parts you need. Everything is optional and composable.