Files
Rango/README.md
2026-08-13 20:20:47 +03:30

2.4 KiB

Fibitex Rango

Fork of OpenWare Rango based on upstream release 3.1.3, patched for the Fibitex / OpenDAX 2.6 stack (Barong RS256 JWT + incremental order book on market switch).

Fibitex documentation

Doc Topic
Docs/Fibitex-staging-deploy.md Staging deploy
Alvand-P/README.md Compose & image custom/rango:1
Docs/README.md Central docs
Docs/06-setup-local.md Local setup

Upstream repository: https://github.com/openware/rango
Base version: 3.1.3 (Fibitex build: see VERSION)

Fibitex patches

  1. RS256 JWT (Barong 2.6) — upstream 3.1.2+ accepts EdDSA only; this fork validates Barong JWT_PUBLIC_KEY (RSA) via pkg/auth/validator.go.
  2. Order book on market switch — replay ob-snap and buffered ob-inc before adding the client to the topic, so live increments cannot arrive before the snapshot (pkg/routing/hub.go).

Docker image

Alvand-P uses: custom/rango:1

cd Rango
docker build -t custom/rango:1 .

Alvand-P configuration

In Alvand-P/config/app.local.yml:

images:
  rango: custom/rango:1

Restart:

cd Alvand-P
docker compose up -d rango

Environment

Same as upstream Rango — see upstream README sections for RabbitMQ, scopes, and WebSocket paths (/public, /private).

Variable Fibitex note
JWT_PUBLIC_KEY Base64 PEM of Barong RSA public key (from rango.env)
LOG_LEVEL Use info temporarily to see JWT validator mode: rsa

Verify

After login on www.app.local:

  • Order cancel / create updates in UI (private order stream)
  • Switching markets loads order book without refresh
  • No repeated OrderBook increment received before snapshot in browser console

Upstream Rango (reference)

Cryptocurrency Exchange Platform - OpenDAX

Rango is a general purpose websocket server which dispatches public and private messages from RabbitMQ. It is designed as a drop-in replacement of Ranger built in Ruby.

For full upstream documentation (metrics, scopes, RBAC, message format), see the openware/rango README.