3.5 KiB
Install on Ubuntu for "Dummies"
This description is how to compile and set up Diflouroborane on Ubuntu 20.04.3 LTS clean install. Other releases or distros might work as well. The process is quite lengthy but at the end you will have a FabAccess running to you needs. ... as I said: for complete dummies, if someone finds a better solution, please post suggestions on: https://fabaccess.zulipchat.com/#narrow/stream/255963-General/topic/Demo
-
Get your system up-to-date
sudo apt-get update && sudo apt-get upgrade
-
Get rustup
sudo apt install curl
curl --proto 'https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
restart the console -
Get capnproto, gsasl and git
sudo apt-get install gsasl
sudo apt-get install capnproto
sudo apt install git
-
Create a target directory for BFFH there might be better places compared to where I created it, but it works...
mkdir BFFH
cd BFFH
-
Clone the Diflouroborane repository
git clone https://gitlab.com/fabinfra/fabaccess/bffh --recursive --branch main
-
For compiling some dependencies were missing on Ubuntu
git submodule update --init
sudo apt install libgsasl7-dev
sudo apt install cmake
sudo apt install libclang-dev
sudo apt install libssl-dev
-
Open the subdirectory and start compiling
cd bffh
cargo build --release
if the compiler prompts somthing like "error: linker 'cc' not found":sudo apt install build-essential
cargo build --release
-
Copy the configuration files (best done with the GUI filemanager of Ubuntu) copy files from "bffh/examples" paste them into "bffh/target/release/examples"
-
Install mosquitto MQTT broker Diflouroborane uses mosquitto MQTT broker to communicate with the Shellies. Starting from Ubuntu version 18.04, Mosquitto is already inside the official repositories.
sudo apt update -y && sudo apt install mosquitto mosquitto-clients -y
-
Configuring mosquitto broker for some reason, starting with version 2.x mosquitto does not allow external communication via the broker per default. This needs to be changed via a config file:
-
Stop mosquitto
sudo systemctl stop mosquitto
-
Change into the "etc/mosquitto/" directory (lots of
cd ..
thencd etc/mosquitto
) -
Edit the configuration fil:
sudo nano mosquitto.conf
add:listener 1883
allow_anonymous true
Save (Strg-O) and close (Strg-X) -
Enable mosquitto to start at each start of the system
sudo systemctl enable --now mosquitto
-
Restart the system.
The BFFH-server can be found at the /target/release folder. Prior to starting the system you need to copy the files from bffh/examples
to bffh/target/release/examples
This ist best done by using the GUI filemanager.
To get at least minimum functionality the bffh.dhall should be modified. The lines:
-- , init_connections = [] : List { machine : Text, initiator : Text }
, init_connections = [{ machine = "Testmachine", initiator = "Initiator" }]
, initiators = --{=}
{ Initiator = { module = "Dummy", params = { uid = "Testuser" } } }
should be modified to:
, init_connections = [] : List { machine : Text, initiator : Text }
--, init_connections = [{ machine = "Testmachine", initiator = "Initiator" }]
, initiators = {=}
--{ Initiator = { module = "Dummy", params = { uid = "Testuser" } } }
To start the server change into the directory by using cd target/release
and using:
./bffhd -c examples/bffh.dhall --load examples/users.toml
an then:
./bffhd -c examples/bffh.dhall
BUT prior to starting bffh, you should first configure the bffh.dhall file (see the "Use FabAcess" section).