What
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m21s

This commit is contained in:
2025-12-22 15:25:02 -07:00
parent ecfc163255
commit a7d8510f93
5 changed files with 15 additions and 170 deletions

View File

@@ -1,84 +0,0 @@
{
description = "Development environment for atashdotdev with Node and pnpm";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
version = (pkgs.lib.importJSON ./package.json).version;
app = pkgs.stdenv.mkDerivation {
pname = "atashdotdev";
inherit version;
src = ./.;
nativeBuildInputs = with pkgs; [ nodejs_24 nodePackages.pnpm cacert ];
buildPhase = ''
export HOME=$TMPDIR
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
pnpm install --frozen-lockfile
pnpm build
'';
installPhase = ''
mkdir -p $out/lib/app
cp -r dist package.json pnpm-lock.yaml $out/lib/app/
cd $out/lib/app && pnpm install --prod --frozen-lockfile
mkdir -p $out/bin
echo '#!/bin/sh
cd $out/lib/app
exec ${pkgs.nodejs_24}/bin/node ./dist/server/entry.mjs "$@"' > $out/bin/atashdotdev
chmod +x $out/bin/atashdotdev
'';
};
in
{
# Dev shell
devShells.default = pkgs.mkShell {
packages = with pkgs; [ nodejs_24 nodePackages.pnpm ];
shellHook = ''
echo "🚀 atashdotdev development environment loaded!"
echo "Node version: $(node --version)"
echo "pnpm version: $(pnpm --version)"
if [ ! -d "node_modules" ]; then
echo "📦 Installing pnpm dependencies..."
pnpm install --frozen-lockfile
fi
'';
};
# nix run - run the dev server
apps.default = {
type = "app";
program = "${pkgs.writeShellScript "dev" ''
export PATH="${pkgs.nodejs_24}/bin:${pkgs.nodePackages.pnpm}/bin:$PATH"
if [ ! -d "node_modules" ]; then
pnpm install --frozen-lockfile
fi
pnpm dev
''}";
};
# nix build - build the container
packages.default = pkgs.dockerTools.buildLayeredImage {
name = "atashdotdev";
tag = "latest";
contents = with pkgs; [ app nodejs_24 bash coreutils ];
config = {
Cmd = [ "${app}/bin/atashdotdev" ];
ExposedPorts."4321/tcp" = {};
Env = [ "NODE_ENV=production" "HOST=0.0.0.0" "PORT=4321" ];
WorkingDir = "${app}/lib/app";
};
};
});
}