Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/juanmatz/inspection-form-euroautos/llms.txt

Use this file to discover all available pages before exploring further.

The Euroautos Inspection Form is a static web application — after running npm run build, the entire application is compiled into a dist/ directory containing plain HTML, CSS, and JavaScript files. Because there is no server-side rendering, the app can be deployed to any hosting platform that is capable of serving static files, from a global CDN to an intranet web server in the workshop itself.

Deployment options

Static Hosting

Deploy the dist/ folder to platforms like Vercel, Netlify, or GitHub Pages. These services handle HTTPS, CDN distribution, and automatic deployments from your Git repository. Ideal for workshops that need the form accessible over the internet.

Docker Container

Package the application in a Docker image with Nginx serving the static files. Suitable for workshops with an on-premise server or private cloud infrastructure that requires containerised deployments.

Nginx on VPS

Copy the dist/ output to a Linux VPS and serve it with Nginx. Gives you full control over server configuration, caching headers, and TLS certificates via Let’s Encrypt. A cost-effective option for workshops with existing server infrastructure.

Local Network Deployment

Serve the application from a local machine or Raspberry Pi on the workshop’s intranet. Technicians access the form on tablets or phones connected to the workshop Wi-Fi — no internet connection required after the initial deployment.

Build output

Running the build command produces a self-contained dist/ directory:
npm run build
dist/
├── index.html
├── assets/
│   ├── index-[hash].js      # Main application bundle
│   ├── index-[hash].css     # Compiled styles
│   └── vendor-[hash].js     # Third-party libraries
├── icons/
│   └── ...                  # PWA icon set
└── sw.js                    # Service worker for offline support
Every file in dist/ is static — there is no Node.js process, database, or server required. Copy the entire directory to your web root or upload it to your hosting provider.

Choosing a deployment

OptionBest ForHTTPSComplexity
Static CDN (Vercel / Netlify)Production deployments accessible over the internetAutomatic, managedLow — git push to deploy
Nginx on VPSWorkshops with existing Linux servers; full configuration controlLet’s Encrypt (Certbot)Medium — manual server setup
DockerOn-premise servers; reproducible, containerised environmentsReverse proxy (Traefik / Caddy)Medium — requires Docker knowledge
Local networkAir-gapped or intranet-only workshops; no internet requirementSelf-signed cert or mkcertLow–Medium — basic HTTP server

HTTPS requirement

The browser’s camera API (getUserMedia) and service worker registration both require a secure context (HTTPS). Deploying over plain HTTP will disable photo capture and offline functionality, significantly limiting the application’s usefulness.
  • For public deployments, use a managed platform (Vercel/Netlify) or obtain a free TLS certificate via Let’s Encrypt.
  • For local network deployments, generate a trusted local certificate with mkcert: mkcert 192.168.1.100 then configure Nginx to use the generated certificate.
  • localhost is treated as a secure context by all modern browsers, so the dev server (npm run dev) works without HTTPS.

Environment variables at build time

VITE_* environment variables are embedded into the JavaScript bundle at build time by the Vite compiler. They are not read from the server’s environment at runtime — unlike variables in a Node.js or server-rendered application. This means:
  • You must set all required variables in .env.production (or your CI/CD secrets) before running npm run build.
  • Changing an environment variable after the build has no effect — you must rebuild and redeploy.
  • The compiled dist/ output is environment-specific. Do not reuse the same build artefact across staging and production if the variables differ.
For CI/CD pipelines (GitHub Actions, GitLab CI, etc.), inject secrets as environment variables in your pipeline configuration rather than committing a .env.production file. The Vite build process will automatically pick them up from the process environment.

Build docs developers (and LLMs) love