Files
timmal/nix/shell.nix

77 lines
2.3 KiB
Nix
Raw Normal View History

2025-12-07 19:36:56 +01:00
{
inputs,
pkgs,
...
}:
2025-12-07 21:27:23 +01:00
inputs.devenv.lib.mkShell
{
2025-12-07 19:36:56 +01:00
inherit inputs pkgs;
modules = [
2025-12-07 21:27:23 +01:00
({
pkgs,
config,
...
}: {
2025-12-07 19:36:56 +01:00
packages = with pkgs; [
rustywind
nodePackages.prettier
nodePackages.eslint
# Node
nodejs_24
nodePackages.pnpm
2025-12-07 21:27:23 +01:00
playwright-driver.browsers
2025-12-07 19:36:56 +01:00
pocketbase
];
services.mailpit = {
enable = true;
# HTTP interface for viewing emails
uiListenAddress = "127.0.0.1:8025";
# SMTP server for receiving emails
smtpListenAddress = "127.0.0.1:1025";
};
processes = with pkgs; {
pocketbase.exec = "${pocketbase}/bin/pocketbase serve --dir ${config.devenv.root}/pb_data --dev";
dev.exec = "${nodePackages.pnpm}/bin/pnpm dev";
};
2025-12-07 21:27:23 +01:00
env = let
browsers = (builtins.fromJSON (builtins.readFile "${pkgs.playwright-driver}/browsers.json")).browsers;
chromium-rev = (builtins.head (builtins.filter (x: x.name == "chromium") browsers)).revision;
in {
PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright.browsers}";
PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = true;
PLAYWRIGHT_NODEJS_PATH = "${pkgs.nodejs}/bin/node";
PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH = "${pkgs.playwright.browsers}/chromium-${chromium-rev}/chrome-linux/chrome";
};
scripts.intro.exec = ''
playwrightNpmVersion="$(pnpm show @playwright/test version)"
echo " Playwright nix version: ${pkgs.playwright.version}"
echo "📦 Playwright pnpm version: $playwrightNpmVersion"
if [ "${pkgs.playwright.version}" != "$playwrightNpmVersion" ]; then
echo " Playwright versions in nix (in devenv.yaml) and pnpm (in package.json) are not the same! Please adapt the configuration."
else
echo " Playwright versions in nix and npm are the same"
fi
echo
env | grep ^PLAYWRIGHT
'';
2025-12-07 19:36:56 +01:00
enterShell = ''
echo "🚀 Nuxt.js development environment loaded!"
echo "📦 Node.js version: $(node --version)"
echo "📦 pnpm version: $(pnpm --version)"
echo ""
echo "Run 'pnpm install' to install dependencies"
echo "Run 'pnpm dev' to start the development server"
2025-12-07 21:27:23 +01:00
intro
2025-12-07 19:36:56 +01:00
'';
})
];
}