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-ls
ansible
,ansible-builder
,ansible-lint
Kubernetes (tools.k8s
)
kubectl
,helm
,kustomize
,kube-linter
,kubescape
argocd
,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
)
postgresql
client 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.