Skip to content

Docker Setup ​

Gridfinity Builder can be run entirely via Docker with no local Node.js installation required.

Quick Start ​

bash
git clone https://github.com/tunelko/gridfinity-BambuLab-3D.git
cd gridfinity-BambuLab-3D
docker compose build --no-cache
docker compose up -d

The app will be available at http://localhost:5173.

How it works ​

Both services use multi-stage builds: a node:24-alpine stage compiles the static site (npm run build / vitepress build), and an nginx:alpine stage serves the resulting files. The running containers contain no Node runtime, no source code and no dev server — only static assets behind nginx.

ServiceHost portServes
app5173Vite production build (dist/)
docs4173VitePress build (.vitepress/dist/)

To deploy changed source, rebuild the relevant image and recreate its container. The GitHub workflows currently test and scan the repository; they do not perform this deployment.

Useful Commands ​

CommandDescription
docker compose build app docsRebuild the two project images; this Compose file already sets no_cache: true
docker compose up -dStart in background
docker compose logs --tail 30View recent logs
docker compose downStop the containers

The repository deliberately disables build caching in Compose. This is a project setting, not a general requirement for Docker to pick up changed source files.

Local development ​

For hot-reload development, run Vite directly (outside Docker):

bash
npm ci
npm run dev

WARNING

Do not expose npm run dev to the internet. The Vite dev server serves project files and is not hardened for public traffic — that is exactly what the nginx production images exist for.