SCREENERBOTDocs
DocsGetting StartedBuild From Source
Getting Started / Build From Source

Build the ScreenerBot engine or native desktop app

The Rust binary contains the trading engine, services, API, and embedded dashboard. It can run alone in headless mode. The Electron project is a separate native shell that starts that binary and presents the desktop application.

Getting Started/Build From Source

Engine

Rust binary with embedded dashboard

Headless

No Node.js or Electron required

Desktop

Electron Forge packages the binary

Release source

Versioned source tarball

Use a versioned source tarball

Every published source package is tied to a release. Use the live download page to select the version and copy its verified source archive information.

Open source downloads

Build model

Build the core once, then decide whether the output should run directly or be bundled into a desktop app.

01

Get a versioned source release

Start from the source tarball that matches the release you intend to build.

02

Build the Rust binary

Use a debug build for code iteration or a release build for normal operation.

03

Run headless or package desktop

The Rust binary runs independently; Electron is needed only for the native desktop shell.

04

Verify the output

Confirm the exact binary or package launches on the platform and architecture that produced it.

Toolchain

Node.js is not part of the trading engine build. Install it only when you need Electron packaging.

Rust stable

Compiles the trading engine and embedded web dashboard into the ScreenerBot binary.

Headless and desktop builds

Native build tools

Provides the compiler, linker, and platform libraries required by Rust dependencies.

Headless and desktop builds

Node.js 22 + npm

Installs Electron Forge and creates native desktop packages around the compiled Rust binary.

Desktop packaging only

Install Rust

Install the current stable toolchain with rustup, then load Cargo into the current shell.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
rustc --version
cargo --version

Install Node.js for desktop packaging

Node.js 22 matches the current project and website build environment.

nvm install 22
nvm use 22
node --version
npm --version

macOS

Install Apple command-line developer tools.

xcode-select --install

Windows

Install Visual Studio Build Tools with the Desktop development with C++ workload.

Visual Studio Build Tools + C++ workload

Debian / Ubuntu

Install the compiler and common native package metadata tools.

sudo apt install build-essential pkg-config

Get and extract the source

Replace the placeholder with the exact version shown on the release page.

Versioned source release

curl -fL "https://screenerbot.io/api/releases/download?version=<VERSION>&platform=source-code" \
  -o screenerbot-source.tar.gz

tar -xzf screenerbot-source.tar.gz
cd ScreenerBot-v<VERSION>-source

Debug build

Use this for source changes and fast incremental compilation. It is not the normal distribution build.

cargo build --bin screenerbot
./target/debug/screenerbot

Release build

Use the optimized binary for normal local or headless operation.

cargo build --release --bin screenerbot
./target/release/screenerbot

Run the Rust binary headlessly

The standalone binary serves the dashboard on the configured webserver port, which defaults to 8080 in headless operation. It does not need Electron or a graphical session.

cargo build --release --bin screenerbot
./target/release/screenerbot

# Default headless dashboard:
# http://127.0.0.1:8080
Continue to managed VPS installation

Keep the headless dashboard private

Do not expose the dashboard port directly to the public internet. Use an SSH tunnel or a secured reverse proxy with authentication and TLS.

Package the desktop application

Electron Forge reads the compiled binary from target/release and creates packages for the current host platform and selected architecture.

Build engine, install locked dependencies, package

cargo build --release --bin screenerbot

cd electron
npm ci
npm run make

macOS

DMG and ZIP makers

electron/out/make/

Windows

MSI and ZIP makers

electron/out/make/

Linux

DEB, RPM, and ZIP makers where supported

electron/out/make/

Desktop packages are platform-specific. Build and verify each target on a compatible host or use the project’s established multi-platform build pipeline; do not assume one local npm run make produces every operating system and architecture.

Verify the build output

  • Launch the exact debug, release, or packaged output you intend to use.
  • Confirm the first-run setup appears without a missing-binary error.
  • For headless mode, confirm the configured dashboard endpoint responds locally.
  • For desktop mode, confirm the Electron app starts its bundled Rust binary.
  • Keep automation disabled until runtime configuration is reviewed.

Choose the next guide by output