Sign inSign up

sroyc/rest-exchange

By sroyc

•Updated 6 days ago

Self-hosted platform to aggregate, orchestrate, and schedule REST API workflows.

Image
0

525

sroyc/rest-exchange repository overview

⁠Rest Exchange

Self-hosted REST API aggregation and orchestration platform. Connect multiple upstream REST APIs, compose them into reusable functions and workflows through a visual builder, and schedule execution with built-in tracking and crash recovery — all running in your own environment.

⁠Quick start

Rest Exchange needs a PostgreSQL database and a license key (free during the beta — see below).

docker network create rex-net

docker run -d --name rex-postgres --network rex-net \
  -e POSTGRES_PASSWORD=<choose-a-db-password> \
  -e POSTGRES_DB=rest-exchange \
  postgres:16-alpine

docker run -d --name rest-exchange --network rex-net -p 9191:9191 \
  -e DB_POSTGRES_HOST=rex-postgres \
  -e DB_POSTGRES_PASSWORD=<same-db-password> \
  -e REX_ADMIN_PASSWORD=<choose-an-admin-password> \
  sroyc/rest-exchange:latest

Open http://localhost:9191⁠ and log in with restx (or your REX_ADMIN_USERNAME) and the admin password you set above. A license page will be presented.

⁠Getting a license key

Every route is gated behind a valid license key. During the beta, keys are free for six months from the Sroyc licensing portal.

  1. Request a key from the SROYC portal⁠.
  2. Enter the license key and proceed. Make sure that the machine on which Rest Exchange is running, has connectivity to *.sroyc.com.
  3. You are ready to go.

(Automation users can instead call PUT /api/v1/auth/license with the key as the request body, authenticated the same way the UI is.)

⁠Configuration

Two ways to configure — use whichever fits your environment.

Environment variables (recommended for container platforms — ECS, Kubernetes, etc.). Spring Boot's relaxed binding maps these onto the underlying dotted property names automatically:

VariablePurposeDefault
DB_POSTGRES_HOSTPostgres hostlocalhost
DB_POSTGRES_PORTPostgres port5432
DB_POSTGRES_USERNAMEPostgres userpostgres
DB_POSTGRES_PASSWORDPostgres password—
DB_POSTGRES_DATABASEPostgres database namerest-exchange
REX_ADMIN_USERNAMEBootstrap admin usernamerestx
REX_ADMIN_PASSWORDBootstrap admin passwordrestx — change this
SERVER_PORTPort the app listens on9191

Mounted properties file (traditional/on-prem style):

docker run -d -p 9191:9191 \
  -v /path/to/rest-exchange.properties:/app/config/rest-exchange.properties:ro \
  -e REX_CONFIG_LOCATION=file:/app/config/rest-exchange.properties \
  sroyc/rest-exchange:latest

⁠Volumes

PathPurpose
/app/configOptional properties file(s), merged over the built-in defaults
/app/logsApplication logs

⁠Health check

GET /actuator/health — the image's built-in HEALTHCHECK already points here. On ECS/Fargate, add an equivalent healthCheck to your task definition; Docker's own HEALTHCHECK isn't consulted there.

⁠Tags

  • latest — most recent stable build
  • x.y.z — pinned release

⁠Licensing

Rest Exchange is commercial software. A valid license key is required to use it beyond the login screen. Contact [email protected]⁠ for licensing, support, or trial questions.

Tag summary

Content type

Image

Digest

sha256:af4273763…

Size

209.8 MB

Last updated

6 days ago

docker pull sroyc/rest-exchange