This is a fork of the default BELABOX UI (belaUI), that ported the code to Typescript and ESM (ECMAScript Modules). This fork is maintained by CERALIVE and includes additional features and improvements.
This fork includes an option to use the CeraUI interface, which is an alternative user interface designed for enhanced usability and additional features. When the USE_CERAUI option is enabled during installation or deployment, the system will download the latest CeraUI main package from the release and use it instead of the standard BelaUI interface.
Note: Replacing the original UI directly may cause issues. When your BELABOX is updated, it can revert the UI. Ensure you monitor updates and reapply the override after updates.
-
Enable SSH for the default user (
user) on your existing belaUI -
Connect to the BELABOX via SSH (use Putty on Windows, JuiceSSH on Android)
-
Then run:
# Standard installation with BelaUI wget -qO- https://raw.githubusercontent.com/CERALIVE/belaUI-ts/main/install.sh | bash
or
# Installation with CeraUI interface wget -qO- https://raw.githubusercontent.com/CERALIVE/belaUI-ts/main/install.sh | USE_CERAUI=true bash
-
To get back to the default belaUI, you can then run
sudo bash /opt/belaUI/reset-to-default.shthrough SSH.
This repository includes a unified installation script (install.sh) that handles both local installation and remote deployment:
# Standard installation
./install.sh
# With CeraUI interface
USE_CERAUI=true ./install.sh# Standard deployment
./install.sh --remote [SSH_TARGET]
# With CeraUI interface
USE_CERAUI=true ./install.sh --remote [SSH_TARGET]
# Examples
./install.sh --remote root@belabox.local
./install.sh --remote root@192.168.1.100Use ./install.sh --help to see all available options.
Note: The previous separate
install.shanddeploy-to-local.shscripts have been unified into a singleinstall.shscript. The old scripts are available as.bakfiles for reference and will be removed in a future release.
You will need to have bun.sh in version v1.2.3 or newer installed to run the scripts.
To install the dependencies, you can use the following command:
bun installLocal development is not really supported. Ideally you have a BELABOX to test changes. Build for production (see below) and deploy with the deploy script (see above).
You can run the UI locally with the following command:
bun run dev:uiTo run the server locally, you can use the following command:
bun run dev:serverTo build the UI for production, you can use the following command:
bun run buildIt is recommended to create an SSH key pair and install public key on the BELABOX, since the deployment script uses multiple ssh calls that would require you to type the password each time.
You can follow this tutorial to generate the key pair: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-22-04
- Enable SSH for the default user (
user) and connect via SSH - Enable SSH on boot to make things easier (
sudo systemctl enable ssh) - Use
sudo suto get root privileges and add to the authorized keys for the root user. Add the generated public ssh key to/root/.ssh/authorized_keysor create the file if it does not exist yet:- Create the directory if it does not exist:
mkdir -p /root/.ssh - Append your ssh key to the
authorized_keysfile (replacessh-...with your generated public key):echo "ssh-..." >> /root/.ssh/authorized_keys).
- Create the directory if it does not exist:
- Install rsync (
sudo apt install rsync) - Install an editor (e.g.
sudo apt install nano)
- Install the generated private ssh key on the host (e.g.
~/.ssh/id_rsaand~/.ssh/id_rsa.pub) - It might be necessary or recommended to install a newer version of rsync from brew or similar (not tested if necessary)
- Run the deployment script by specifying the SSH target as an argument. For example, to deploy as root to a host at 192.168.100.100, run:
# Standard deployment with BelaUI
./install.sh --remote root@192.168.100.100
# Deployment with CeraUI interface
USE_CERAUI=true ./install.sh --remote root@192.168.100.100To reset the BELABOX to the default belaUI, you can run the reset script from the host (./reset-local.sh).
This project is licensed under the GPL-3.0 License. See the LICENSE file for more details.