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
|
|
|
|
'';
|
|
|
|
|
|
})
|
|
|
|
|
|
];
|
|
|
|
|
|
}
|