From 56ca2a943aedef9d75e0f6901d776e0420b0d91f Mon Sep 17 00:00:00 2001 From: Nicole Rappe Date: Thu, 15 May 2025 23:49:04 -0600 Subject: [PATCH] Minor update code changes --- Borealis.ps1 | 1 - readme.md.bak | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 readme.md.bak diff --git a/Borealis.ps1 b/Borealis.ps1 index f650e5b..3b89ba9 100644 --- a/Borealis.ps1 +++ b/Borealis.ps1 @@ -410,7 +410,6 @@ switch ($choice) { # Backup launchers Rename-Item -ErrorAction SilentlyContinue (Join-Path $scriptDir "Launch-Borealis.ps1") "Launch-Borealis.ps1.bak" Rename-Item -ErrorAction SilentlyContinue (Join-Path $scriptDir "Launch-Borealis.sh") "Launch-Borealis.sh.bak" - Rename-Item -ErrorAction SilentlyContinue (Join-Path $scriptDir "readme.md") "readme.md.bak" # Ensure staging folder exists $stagingPath = Join-Path $scriptDir "Update_Staging" diff --git a/readme.md.bak b/readme.md.bak new file mode 100644 index 0000000..fcd42ce --- /dev/null +++ b/readme.md.bak @@ -0,0 +1,99 @@ +////////// PROJECT FILE SEPARATION LINE ////////// CODE AFTER THIS LINE ARE FROM: `/readme.md` + +![Borealis Logo](https://git.bunny-lab.io/Borealis/Borealis/raw/branch/main/Data/Server/WebUI/public/Borealis_Logo_Full.png) + +**Borealis** is a cross-platform **visual automation platform** that lets you design and execute workflows using drag-and-drop "nodes" in an interactive graph. Think of it like building a flowchart that actually **runs** β€” in real-time. + +Powered by a Flask backend and a React Flow frontend, Borealis is perfect for anyone looking to automate tasks, visualize data processing, or build reactive tools using a modular, extensible system. + +--- + +## ✨ Key Features + +| Feature | Description | +|--------|-------------| +| 🧠 **Visual Editor** | Intuitive graph-based UI powered by React Flow. Nodes represent data, logic, or actions. | +| βš™οΈ **Dynamic Node Updates** | All nodes react to data changes live using a shared memory bus and global update timer. | +| πŸ”— **Live Connections** | Connect nodes via "wires" to transmit values in real time β€” no refresh needed. | +| πŸ–ΌοΈ **On-Screen GUI Interactions** | Supports custom Python-based GUI prompts, like on-screen region selectors. | +| πŸ” **OCR and Vision Support** | Use EasyOCR and Tesseract to extract data from screenshots or webcam feeds. | +| 🧩 **Custom Node Support** | Easily define your own nodes using JSX β€” each one modular and reactive. | +| πŸš€ **Cross-Platform** | Works on Windows, Linux, and macOS (via provided `.sh` and `.ps1` launch scripts). | + +--- + +## 🧱 Core Components + +| Component | Role | +|----------|------| +| **Flask Server** | Hosts API endpoints and serves the React frontend | +| **React Flow UI** | Visual canvas for building and managing workflows | +| **Python Virtual Env** | Encapsulates dependencies, avoids global installs | +| **Shared Value Bus** | All nodes communicate via `window.BorealisValueBus` | + +--- + +## ⚑ Getting Started + +### Windows: +```powershell +# Windows - Launch Borealis Server and/or Agent +# To Launch borealis itself, you can just right-click the "Launch-Borealis.ps1" file and select "Run with Powershell", or alternatively, run the command seen below, either in the same powershell session as the first command, or in its own non-administrative session. +Set-ExecutionPolicy Unrestricted -Scope Process; .\Launch-Borealis.ps1 +``` +### Linux: +-# Detailed explanations of how to get things working in Linux is not given at this time, but its mostly automated during the deployment, and only requires a single script to be ran. +```sh +# Linux / macOS +bash Launch-Borealis.sh +``` + +**The launch script will**: +- :snake: Create a virtual Python environment +- :package: Install all required Python + JS dependencies (Bundled in Windows / Installed in Linux) +- :atom: Build the React app +- :globe_with_meridians: Launch the Flask web server +--- + +## 🧠 How It Works + +Borealis workflows run on **live data propagation**. Each node checks for incoming values (via edges) and processes them on a recurring timer (default: 200ms). This allows for highly reactive, composable logic graphs. + +## ⚑Reverse Proxy Configuration +If you want to run Borealis behind a reverse proxy (e.g., Traefik), you can set up the following dynamic configuration: +```yml +http: + routers: + borealis: + entryPoints: + - websecure + tls: + certResolver: letsencrypt + service: borealis + rule: "Host(`borealis.bunny-lab.io`) && PathPrefix(`/`)" + middlewares: + - cors-headers + + middlewares: + cors-headers: + headers: + accessControlAllowOriginList: + - "*" + accessControlAllowMethods: + - GET + - POST + - OPTIONS + accessControlAllowHeaders: + - Content-Type + - Upgrade + - Connection + accessControlMaxAge: 100 + addVaryHeader: true + + services: + borealis: + loadBalancer: + servers: + - url: "http://192.168.3.254:5000" + passHostHeader: true +``` \ No newline at end of file