Petit overlay Electron pour partager un ordre de cinq symboles entre un leader et des viewers, avec une page web consultable par URL.
- Electron pour creer des fenetres transparentes, toujours au-dessus, sans bordure.
focusable: falseetshowInactive()pour eviter que les clics overlay volent le focus de la fenetre active.- Un relais HTTP recoit les actions du leader, leur attribue une revision serveur et diffuse l'etat aux viewers par Server-Sent Events.
- Le leader et les viewers affichent une petite fenetre overlay de sequence, deplacable et sauvegardee localement.
- Les fenetres overlay et palette chargent directement la page web servie par le relais; le client web est donc la reference de rendu et de synchronisation.
- Le leader a en plus une palette d'icones deplacable, separee de l'affichage, elle aussi chargee depuis la page web.
- Une option permet de verrouiller le deplacement des overlays.
- Le relais sert aussi une interface web statique accessible directement depuis une URL, en mode viewer ou leader.
npm install
npm startPour produire l'exécutable portable Windows et le publier dans les fichiers statiques du site:
npm run build:publishLe fichier servi au téléchargement web est ensuite disponible dans server/public/downloads/Ura-Helper-windows-x64-portable.exe.
Pour produire l'image disque macOS (.dmg) et la publier dans les fichiers statiques du site:
npm run build:publish:macEn build local sur macOS, le fichier publie est disponible dans server/public/downloads/ sous le nom suivant:
Ura-Helper-macos-arm64.dmg
Attention: electron-builder ne peut pas produire les artefacts macOS depuis Windows. Si tu n'as pas de Mac, utilise le workflow GitHub Actions du depot. Il lance npm run build:mac sur macos-latest, puis commit automatiquement server/public/downloads/Ura-Helper-macos-arm64.dmg sur la branche par defaut pour que la page web le serve directement.
Comme le fichier depasse 100 Mo, le depot doit avoir Git LFS actif pour server/public/downloads/Ura-Helper-macos-arm64.dmg.
Le workflow est defini dans .github/workflows/build-macos.yml et peut etre lance manuellement depuis l'onglet Actions, ou automatiquement quand tu pousses un tag v*.
Le serveur fourni ecoute par defaut sur le port 8787.
npm run relaySur Linux, par exemple:
PORT=8787 npm run relayExpose ensuite ce service en HTTPS normal. Sur cPanel/02switch, le relais Node doit etre lance par l'application Node.js cPanel; aucune ouverture de port public manuel n'est necessaire.
La diffusion temps reel utilise Server-Sent Events via /api/rooms/<room>/events. Le test attendu est:
curl -N https://ura.syrion.site/api/rooms/ura-helper/eventsLa commande doit afficher un premier bloc event: state et rester ouverte. Les actions leader sont envoyees en POST sur /api/rooms/<room>/state.
Une fois le relais lance, la page web est servie sur la meme URL HTTP.
- En local:
http://127.0.0.1:8787/ - Derriere ton domaine:
https://ton-domaine/
Par defaut, la page web ouvre le flux temps reel du meme host et rejoint le salon ura-helper.
Parametres utiles:
?room=autre-salonpour consulter un autre salon?relay=https://ura.syrion.sitesi la page statique est hebergee ailleurs que le relais?mode=leaderpour piloter la sequence depuis le navigateur?view=overlaypour charger la vue compacte d'affichage utilisee par Electron?view=palette&mode=leaderpour charger la palette compacte utilisee par Electron
Exemples:
https://ton-domaine/?room=raid-alphahttps://viewer.ton-domaine/?room=raid-alpha&relay=https://ura.syrion.sitehttps://ton-domaine/?mode=leader&room=raid-alphahttps://ton-domaine/?view=overlay&room=raid-alpha
- Lancer l'app avec
npm start. - Choisir
LeaderouViewer. - Le leader choisit
Lancer en Leader; les autres choisissentLancer en Viewer. - La fenetre de controle se masque apres demarrage.
Ctrl+Shift+Ola fait reapparaitre. - Deplacer les overlays en tirant la poignee ou le fond de la petite fenetre, puis activer
Verrouiller le deplacementsi besoin. - Quand les cinq symboles sont definis, ils restent visibles 20 secondes, puis s'effacent automatiquement partout.
- Pour un viewer sans client lourd, ouvrir l'URL du relais dans un navigateur.
- Pour les jeux, utiliser de preference le mode fenetre sans bordure. Certains jeux en plein ecran exclusif DirectX peuvent rester au-dessus de tout overlay desktop.
- Le relais fourni ne gere pas encore d'authentification. Si tu l'exposes publiquement, ajoute un token ou filtre l'acces au niveau du proxy.
- Les positions des overlays sont sauvegardees dans les donnees utilisateur de l'application.
- Les etats publies portent un identifiant de source et une revision serveur pour eviter qu'une reponse plus ancienne ecrase un etat recent.
npm run check