| # 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 | |