SwissKnife Docs
Operate SwissKnife

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;
  • noindex and a robots.txt that 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 2499

The 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.

On this page