INSTALLATION


Before you begin installing BrainGenix, please be aware that BrainGenix is still in early development. Features available today may be modified or eliminated through version updates without warning or deprecation support. As soon as a stable release of BrainGenix becomes available, then we will remove this notice.



Supported Platforms

BrainGenix is developed with support prioritized for Linux systems. Our development servers run Ubuntu Server/Debian, so to ensure your install works, a recent version of Ubuntu or Debian is required. If you are operating a BSD distribution, then you may be able to run BrainGenix, but we offer no guarantee. BrainGenix will not work on Windows or MacOS, so you must first install Ubuntu on your system, as we do not plan to support either OS in the near future.



Required Packages

BrainGenix is split into various repositories for each of the different functions. Generally, in order to use BG, you'll need to install the API gateway as well as some of the backend packages. Each requires a few different starting tools in order to be installed. We have built our own installation scripts which will automatically install all dependendencies for each package when you run it. In order to do so, you need only have git so you can clone the repositories.


sudo apt install git -y

Alright, with that out of the way, let's get started.



Installing NES Backend

Firstly, we will need to get the NES service running on your machine. This service is what handles all simulation and scan-data-acquisition related tasks.

To get started, the first thing you'll want to do is clone the BrainGenix-NES repository to your local disk.

This is usually done on a headless linux distro, but can work on a gui install as well. Regardless, first navigate to your desired installation location to get started and clone the repo.

git clone https://gitlab.braingenix.org/carboncopies/BrainGenix-NES.git

Next, enter the repo dir, and enter the Tools dir inside the repo.

cd BrainGenix-NES/Tools

Now you can run the setup script which will automatically setup your system to compile and run NES. Do note that running this script will install various apt packages as needed for the build process.

./Setup.sh

After the install script finishes (assuming everything went well), you should be ready to compile NES. To do so, simply run the following command.

./Build.sh

Now, assuming everything has gone correctly with the build, you can now run NES. To do so, simply use the Run script.

./Run.sh

Hopefully that worked, if not, feel free to open an issue on our Gitlab repo here.

At this point, you can move on to setting up the gateway so that your client may talk to your backend NES service. Should you wish to mess with the configuration for any reason, the relevant files will be located in the Binaries directory in the repository. Note that you'll need to have both NES and the API service running at the same time in order to use your local instance.



Installing API Gateway

The API gateway essentially sits in-between the user and the backend services such as NES. When users connect to your instance, they will talk with the gateway which forwards on requests (after validating syntax and authentication) to the correct backend endpoint.

To begin, you'll want to clone the BrainGenix-API repository.

git clone https://gitlab.braingenix.org/carboncopies/BrainGenix-API.git

Next, enter the directory of the repository you just cloned, and enter the Tools dir inside the repo.

cd BrainGenix-API/Tools

Now you can run the setup script which will automatically setup your system to compile and run the API.

./Setup.sh

As with NES, you now only need to run the build script to compile it.

./Build.sh

Great! Now we just need to run it. At this point (assuming NES is running), your API instance will attempt to connect to NES so it can pass on requests. Once done, you should be all set to start using your BG instance.

./Run.sh

If you encountered any issues, please open up an issue on our Gitlab repo here.



Testing

Congrats on getting it setup on your machine! Now comes the fun part, testing. The easiest way to make sure everything works is to point your browser at the API. Assuming you haven't changed the port, it should be running on port 8000. If you visit that http://[your-ip]:8000, you should be greeted with a welcome page.



Troubleshooting

Build Issues


If you're having issues building, the best thing is to try running the clean script. This will delete all CMake cache and any other build artifacts. If that still doesn't resolve the issue, make sure that you're running Ubuntu 22.04 as that's what we test on. If the issue still persists, feel free to get in touch with us and we can help to figure out what's going on.



Connection Issues


If the API gateway isn't talking to NES, please check the configuration files and make sure that they're pointing to the right place. For example, if you installed NES on separate machine as the API, make sure the API knows to connect to NES by setting the NES service IP accordingly.