Ever wanted to turn on your remote machine (laptop, Raspberry, NAS), but didn't want to leave the couch? Well I for sure understand this problem to the heart. But fear no more, as BootBoi is here to save you from the gruesome task of standing up and pushing a button.
BootBoi features remote power on / power off / reboot for as many remote machines as you can imagine with the
combined power of ssh
and Wake On Lan
.
- Before you can use BootBoi with your remote machines, you have to prepare them for remote rebooting and powering them on/off.
- To power a remote device on, BootBoi uses Wake On Lan.
- This needs to be enabled in the BIOS of the machine you want to power on, read more here.
- BootBoi uses SSH to execute
whoami
,poweroff
andreboot
on the remote machine. - So make sure that
- Those binaries are available and in
$PATH
- The SSH user has
sudo
access towhoami
,poweroff
andreboot
- Either by allowing the user sudo access only to those binaries via the sudoers file (recommended)
- E.g.
echo "my_ssh_user ALL=(ALL) /sbin/reboot,/sbin/poweroff,/usr/bin/whoami" >> /etc/local/sudoers
- E.g.
- Or by using
root
as SSH user in BootBoi
- Either by allowing the user sudo access only to those binaries via the sudoers file (recommended)
- Those binaries are available and in
- Setup gradle and keystore for release: Follow https://reactnative.dev/docs/signed-apk-android
cd android
and./gradlew bundleRelease
- Change
BOOTBOI_UPLOAD_STORE_PASSWORD
andBOOTBOI_UPLOAD_KEY_PASSWORD
inandroid/gradle.properties
accordingly - To test the release, run
npx react-native run-android --variant=release
, it will create a release apk toandroid/app/build/outputs/apk/release/app-release.apk
- BootBoi uses this Remote Communication Module to use Java APIs for rebooting and powering on/off.
yarn start
to start the development server- reload with
r
- reload with
yarn android
to build the android app (dev server needs to be running), only needed when dependencies in package.json or native source changes- If you get
Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
: Need to lower JDK version (tested with JDK 11)