rmi-backend/docker/x402-rs/docker-compose.yml

58 lines
1.9 KiB
YAML

# x402-rs Self-Hosted Facilitator — Docker Compose
# ===============================================
# Production-grade Rust x402 facilitator for multi-chain payment verification.
#
# Networks supported: Base, Ethereum, BSC, Arbitrum, Optimism, Polygon, Avalanche, Fantom, Gnosis
# Tokens supported: USDC, USDT, DAI, WETH, ETH, native coins
#
# Start: docker compose -f docker/x402-rs/docker-compose.yml up -d
# Stop: docker compose -f docker/x402-rs/docker-compose.yml down
# Logs: docker compose -f docker/x402-rs/docker-compose.yml logs -f
version: "3.8"
services:
x402-rs:
image: ghcr.io/x402-protocol/x402-rs:latest
container_name: x402-rs
restart: unless-stopped
ports:
- "8090:8090"
environment:
# Server
X402_HOST: "0.0.0.0"
X402_PORT: "8090"
X402_LOG_LEVEL: "info"
# Chain RPCs (required for on-chain verification)
ETH_RPC_URL: "${ETH_RPC_URL:-https://eth.llamarpc.com}"
BASE_RPC_URL: "${BASE_RPC_URL:-https://base.llamarpc.com}"
BSC_RPC_URL: "${BSC_RPC_URL:-https://bsc-dataseed.binance.org}"
ARBITRUM_RPC_URL: "${ARBITRUM_RPC_URL:-https://arb1.arbitrum.io/rpc}"
OPTIMISM_RPC_URL: "${OPTIMISM_RPC_URL:-https://mainnet.optimism.io}"
POLYGON_RPC_URL: "${POLYGON_RPC_URL:-https://polygon-rpc.com}"
# Payment configuration
X402_PAY_TO_ADDRESS: "${X402_EVM_PAY_TO:-0x1E3AC01d0fdb976179790BDD02823196A92705C9}"
X402_SUPPORTED_TOKENS: "USDC,USDT,DAI,WETH"
X402_SUPPORTED_CHAINS: "ethereum,base,bsc,arbitrum,optimism,polygon"
# Settlement
X402_SETTLEMENT_MODE: "instant"
X402_MAX_VERIFY_AGE_SECONDS: "300"
volumes:
- ./config.yaml:/app/config.yaml:ro
networks:
- rmi-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
rmi-network:
external: true
name: rmi-network