The proxy-router is a critical component that monitors the BASE blockchain and manages models, providers, and sessions. It’s a standalone application that runs anywhere with access to your blockchain node and AI model.

Published image

The official image is on GHCR: ghcr.io/morpheusais/morpheus-lumerin-node:latest. Built per release from the main branch. Browse: MorpheusAIs Packages. For TEE-hardened images (-tee suffix), see SecretVM quickstart and TEE reference.

Pre-requisites

  • AI model reachable on a private endpoint (e.g. http://my-model.example:8080).
  • Funded wallet (MOR + ETH on BASE) and its private key.
  • Public endpoint for the provider (host:port, no protocol), e.g. mycoolmornode.example:3333.

Volume + env layout

Mount a host directory into /app/data so these files persist:
FilePurpose
proxy-router.envPer-Env reference
.cookieAuto-generated admin credentials
proxy.confAPI user/permission whitelist
models-config.jsonModels served (see reference)
rating-config.jsonProvider rating (reference)
Map -p for the proxy port (3333) and admin/API port (8082).

Run with .env file

Minimal proxy-router.env (mainnet):
AUTH_CONFIG_FILE_PATH=/app/data/proxy.conf
COOKIE_FILE_PATH=/app/data/.cookie
RATING_CONFIG_PATH=/app/data/rating-config.json
PROXY_STORAGE_PATH=/app/data/data
MODELS_CONFIG_PATH=/app/data/models-config.json
ETH_NODE_CHAIN_ID=8453
BLOCKSCOUT_API_URL=https://base.blockscout.com/api/v2
DIAMOND_CONTRACT_ADDRESS=0x6aBE1d282f72B474E54527D93b979A4f64d3030a
MOR_TOKEN_ADDRESS=0x7431aDa8a591C955a994a21710752EF9b882b8e3
WALLET_PRIVATE_KEY=
# REQUIRED for any real deployment. The proxy-router has a built-in public RPC
# round-robin fallback, but it is rate-limited and unreliable; running without
# your own ETH_NODE_ADDRESS leads to silent missed events.
ETH_NODE_ADDRESS=
ETH_NODE_USE_SUBSCRIPTIONS=false
PROXY_ADDRESS=0.0.0.0:3333
WEB_ADDRESS=0.0.0.0:8082
WEB_PUBLIC_URL=https://your-public-host.example
Run:
docker run -d \
  --env-file proxy-router.env \
  -v /path/to/local/data:/app/data \
  -p 3333:3333 \
  -p 8082:8082 \
  ghcr.io/morpheusais/morpheus-lumerin-node:latest

Run with command-line variables

docker run -d \
  -e AUTH_CONFIG_FILE_PATH=/app/data/proxy.conf \
  -e COOKIE_FILE_PATH=/app/data/.cookie \
  -e RATING_CONFIG_PATH=/app/data/rating-config.json \
  -e PROXY_STORAGE_PATH=/app/data/data \
  -e MODELS_CONFIG_PATH=/app/data/models-config.json \
  -e ETH_NODE_CHAIN_ID=8453 \
  -e BLOCKSCOUT_API_URL=https://base.blockscout.com/api/v2 \
  -e DIAMOND_CONTRACT_ADDRESS=0x6aBE1d282f72B474E54527D93b979A4f64d3030a \
  -e MOR_TOKEN_ADDRESS=0x7431aDa8a591C955a994a21710752EF9b882b8e3 \
  -e WALLET_PRIVATE_KEY=<your_wallet_private_key> \
  -e ETH_NODE_ADDRESS=https://base-mainnet.g.alchemy.com/v2/<your_alchemy_key> \
  -e ETH_NODE_USE_SUBSCRIPTIONS=false \
  -e PROXY_ADDRESS=0.0.0.0:3333 \
  -e WEB_ADDRESS=0.0.0.0:8082 \
  -e WEB_PUBLIC_URL=https://your-public-host.example \
  -v /path/to/local/data:/app/data \
  -p 3333:3333 \
  -p 8082:8082 \
  ghcr.io/morpheusais/morpheus-lumerin-node:latest
Set ETH_NODE_ADDRESS explicitly. The proxy-router has a built-in public RPC round-robin fallback. It exists for first-run sanity checks only — for any real provider it is rate-limited and unreliable, and missing blockchain events will silently break your node.

Manual build

If you want to customize, build locally:
git clone -b main https://github.com/MorpheusAIs/Morpheus-Lumerin-Node.git
cd Morpheus-Lumerin-Node/proxy-router

# Copy and edit configs
cp .env.example .env  # or .env.example.win on Windows
vi .env
cp models-config.json.example models-config.json
vi models-config.json
cp rating-config.json.example rating-config.json
vi rating-config.json

# Build and run
./docker_build.sh --build
./docker_build.sh --run

Validate & register

  • http://localhost:8082/swagger/index.html should render.
  • Continue to Register on chain.

Notes