Page publique de suivi LIVE du bot Dofus (projet perso de Matt). Montre la
derniere capture d'ecran du bot + son etat, avec rafraichissement a la demande.
Un tableau de bord web, ouvrable depuis n'importe ou (telephone/PC) sans passer
par la webapp AIOS, protege par un lien secret. A chaque rafraichissement (auto
toutes les 25s), la page demande a l'agent du PC une capture fraiche (pull a la
demande) : la fraicheur descend a ~45s pendant une run (cadence du heartbeat du
bot), contre 5 min pour les notifications.
https://dofus-bot.panelbay.com/?k=SECRET
Le secret est dans .env (DOFUS_LIVE_SECRET). Sans le bon ?k=, toutes les
routes renvoient 403. Ne pas partager le lien complet.
DOFUS_LIVE_PORT dans .env).aios-dofus-live-monitor.service (enable + restart on-failure). systemctl {status|restart} aios-dofus-live-monitor.
/etc/nginx/sites-enabled/dofus-bot.panelbay.com.conf (proxy -> 8368),cert Let's Encrypt gere par certbot. DNS : A record panelbay.com via Cloudflare
(cree par la skill expose-webapp, provider cloudflare).
server.py : service web autonome (stdlib uniquement, aucun pip). Reutilise lib/dofus_live_report.py de l'AIOS (_pull_live_files, _publish_shot,
_req, PULLED_STATE, PUBLIC_SHOT, FRESH_MAX_S).
.env : DOFUS_LIVE_SECRET, DOFUS_LIVE_PORT.GET /?k=SECRET : tableau de bord HTML (auto-rafraichi).GET /api/state?k=SECRET : JSON {agent, running, fresh, state{coords, route_file,maps_done, sellers_total, etat, ts}, shot_ts}. Declenche un pull (au plus 1
toutes les 15s, verrou global anti-martelage).
GET /shot.png?k=SECRET : derniere capture publiee (/root/workspace/dofus-live/live.png).
http://127.0.0.1:8355 (backend dofus-market), token DOFUS_SYNC_TOKEN (lu depuis apps/dofus-market/backend/.env).
scraping_manuel.py) ecrit Data/live_shot.png + Data/live_state.json toutes les ~45s PENDANT une run. Hors run, la page
affiche "Aucune run en cours" et la derniere capture connue.
process du bot). Sans run, coords/maps/vendeurs restent a "-".
Complement de la page : les notifications 5 min (lib/dofus_live_report.py + cron)
restent actives en parallele.