Replace vanilla HTML with React + shadcn/ui + TailwindCSS scaffold

- Frontend: React 19 + Vite + TypeScript + TailwindCSS v4 + shadcn/ui
- Pre-installed shadcn/ui components: Button, Card, Input, Separator
- Multi-stage Dockerfile: build React client → serve with Express
- Server.js updated to serve built React SPA with API routes
- Sample landing page with shadcn/ui components demonstrating usage
- Path aliases (@/) configured in tsconfig + vite config
- components.json for easy `shadcn add <component>` usage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-18 15:50:02 +01:00
parent 3eeda1f347
commit 0e21d26c05
25 changed files with 3936 additions and 758 deletions

View File

@@ -1,3 +1,15 @@
FROM node:20-alpine AS builder
WORKDIR /app/client
# Install client dependencies and build
COPY client/package*.json ./
RUN npm install
COPY client/ ./
RUN npm run build
# --- Production stage ---
FROM node:20-alpine
ARG SOURCE_COMMIT=unknown
@@ -5,15 +17,17 @@ ARG APP_VERSION=1.0.0
WORKDIR /app
# Install curl for healthcheck
RUN apk add --no-cache curl
# Copy package files first for layer caching
# Install server dependencies
COPY package*.json ./
RUN npm install --production
# Copy app code
COPY . .
# Copy server code
COPY server.js ./
# Copy built React app from builder
COPY --from=builder /app/client/dist ./client/dist
ENV GIT_COMMIT=${SOURCE_COMMIT} \
APP_VERSION=${APP_VERSION}