Demo mode
Scope of the public demo, isolated build, and files that always stay local.
The demo is not a copy of the landing page. It is a build mode of the real product, documented in DEMO.md. Verified result: same repository as the product.
Public URL: demo.swissknife.lucas-homelab.fr.
Scope
- image conversions through Canvas and audio/video conversions through FFmpeg WASM;
- files remain inside the tab (
File+blob:); - no account, backend, or remote conversion service;
- a Demo badge in the header;
- FFmpeg core served from
/ffmpeg/ffmpeg-core.wasm; noindexand arobots.txtthat disallows all crawling.
Docker (docker-compose.yml / docker-compose.build.yml) remains the self-hosted instance: no badge and no noindex.
Local preview
npm run build:demo
npx vite preview --port 2499The product's vercel.json builds this mode only (npm run build:demo, VITE_DEMO=true). The Dockerfile continues to run npm run build.
Indexing
The demo build injects noindex, nofollow, a robots.txt that disallows all crawling, and an X-Robots-Tag header on Vercel.
WASM in the demo
Useful check: /ffmpeg/ffmpeg-core.wasm must return 200 with Content-Type: application/wasm. Without COOP/COEP, the audio/video engine cannot start.