Plan

Mettre en ligne une instance

En bref

  • Cinq étapes : configurer l'instance, publier ses données, créer le projet Vercel avec son domaine, ajouter le CNAME chez le registrar, vérifier l'adresse servie.
  • Une instance servie sous lucarne.vicode.fr est une démonstration : non indexée, avec un bandeau.

🛠️ Les étapes

D'un établissement candidat à son adresse publique

1. Configurer

Suivre Marque blanche : copier instances/paris1/, changer l'identifiant (celui de l'adresse), la charte, le périmètre (ROR, scanR, OpenAlex, HAL) et l'enregistrer dans src/config/index.ts. Les ROR des candidats sont dans le catalogue.

2. Publier les données

TerminalCode
pnpm data:probe --instance <id> # ce que les sources savent du périmètre pnpm data:extract --instance <id> # moisson complète pnpm data:build --instance <id> # data/public/<id>/, à commiter : Vercel ne moissonne pas

3. Créer le projet Vercel et rattacher le domaine

TerminalCode
pnpm vercel:project <id> --domain <id>.lucarne.vicode.fr --demo

--domain rattache l'adresse au projet et en fait l'adresse publique (NEXT_PUBLIC_SITE_URL) ; --demo pose NEXT_PUBLIC_DEMO=true. Pour la documentation : pnpm vercel:project docs --domain lucarne.vicode.fr.

Les projets existants gardent leur nom (saclay-research, paris1-research, saclay-research-docs) : changer le nom par défaut en créerait de nouveaux. Pour un projet existant, passer --name <nom actuel> si besoin.

4. Ajouter le CNAME

Chez le registrar de vicode.fr, un enregistrement par adresse :

NomTypeCible
lucarneCNAMEvaleur affichée par Vercel à l'étape 3
saclay.lucarneCNAMEidem
paris1.lucarneCNAMEidem
<id>.lucarneCNAMEidem, pour chaque nouvelle instance

Vercel peut demander un enregistrement TXT pour prouver la propriété de vicode.fr. Un CNAME générique (*.lucarne) éviterait d'en ajouter un par instance, mais Vercel exige alors de lui confier les serveurs DNS de tout vicode.fr.

5. Vérifier

TerminalCode
curl -s https://<id>.lucarne.vicode.fr/sitemap.xml | grep -m1 '<loc>' # l'adresse, pas localhost curl -s https://<id>.lucarne.vicode.fr/robots.txt # Disallow: / en démonstration

Puis ajouter l'instance à LIVE_INSTANCES (docs/src/components/Instances.tsx) : elle apparaît dans l'en-tête et sur l'accueil de la documentation. La passer en « En service » dans le catalogue.

Instance de démonstration

Une instance servie sous lucarne.vicode.fr porte la charte d'un établissement sans être son site. NEXT_PUBLIC_DEMO=true :

  • ferme robots.txt (Disallow: /) et pose noindex, nofollow sur chaque page ;
  • affiche en haut de chaque page : « Démonstration de Lucarne : ce site n'est pas le site officiel de l'établissement, et ses données ne sont pas validées. »

Sur le domaine officiel d'un établissement, la variable est retirée et le site redéployé.

État en ligne au 03/11/2026 : les projets Vercel existent et les trois adresses répondent (documentation, Paris-Saclay, Paris 1), mais les deux instances tournent sans NEXT_PUBLIC_DEMO ni NEXT_PUBLIC_SITE_URL : voir le catalogue.

Vérifié le 03/11/2026 sur un build complet de Paris 1 servi en local : robots.txt réduit à Disallow: /, balise noindex, nofollow et bandeau sur l'accueil et sur une fiche de structure, en français et en anglais ; le sitemap reste construit sur l'adresse publique. Test : tests/unit/demo.test.ts.