SwissKnife Docs
Exploitation

Dépannage

Diagnostiquer un port occupé, un WASM absent, des en-têtes manquants ou un format refusé.

La page ne répond pas

  1. Vérifiez le port : 2501 pour Docker, 2499 pour Vite.
  2. Contrôlez le conteneur :
docker compose ps
docker compose logs --tail 100 swissknife
  1. Le healthcheck interroge http://127.0.0.1:8080/ à l'intérieur du conteneur. Un échec healthy indique Nginx, pas votre navigateur.

Le moteur audio/vidéo ne se charge pas

  • ouvrez /ffmpeg/ffmpeg-core.wasm : il doit répondre 200 en application/wasm ;
  • vérifiez Cross-Origin-Opener-Policy: same-origin et Cross-Origin-Embedder-Policy: require-corp sur le document ;
  • un reverse proxy a pu retirer ces en-têtes : Reverse proxy ;
  • le premier chargement télécharge ~32 Mo : un réseau lent peut atteindre le délai de 120 s ;
  • les images seules n'ont pas besoin du moteur : un PNG vers JPG peut réussir alors que MP3 échoue.

La console (bouton Console) affiche le journal FFmpeg.

docker compose up échoue

  • port hôte déjà pris : changez 2501:8080 en 8088:8080 ;
  • image GHCR indisponible : construisez avec docker compose -f docker-compose.build.yml up -d --build ;
  • droits insuffisants pour lancer Docker.

Un fichier est refusé

PDF, texte et types inconnus n'entrent pas dans la file. GIF va en vidéo. TIFF/BMP en image seulement si le navigateur les décode. Tableau : Formats.

La démo n'affiche pas la pastille

Vous êtes probablement sur le produit normal (npm run dev ou image GHCR). La pastille existe dans build:demo / Vercel.

Conversion qui sature l'onglet

À partir de 50 Mo, l'avertissement est attendu. Fermez d'autres onglets, convertissez un fichier à la fois, ou réduisez la source. Il n'y a pas de file distante pour décharger la mémoire.

Qualité du checkout produit

npm run lint
npm test
npm run build

On this page