Ton Miyoo Mini dans ton navigateur / Your Miyoo Mini in your browser
Un dashboard web complet pour contrĂŽler ta console Ă distance
A complete web dashboard to remotely control your console
MiyooDeck est un third-party pour Onion OS qui transforme ton Miyoo Mini (ou Mini+) en console contrĂŽlable depuis ton navigateur web. Ouvre l'interface sur ton PC ou smartphone, et tu peux :
App/WebDeck/ vers SDCARD/App/WebDeck/Carte SD/
âââ App/
âââ WebDeck/ â Copier tout ce dossier ici
âââ config.json
âââ launch.sh
âââ stop.sh
âââ webdeck (binaire ARM)
âââ www/ (interface web)
# Prérequis : Go 1.21+, Node.js 18+
git clone https://github.com/TON_USERNAME/miyoodeck
cd miyoodeck/webdeck
# Compiler le binaire ARM
cd server
export PATH="/c/Program Files/Go/bin:$PATH" # Windows
GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 \
go build -ldflags="-s -w" -o ../package/App/WebDeck/webdeck .
# Compiler le frontend
cd ../frontend
npm install && npm run build
# Le package est prĂȘt dans : webdeck/package/App/WebDeck/
http://192.168.1.42:8080| Onglet | Fonction |
|---|---|
| đ Tableau de bord | Stats systĂšme + gamepad + aperçu de l'Ă©cran en direct |
| đź Jeux | Parcourir et lancer des jeux par systĂšme |
| đ Fichiers | Uploader des ROMs, tĂ©lĂ©charger les sauvegardes |
| âïž Config | Ăditer les fichiers de configuration |
Le serveur tourne en arriĂšre-plan. Pour l'arrĂȘter :
# Via SSH sur la console
sh /mnt/SDCARD/App/WebDeck/stop.sh
Ou redémarre simplement la console.
| Port | Usage |
|---|---|
| 80 | Filebrowser Onion (existant) |
| 8080 | MiyooDeck |
MiyooDeck is an Onion OS third-party app that lets you control your Miyoo Mini (or Mini+) from any web browser on your local network. Open the interface on your PC or smartphone and get:
App/WebDeck/ to SDCARD/App/WebDeck/SD Card/
âââ App/
âââ WebDeck/ â Copy this entire folder here
âââ config.json
âââ launch.sh
âââ stop.sh
âââ webdeck (ARM binary)
âââ www/ (web interface)
# Requirements: Go 1.21+, Node.js 18+
git clone https://github.com/YOUR_USERNAME/miyoodeck
cd miyoodeck/webdeck
# Compile ARM binary
cd server
GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 \
go build -ldflags="-s -w" -o ../package/App/WebDeck/webdeck .
# Build frontend
cd ../frontend
npm install && npm run build
# Package ready at: webdeck/package/App/WebDeck/
http://192.168.1.42:8080| Tab | Function |
|---|---|
| đ Dashboard | System stats + gamepad controller + live screen |
| đź Games | Browse and launch games by system |
| đ Files | Upload ROMs, download save backups |
| âïž Config | Edit configuration files |
The server runs in the background. To stop it:
# Via SSH on the console
sh /mnt/SDCARD/App/WebDeck/stop.sh
Or simply restart the console.
MiyooDeck
âââ server/ Go backend (ARM daemon)
â âââ main.go HTTP server + auth + routing
â âââ system.go CPU/RAM/battery via /proc & /sys (async sampling)
â âââ files.go File listing, upload, zip extraction
â âââ games.go ROM listing + game launch
â âââ config.go Config file editor + .bak backup
â âââ screenshot.go /dev/fb0 â PNG (auto-detect 16/32-bit, FBIOGET_VSCREENINFO)
â âââ input.go Button injection â /dev/input/event0 (Onion keycodes)
â âââ websocket.go Real-time stats + screenshot broadcast (panic-safe)
â âââ mdns.go mDNS responder â miyoodeck.local
âââ frontend/ Svelte 4 + Vite SPA
âââ src/
âââ i18n.js FR/EN translations
âââ api.js API client + WebSocket
âââ App.svelte Layout + auth + lang switcher
âââ components/
âââ Dashboard.svelte Stats + gamepad + live screen
âââ Controller.svelte Gamepad UI (D-pad, ABXY, shouldersâŠ)
âââ GameLauncher.svelte
âââ FileManager.svelte
âââ ConfigEditor.svelte
Binary size: ~6.5 MB (stripped ARM)
Frontend size: ~63 KB JS + 24 KB CSS
Total package: ~6.6 MB
RAM usage: ~8 MB at rest, ~12 MB under load
MiyooDeck écrit une commande dans /mnt/SDCARD/.tmp_update/cmd_to_run.sh et envoie killall -9 MainUI. Le runtime Onion détecte ce fichier et lance le jeu automatiquement.
MiyooDeck writes a command to /mnt/SDCARD/.tmp_update/cmd_to_run.sh and sends killall -9 MainUI. Onion's runtime detects this file and launches the game automatically.
Le framebuffer /dev/fb0 est lu via FBIOGET_VSCREENINFO pour auto-détecter le format pixel au runtime : BGR565 16-bit (Miyoo Mini original) ou ABGR8888 32-bit (Miyoo Mini Plus). L'image est corrigée en rotation 180° et encodée en JPEG pour la diffusion WebSocket (5à plus rapide que PNG sur ARM).
The framebuffer /dev/fb0 is queried via FBIOGET_VSCREENINFO to auto-detect the pixel format at runtime: BGR565 16-bit (original Miyoo Mini) or ABGR8888 32-bit (Miyoo Mini Plus). The image is corrected for 180° rotation and encoded as JPEG for WebSocket streaming (5à faster than PNG on ARM).
Les pressions de boutons sont injectées dans /dev/input/event0 via des structs input_event Linux (16 octets, ARM 32-bit). Les codes touches correspondent à keymap_hw.h d'Onion OS.
Button presses are injected into /dev/input/event0 via Linux input_event structs (16 bytes, ARM 32-bit). Key codes match Onion OS's keymap_hw.h.
Aucun client WebSocket connectĂ© = la diffusion stats/screenshot s'arrĂȘte automatiquement pour Ă©conomiser les ressources du processeur.
No WebSocket clients connected = stats/screenshot broadcast stops automatically to save CPU resources.
/mnt/SDCARDMIT â Projet non officiel, non affiliĂ© Ă l'Ă©quipe Onion OS.
MIT â Unofficial project, not affiliated with the Onion OS team.