# Variables IMAGE_NAME = flat-stack-presejpacky PORT = 3000 .PHONY: help install build dev start clean lint docker-build docker-run docker-stop help: @echo "Available commands:" @echo " make install - Install project dependencies" @echo " make dev - Run the application locally in development mode (Vite)" @echo " make build - Build the production assets" @echo " make start - Run the production build locally using Express" @echo " make clean - Remove build artifacts (dist/ and server.js)" @echo " make lint - Run TypeScript type checks" @echo " make docker-build - Build the Docker image" @echo " make docker-run - Run the Docker image locally on port $(PORT)" @echo " make docker-stop - Stop and remove the Docker container" install: docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine npm install dev: docker run -it --rm -p $(PORT):$(PORT) -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run dev" build: docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run build" start: docker run -it --rm -p $(PORT):$(PORT) -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run start" clean: docker run -it --rm -v $$(pwd):/app -w /app node:24-alpine npm run clean lint: docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run lint" docker-build: docker build -t $(IMAGE_NAME) . docker-run: docker run -d -p $(PORT):$(PORT) --name $(IMAGE_NAME) $(IMAGE_NAME) @echo "Container is running at http://localhost:$(PORT)" docker-stop: docker stop $(IMAGE_NAME) || true docker rm $(IMAGE_NAME) || true