diff --git a/.gitignore b/.gitignore index c9f04da2..1fc27205 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,5 @@ logs/* # deployment proof_backups -*.todo \ No newline at end of file +*.todo +ui_out diff --git a/Makefile b/Makefile index 082a9d78..3a2f605c 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ else ALEMBIC := alembic endif -.PHONY: help setup test test-unit test-integration test-integration-docker test-all test-fast test-performance clean docker-up docker-down lint format type-check dev-setup check-deps db-upgrade db-downgrade db-current db-history db-migrate db-revision db-heads db-clean +.PHONY: help setup test test-unit test-integration test-integration-docker test-all test-fast test-performance clean docker-up docker-down lint format type-check dev-setup check-deps db-upgrade db-downgrade db-current db-history db-migrate db-revision db-heads db-clean ui-build ui-build-docker ui-dev # Default target help: @@ -40,8 +40,10 @@ help: @echo "" @echo "UI targets:" @echo " make ui-build - Build UI for production (static export)" + @echo " make ui-build-docker - Build UI using Docker (no Node.js needed)" @echo " make ui-dev - Start UI development server" @echo "" + @echo "Docker UI build requires only Docker, no local Node.js installation needed." @echo "Database migration shortcuts:" @echo " make create-migration - Auto-generate new migration" @echo " make db-upgrade - Apply all pending migrations" @@ -271,6 +273,13 @@ ui-build: @echo "🎨 Building UI for static deployment..." ./scripts/build-ui.sh +ui-build-docker: + @echo "🐳 Building UI using Docker (no Node.js installation required)..." + @echo "Building UI with environment variables from .env..." + docker build -f ui/Dockerfile.build -t routstr-ui-build --build-arg NEXT_PUBLIC_API_URL=$(NEXT_PUBLIC_API_URL) --build-arg NEXT_PUBLIC_ADMIN_API_KEY=$(NEXT_PUBLIC_ADMIN_API_KEY) . + docker run --rm -v $(PWD)/ui_out:/output routstr-ui-build cp -r /ui_out /output/ + @echo "✅ UI build complete! Static files available in ui_out/" + ui-dev: @echo "🎨 Starting UI development server..." cd ui && (command -v pnpm >/dev/null 2>&1 && pnpm run dev || npm run dev) diff --git a/scripts/build-ui.sh b/scripts/build-ui.sh index 9429100e..557c26db 100755 --- a/scripts/build-ui.sh +++ b/scripts/build-ui.sh @@ -49,7 +49,7 @@ else npm run build fi -mkdir ../ui_out +mkdir -p ../ui_out mv out/* ../ui_out # Clean up the temporary .env.local file diff --git a/ui/Dockerfile.build b/ui/Dockerfile.build index 11a5f6ab..484a64f5 100644 --- a/ui/Dockerfile.build +++ b/ui/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm run build && \ # Copy built files to the output directory RUN mkdir -p /output && \ - cp -r /app/out/* /output/ + cp -r /app/out/. /output/ # Use the builder stage as the final stage FROM node:23-alpine