shell.nix
Rama main · réplica de lectura del repositorio original.
{ pkgs ? import <nixpkgs> {} }:
let
linuxPackages = pkgs.lib.optionals pkgs.stdenv.isLinux (with pkgs; [
# Chromium for Puppeteer
chromium
# Required Chromium libraries
glib
nss
nspr
atk
cups
dbus
libdrm
libxcomposite
libxdamage
libxext
libxfixes
libxrandr
libxcb
expat
alsa-lib
pango
cairo
at-spi2-atk
at-spi2-core
# Required for pip-installed native extensions (numpy, chromadb, etc.)
stdenv.cc.cc.lib
zlib
]);
in
pkgs.mkShell {
buildInputs = (with pkgs; [
# Node.js and bun for running the widget
nodejs_24
bun
ffmpeg-headless
just
# uv for Python package management
uv
]) ++ linuxPackages;
shellHook = ''
echo "MindRoom Development Shell"
echo "Tools available: uv, bun, nodejs, python3, just"
${pkgs.lib.optionalString pkgs.stdenv.isLinux ''
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export PUPPETEER_EXECUTABLE_PATH=${pkgs.chromium}/bin/chromium
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib pkgs.zlib ]}:$LD_LIBRARY_PATH"
echo "Linux Chromium available: $PUPPETEER_EXECUTABLE_PATH"
''}
echo ""
echo "Run MindRoom locally:"
echo " ./run-nix.sh # Start backend + frontend"
echo ""
echo "Run tests:"
echo " uv run pytest -q # Backend tests"
echo " cd frontend && bun test # Frontend tests"
'';
}