Skip to content

A desktop application with a collection of ML models for forensics, and a job engine to run them.

License

Notifications You must be signed in to change notification settings

UMass-Rescue/RescueBox-Desktop

Repository files navigation

Build Status Github Tag

RescueBox Desktop

RescueBox Desktop (RBox) is a self-contained binary offering a UI interface to a library of ML models for various forensic applications. To use RescueBox Desktop, start up a model application in the background adhering to the FlaskML interface. Then, register the model application's IP Host address and port. You can now run the model by specifying its inputs on the UI and analyzing outputs when ready. RBox handles the rest: running the jobs, and interfacing with different ML models. Since RBox is aimed toward forensic analysts, it is designed to operate on local, or drive-mounted storage.

For a review of the project's goals, read What is RescueBox Desktop?. For a view into how RBox-Desktop works, read the architecture section.

Getting Started

Step 1: Download the Latest Release

Get the latest release of the binary for your operating system (Windows, macOS and Linux) from the release page. For Linux, see Additional Instructions for Linux.

Step 2: Start a Flask-ML Compliant Model

Download and install one of the Flask-ML compliant models, or write your own!

Run the model application, which should provide you with a URL to register with RBox.

Step 3: Using the App

Launch the binary you downloaded in step 1, and register the model application using the IP address and port.

You should now be able to see the model application in the app, and be able to run inference tasks on it!

Additional Instructions for Linux

To run the AppImage on Linux, we first need to add execution permission on the AppImage file.

chmod a+x RescueBox-Desktop-<version_number>.AppImage

Then, some Additional steps may be required for Linux, depending on your distro. For Ubuntu, you will need to install the FUSE library.

Ubuntu >= 24.04

sudo add-apt-repository universe
sudo apt install libfuse2t64

Ubuntu <= 22.04

sudo add-apt-repository universe
sudo apt install libfuse2

At last, Run the AppImage with the "no-sandbox" option

 ./RescueBox-Desktop-<version-number>.AppImage --no-sandbox

Development

RescueBox Desktop is built using Electron, React, TypeScript, TailwindCSS, and SQlite (with Sequelize).

See Technical Components for a high-level overview of the application. Check out #338 to see how Flask-ML and this project integrate.

RescueBox implments the "Flask-ML" protocol, which is a simple interface for running ML models. See Flask-ML Protocol.

Prerequisites

  • Node v18 (newer versions may work)

Install

Clone the repo and install dependencies:

git clone https://github.com/UMass-Rescue/RescueBox-Desktop.git
cd RescueBox-Desktop
npm install

If you get an error about disutils or gym on macOS, see https://stackoverflow.com/questions/77251296/distutils-not-found-when-running-npm-install

Having issues installing? See this debugging guide

Starting Development

Start the app in the dev environment:

npm start

Packaging for Production

To package apps for the local platform:

npm run package

Docs

See electron-react's docs and guides here

About

A desktop application with a collection of ML models for forensics, and a job engine to run them.

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •