PC power/reset controller built around a Raspberry Pi, a relay board, and a Vue/Capacitor client.
It can also send serial key presses to the motherboard so the app can select the next GRUB entry before boot.
The server is a small Express API running on the Raspberry Pi. It controls GPIO pins connected to a relay board for power and reset, and it can also write HID key presses to /dev/hidg0 to drive the GRUB menu before the PC starts.
The client is a Vue 3 + Capacitor app that discovers the server, stores connection details locally, and exposes actions such as power, reset, reboot, next-boot selection, and host online status.
In practice the hardware chain is:
motherboard front-panel pins <-> relay board <-> Raspberry Pi <-> client app
- Copy
server/config.example.jsontoserver/config.json. - Adjust the GPIO pins,
host_ip, andtoken. - Start the server with
cd server && npm install && npm run dev. - Start the client with
cd client && npm install && npm run dev.
cd client
npm run androidshutdownTimecontrols the delay used for reboot-style flows.menuTimecontrols when GRUB key presses are sent.nextbootis the boot-menu key sequence to send.- Authentication is a single shared bearer token.





