En résumé
La méthode la plus légère : Node.js seul, ni backend, ni base de données, ni comptes. Tout tourne dans le navigateur. En contrepartie, pas d’entrepôt distant, pas de versioning Git et pas de partage entre utilisateurs. C’est le bon choix pour découvrir Linkr, travailler seul·e sur des fichiers locaux, ou publier une instance en site statique.
Prérequis
- Node.js 20+ et npm (nodejs.org).
- Git, et Git LFS pour récupérer les données de démonstration.
- Environ 1 Go d’espace disque.
Installation
Les commandes sont les mêmes sur macOS, Linux et Windows.
Cloner le dépôt
git clone https://framagit.org/interhop/linkr/linkr.git
cd linkrInstaller les dépendances
Comptez de quelques dizaines de secondes à 2 minutes.
npm installLancer Linkr
Ouvrez ensuite http://localhost:3000.
npm run dev:web C'est installé
Linkr tourne dans votre navigateur. Les sections suivantes sont à consulter au besoin : données de démonstration, publication en site statique, dépannage.
Récupérer les données de démonstration
Le jeu de démonstration (la base MIMIC-IV demo et les projets d’exemple) n’est pas dans le dépôt, et npm run dev:web ne le télécharge pas, pour ne pas exiger de connexion réseau. Lancez cette commande une fois pour l’ajouter à votre instance locale :
npm run data:fetch
Ce que le mode client-only permet, et ce qu’il ne permet pas, est détaillé dans Modes de déploiement.
Publier en site statique
Deux commandes, depuis la racine du dépôt. La première embarque le jeu de démonstration dans le site ; sans elle, l’instance publiée démarre vide. La seconde compile l’application en fichiers statiques prêts à déployer :
npm run data:fetch
npm run build:client
build:client force le mode client-only, même si un apps/web/.env.local définit VITE_API_URL : c’est ce qui évite de publier un site qui attend un serveur et n’affiche qu’une page de connexion.
Le résultat se trouve dans apps/web/dist/. Vous pouvez l’envoyer tel quel sur :
- GitLab Pages : via
.gitlab-ci.yml(un exemple est fourni dans le dépôt). - GitHub Pages : push du contenu de
dist/sur une branchegh-pages.
Linkr gère ses adresses dans le navigateur : un lien direct vers un projet ne correspond à aucun fichier du dossier. Sur GitLab ou GitHub Pages, copiez index.html en 404.html (le .gitlab-ci.yml du dépôt le fait) ; sur nginx, renvoyez les chemins inconnus vers index.html (try_files $uri /index.html;).
- Netlify / Vercel / Cloudflare Pages : connecter le dépôt et pointer la sortie vers
apps/web/dist. - Serveur web classique (nginx, Apache) : copier
dist/dans le dossier servi.
Pour vérifier le résultat avant de l’envoyer, npm run preview (toujours dans apps/web) sert le build localement.
Servir en HTTPS
DuckDB-WASM et certaines API modernes (File System Access) nécessitent un contexte sécurisé : HTTPS, ou HTTP uniquement sur localhost. Si vous hébergez Linkr sur un domaine, activez HTTPS.
Dépannage
npm install échoue. Vérifiez que vous utilisez bien Node.js 20+ (node -v). Si vous avez plusieurs versions de Node.js, utilisez nvm use 20.
Port 3000 déjà pris. Le script de dev vous propose automatiquement un autre port, ou fermez le processus qui l’occupe (lsof -i :3000 sur macOS/Linux).
L’application affiche une page de connexion. C’est que VITE_API_URL est défini, généralement dans apps/web/.env.local (créé par l’installation manuelle). Videz-le, ou lancez npm run dev:client, qui force le mode client-only.
Le build est très lourd. C’est normal en client-only : les runtimes DuckDB-WASM, Pyodide et webR pèsent plusieurs Mo chacun. Ils sont chargés à la demande par le navigateur, pas tous d’un coup.
Pour aller plus loin
- Passer au mode serveur, avec comptes et entrepôt : Installer avec Docker.
- Créer votre premier projet : Votre premier projet.