Skip to content

Installation

Install OpexFlow from Docker (full stack) or build the single static binary from source with only the adapters you need.

Updated View as Markdown

The connector ships as a single static binary (musl) with the React UI embedded. No runtime, no host dependencies.

The repo’s docker-compose.yml brings up Postgres (TimescaleDB), ClickHouse, NATS, and the connector together:

git clone https://github.com/Opex-Technologies-Pte-Ltd/opex-connector.git
cd opex-connector
cp apps/connector/config.example.yaml config.yaml      # edit devices + push_endpoint
docker compose up -d                    # UI + API on :3000
cargo build --release
# default: modbus,opcua,nats,http,mqtt,clickhouse,postgres,transform,static-ui,focas,mtconnect,ethernetip
# opt-in: telemetry (/metrics + OTel), pi, cloud-client  e.g. --features telemetry,pi (not --all-features)
./target/release/opex-flow config.yaml

Build the UI first (cd apps/ui && bun run build, or ./scripts/build.sh): it is embedded at compile time. Feature flags are additive: build only the adapters you ship to the edge to keep the binary small. The JavaScript transform layer is the transform feature; the DSL needs no extra feature. A config section for an adapter that is not compiled in still parses, but enabling it fails validation (for example “adapters.focas is enabled but this build lacks the focas feature”), so a slim binary never silently ignores a source.

Fanuc CNCs (FOCAS)

The focas feature is on by default and needs no Fanuc library: the built-in pure-Rust FOCAS/Ethernet client (adapters.focas.mode: native, beta) runs in every release, including the static musl Linux builds, aarch64 (Raspberry Pi) and macOS. If you own Fanuc’s FOCAS2 library, put it beside the binary or set adapters.focas.lib_path (Windows fwlib30*.dll, glibc Linux libfwlib32-linux-*.so, renamed or symlinked to end in .so); with the default mode: auto the library is used when it loads and native otherwise. To see it without hardware, add a device with simulator: true or run opex-flow focas-sim. Details and the not-yet-verified points are in Sources.

To check a real controller, run opex-flow focas-probe --host <cnc-ip> [--library <FOCAS2 library>] [--out <dir>]. It is read-only: it reads everything the native client implements, prints the values to compare with the CNC screen, saves a JSON report and a raw frame capture, and, given a library, diffs the library’s values against the native ones (exit code 1 on a difference). The field procedure is docs/focas-field-test.md in the repository.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close