diff --git a/Dockerfile b/Dockerfile index 8d5605e..bb18c46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ FROM node:20-slim AS runner LABEL maintainer="La Fabrik Durable" LABEL description="Secure GLTF upload interface with Draco compression and GitHub push" -# Install Blender (headless) + runtime helpers +# Blender is required for server-side Draco GLB export. RUN apt-get update && apt-get install -y --no-install-recommends \ blender \ tini \ @@ -41,18 +41,14 @@ ENV NEXT_TELEMETRY_DISABLED=1 ENV PORT=3000 ENV HOSTNAME=0.0.0.0 -# Copy build artifacts COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public -# Copy the Blender compression script COPY --from=builder /app/scripts ./scripts -# Ensure tmp dir for uploads exists RUN mkdir -p /tmp/assets -# Copy entrypoint COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh diff --git a/README.md b/README.md index 4e311f1..7225195 100644 --- a/README.md +++ b/README.md @@ -161,8 +161,8 @@ components/ │ ├── DriveErrorModal.tsx # "Drive failed, continue?" dialog │ └── ActionButtons.tsx # Upload / Cancel / Reset buttons ├── UploadZone.tsx # Main upload page (rendering only) -├── ModelViewer.tsx # Lazy wrapper for 3D viewer -└── SceneViewer.tsx # Three.js Canvas +├── ModelViewer.tsx # 3D viewer shell, stats panel, and hierarchy panel +└── SceneViewer.tsx # Three.js Canvas, model stats, and scene hierarchy extraction hooks/ ├── useSecret.ts # Secret key state management ├── useFolderEntries.ts # Folder entries state management @@ -170,7 +170,7 @@ hooks/ lib/ ├── constants.ts # Shared constants and extensions ├── types.ts # Server types (ParsedFile, FileDiff, staged asset metadata, etc.) -├── client-types.ts # Client types (FolderEntry, DriveStatus, etc.) +├── client-types.ts # Client types (FolderEntry, DriveStatus, viewer contracts, etc.) ├── upload-api.ts # Client-side API helpers (stage, check, uploadDrive, uploadGit) ├── guards.ts # Shared runtime guards and error message helpers ├── diff-files.ts # File diff classification (new/changed/unchanged/deleted) @@ -190,7 +190,7 @@ lib/ scripts/ └── compress.py # Blender Draco compression script Dockerfile # Multi-stage build: Node 20 slim + Blender + tini -docker-entrypoint.sh # Startup check + launch +docker-entrypoint.sh # Upload temp setup + Blender availability check ``` ## Installation @@ -259,6 +259,6 @@ Git delivery outputs `.glb` by default, or keeps the source `.gltf` structure wh ## License -See [MIT](LICENSE) License +See [MIT](LICENSE). Copyright 2026 La Fabrik Durable. All rights reserved.