Self-hosted platform to aggregate, orchestrate, and schedule REST API workflows.
525
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.
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.
Every route is gated behind a valid license key. During the beta, keys are free for six months from the Sroyc licensing portal.
(Automation users can instead call PUT /api/v1/auth/license with the key
as the request body, authenticated the same way the UI is.)
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:
| Variable | Purpose | Default |
|---|---|---|
DB_POSTGRES_HOST | Postgres host | localhost |
DB_POSTGRES_PORT | Postgres port | 5432 |
DB_POSTGRES_USERNAME | Postgres user | postgres |
DB_POSTGRES_PASSWORD | Postgres password | — |
DB_POSTGRES_DATABASE | Postgres database name | rest-exchange |
REX_ADMIN_USERNAME | Bootstrap admin username | restx |
REX_ADMIN_PASSWORD | Bootstrap admin password | restx — change this |
SERVER_PORT | Port the app listens on | 9191 |
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
| Path | Purpose |
|---|---|
/app/config | Optional properties file(s), merged over the built-in defaults |
/app/logs | Application logs |
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.
latest — most recent stable buildx.y.z — pinned releaseRest 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.
Content type
Image
Digest
sha256:af4273763…
Size
209.8 MB
Last updated
6 days ago
docker pull sroyc/rest-exchange