BusyBee Tips & Tricks

How to run Busybee as executable

This will allow you to use "busybee"-command to be able to use it from anywhere in your system.

 Windows
  1.  Run the command: "python build.py" from your busybee project.
  2. Open "dist" folder which was newly generated. Select "busybee.exe"-file there and click "Properties". Copy your location property. (example: C:\FOLIO\folioModules\busybee\dist)
  3. Click Win+S and type: "Edit the system environment variables"
  4. Click "Edit" in the User variables.
  5. Add copied value example: (C:\FOLIO\folioModules\busybee\dist)
  6. Re-run your Powershell.
  7. Now you can just type: "busybee" from any directory to utilize BusyBee.
 MacOS/Linux
  1. Run the command: "python build.py" from your busybee project.
  2. A dist directory will be created that will contain the busybee executable. Get the full path to the dist directory
  3. Add the full path of the dist folder to the PATH variable of your terminal. For bash, that would mean updating .bash_profile or similar.


How to start your env in the morning

  1. Run your "Rancher desktop" application.
  2. Run "docker compose up -d" from the folder where your docker file "docker-compose.yml" is situated.
  3. Run "busybee"
  4. Run "start"
  5. Run "yarn start" from the platform-complete module. It should be on the "snapshot"-branch.
  6. Feel free to use your environment on "localhost:3000"


How to stop your env in the evening

  1. Input "Ctrl+C" in the terminal where you ran "yarn start" to stop your UI env.
  2. Run "docker compose stop"
  3. Close your "Rancher desktop" application.


How to run integration tests 

  1. Start your local env as usual (see above).
  2. Open your "folio-integration-tests" module via IntelliJIdea (or another IDE)
  3. Checkout on the main branch.
  4. Edit your "Run Configuration" as "Junit" and set "Environment variables" as "karate.env=dev"
  5. Feel free to run your tests via the current configuration. Example:


How to create "Run configuration" in IntellijIdea

This is needed for debugging purposes. Just select "Edit Configurations..."→"Add New Configuration"->"JAR Application" and configure:

  1. "VM options:" "-Dhttp.port=8132" or other port on which you started your module before  (in our example 7000). 
  2. "Path to JAR:" "{path to your .fat jar}"

You can see an example here:

How to enable local Modules in Busybee

  1. Use depCheck=false param to avoid interface required module problem.
    You can see example issue:


You can see an example solution here:

/_/proxy/tenants/{{xokapitenant}}/install?depCheck=false&tenantParameters=loadSample%3Dfalse%2CloadReference%3Dfalse

Docker Volume Storage Management

There is a Docker volume accumulation. It will occupy storage space on your machine. You can see the list of all of them via, for example, "VS Code" IDE. In the section: "Volumes" via Docker plugin there. 

So to remove all of them you can run this command and free some GBs on your machine:

docker volume prune


How to set snapshot versions from local install.json

  1. Clone the platform-complete repo at https://github.com/folio-org/platform-complete
  2. Get the path of the install.json at the top level of the platform-complete
  3. Go to the busybee config in your home directory and update install-json-path property in the YAML.

How to update snapshot versions

  1. First of all, wipe your environment with the command: "docker compose down"
  2. Pull the latest updates from the "snapshot" branch of the platform-complete repo. The main thing is that it will update your "install.json"-file with the latest versions and builds of the modules.
  3. Initialize another environment with the command: "docker compose up -d"
  4. Run the command "busybee". There will be such a message: "Using existing module descriptor cache at [C:\Users\{USER}\.busybee\.mod_descriptors.json]"
  5. Copy this value: C:\Users\{USER}\.busybee\.mod_descriptors.json
  6. Run command: "quit"
  7. Run command: "rm C:\Users\Volodymyr_Rohach\.busybee\.mod_descriptors.json"
  8. Run command: "busybee"
  9. Start your environment as usual.




Docker-compose mem_limit

With a similar error when starting modules:

EXCEPTION of type 'Exception' occurred with message: could not create enable module(mod-entities-links-3.0.0-SNAPSHOT.242) for tenant(diku): Deployment failed for service mod-entities-links-3.0.0-SNAPSHOT.242. Could not connect to 172.17.0.1:9145: finishConnect(..) failed: Connection refused: /172.17.0.1:9145

Try increasing mem_limit in docker-compose.yml (for instance 2g).


Connection issue to the registry URL

There can be an issue regarding failing to connect to the registry URL when starting busybee env: Could not start BusyBee: HTTPConnectionPool(host='folio-registry.aws.indexdata.com', port=80): Max retried exceed with url.... Failed to establish connection

To fix it just change every  "folio-registry.aws.indexdata.com" to "http://folio-registry.dev.folio.org" inside the config.yml-file and it should work as expected.