Nix Development Environments
MERN Stack Environment:
# shell.nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
nodejs_20
nodePackages.npm
mongodb
redis
git
];
shellHook = ''
echo "MERN environment loaded"
echo "Node: $(node --version)"
echo "MongoDB: $(mongod --version | head -1)"
'';
}
Next.js Environment:
# shell.nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
nodejs_20
nodePackages.npm
nodePackages.pnpm
postgresql
redis
];
shellHook = ''
echo "Next.js environment ready"
export DATABASE_URL="postgresql://localhost/nextjs_dev"
'';
}
Django Environment:
# shell.nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
python311
python311Packages.pip
python311Packages.virtualenv
postgresql
redis
libpq
];
shellHook = ''
echo "Django environment loaded"
python -m venv venv
source venv/bin/activate
pip install django psycopg2-binary redis celery
'';
}
Quick Commands:
# Enter environment
nix-shell
# One-time setup
nix-shell --run "npm install"
# Run with specific nixpkgs
nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz