Skip to content

beamylabs/beamylabs-start

Repository files navigation

Ongoing

Go here to check what's ongoing and try the latest features.

Get started with BeamyBroker

Pre-built SD card images for Raspberry Pi 4

We build images suitable for Raspberry Pi 4 with the Seeed CAN-shield. Have a look here: https://www.beamylabs.com/releases/

Run it yourself

Clone this repository and make sure you have docker and docker-compose installed, then run:

docker-compose up -d

This command only needs to be run once. It is persistent over system reboot -- the containers will be restarted after a reboot, over and over again.

Point your web browser at the machine running BeamyBroker, an address like http://192.0.2.42:8080/. If you are connected to a hosted WLAN Access Point like beamylabs, the address should be http://192.168.4.1:8080/.

NOTE: if you change your interface settings you must restart by do doing STOP and the start it again like above.

Start in distributed mode

If you want to run BeamyBroker in the special distributed mode, its node name needs to be set. Run it like this:

NODE_NAME=$(scripts/resolve-ip.sh eth0) docker-compose up -d

$(scripts/resolve-ip.sh eth0) assumes that the interface for your main ethernet connection is called eth0. If that's not the case, you need to change eth0 to the correct name. (Hint: you can can find your interface name using ip addr or ifconfig).

Example configuration and detailed instructions can be found here.

Stop

docker-compose down

Upgrade (optionally in distributed mode)

When you upgrade; remember to upgrade THIS repository as well git pull, as examples are continuously updated and improved. You will also find the latest pre-generated grpc files in this repository.

git pull
./upgrade.sh

Alternatively, just pull the latest container images manually:

docker-compose pull

If you are running in distributed mode, the same required node name should be passed to the script, similar to when you first started the system:

NODE_NAME=$(scripts/resolve-ip.sh eth0) ./upgrade.sh

Upgrade through the web interface

It is possible to trigger an upgrade through the BeamyBroker web interface. This require a service to be running. To install and start this service (only needed once):

sudo scripts/install-service.sh

Use a specific version (advanced feature)

To pull a specific version you can specify custom tag for BEAMYBROKER_TAG or BEAMYWEBCLIENT_TAG, as in:

BEAMYBROKER_TAG=v0.0.7-4-g12 docker-compose up -d

API - gRPC

The server is accessible using gRPC, which effectively means that you can access it with your language of choice. Stubs to access the server are generated by providing proto files which contains the API specification.

Pre generated files and samples are available for a selection of languages. If you need another language you can get inspiration by how it's done for python here.

System configuration

BeamyBroker is configured using a interfaces.json an example can be found here. All resources/files referenced needs to be provided to the server. There are several ways to configure BeamyBroker.

  • Using web interface, http://127.0.0.1:8080/#/configuration
  • Using code as done here where a folder is uploaded using upload_folder with all relevant files followed by a reload_configuration. This is recommended since it allows all clients to be self sufficient, allowing simple code sharing.

an extensive reference can be found here

Inspiration - get started

Statistics and usage

In order to understand usage of the product and it's environment it will try and send system information based on your interfaces.json and it's execution environment on start. The data is obfuscated and it is not distributed to any other party. Its sole purpose is the make the software better.

This is not mandatory and can be disabled, however to keep us motivated we would please urge you not to disable this feature.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages