Démo web
Consulter Ğchange dans le navigateur — aucune installation.
Contenu généré par IA. Cette page a été rédigée avec l’aide d’une IA et n’a pas encore été entièrement relue — elle peut comporter des imprécisions.
La démo web permet de chercher et consulter les annonces et profils, et de voir la carte des membres, directement dans le navigateur. Le cœur du nœud tourne dans la page (compilé en WebAssembly) : il n’y a rien à installer, et rien n’est envoyé à un serveur pour afficher ce qui est consulté.
Pourquoi lecture seule
Publier suppose de signer ses données avec sa clé privée et de les diffuser en pair-à-pair — deux choses qu’un onglet de navigateur fait mal : pas d’accès réseau UDP direct, et manipuler une clé privée dans une page web est risqué. La démo web est donc une passerelle de consultation (comme une passerelle IPFS) ; pour publier, il faut passer par l’app desktop.
Construire et servir
git clone https://git.duniter.org/HugoTrentesaux/datapod
cd datapod/app
flutter build web --release -t lib/main_web.dart
# → build/web/ : dossier statique, servable par n'importe quel serveur HTTPbuild/web/ peut être déposé tel quel sur n’importe quel
hébergement statique (pas de backend, pas de base de données à installer
côté serveur).
Alimenter la démo en données réelles
Au premier chargement, la page démarre vide (ou reprend ce qu’un visiteur précédent avait déjà reçu, gardé dans le stockage du navigateur). Pour la faire partir avec les données d’un vrai serveur Ğchange, il faut lui donner deux valeurs : l’URL d’un relais (canal WebSocket, pas d’UDP requis) et le ticket du serveur à suivre.
C’est un réglage de compilation, pas d’exécution. Un
bundle web est un dossier de fichiers statiques : il
n’a aucune configuration à lire au lancement. Le relais et le ticket
sont donc figés dans le build. Deux façons de les
passer, qui aboutissent au même couple
<relais>|<ticket> :
# Dev — directement, en une variable :
flutter build web --release -t lib/main_web.dart \
--dart-define=GC_SYNC=<url-du-relais>|<ticket-du-serveur>
# Build publiée — via un fichier de flavor (TRAME_RELAY + TRAME_BOOTSTRAP),
# que l'app recombine en <relais>|<ticket>. Voir docs/app-flavors.md.
flutter build web --release -t lib/main_web.dart \
--dart-define-from-file=flavors/geopod.jsonDans la flavor, TRAME_RELAY = l’URL du relais et
TRAME_BOOTSTRAP = le ticket du serveur ; c’est exactement
ce que GC_SYNC exprime d’un bloc. Au chargement, la page se
synchronise une fois via le relais puis affiche les annonces et profils
reçus — toujours en lecture seule.