////////// PROJECT FILE SEPARATION LINE ////////// CODE AFTER THIS LINE ARE FROM: `<ProjectRoot>/readme.md`  **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: To Launch borealis itself, you can just right-click the "`Borealis.ps1`" file and select "`Run with Powershell`". You may be warned about Execution Policy restrictions. Just say "Y" to continue or "A" if you dont want to be warned about running untrusted scripts in the future. ### Linux: ```sh # Linux / macOS bash 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:5173" passHostHeader: true ```