Created
August 20, 2025 16:47
-
-
Save haferman/c6863605fad073ad86c44dbeb8873bcf to your computer and use it in GitHub Desktop.
boundless compose.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: bento | |
| # Anchors: | |
| x-base-environment: &base-environment | |
| DATABASE_URL: postgresql://${POSTGRES_USER:-worker}:${POSTGRES_PASSWORD:-password}@${POSTGRES_HOST:-postgres}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-taskdb} | |
| REDIS_URL: redis://${REDIS_HOST:-redis}:6379 | |
| S3_URL: http://${MINIO_HOST:-minio}:9000 | |
| S3_BUCKET: ${MINIO_BUCKET:-workflow} | |
| S3_ACCESS_KEY: ${MINIO_ROOT_USER:-admin} | |
| S3_SECRET_KEY: ${MINIO_ROOT_PASS:-password} | |
| RUST_LOG: ${RUST_LOG:-info} | |
| RUST_BACKTRACE: 1 | |
| x-agent-common: &agent-common | |
| image: risczero/risc0-bento-agent:stable@sha256:c6fcc92686a5d4b20da963ebba3045f09a64695c9ba9a9aa984dd98b5ddbd6f9 | |
| restart: always | |
| runtime: nvidia | |
| depends_on: | |
| - postgres | |
| - redis | |
| - minio | |
| environment: | |
| <<: *base-environment | |
| x-exec-agent-common: &exec-agent-common | |
| <<: *agent-common | |
| mem_limit: 4G | |
| cpus: 3 | |
| environment: | |
| <<: *base-environment | |
| RISC0_KECCAK_PO2: ${RISC0_KECCAK_PO2:-17} | |
| entrypoint: /app/agent -t exec --segment-po2 ${SEGMENT_SIZE:-21} | |
| x-broker-environment: &broker-environment | |
| RUST_LOG: ${RUST_LOG:-info,broker=debug,boundless_market=debug} | |
| # RUST_BACKTRACE: 1 | |
| PRIVATE_KEY: ${PRIVATE_KEY} | |
| RPC_URL: ${RPC_URL} | |
| BOUNDLESS_MARKET_ADDRESS: | |
| SET_VERIFIER_ADDRESS: | |
| ORDER_STREAM_URL: | |
| # TODO these env vars are temporary for handling cancellations. These should be removed when | |
| # updated. | |
| POSTGRES_HOST: | |
| POSTGRES_DB: | |
| POSTGRES_PORT: | |
| POSTGRES_USER: | |
| POSTGRES_PASS: | |
| x-broker-common: &broker-common | |
| restart: always | |
| depends_on: | |
| - rest_api | |
| - gpu_prove_agent0 | |
| - exec_agent0 | |
| - exec_agent1 | |
| - aux_agent | |
| - snark_agent | |
| - redis | |
| - postgres | |
| profiles: [broker] | |
| build: | |
| context: . | |
| dockerfile: dockerfiles/broker.dockerfile | |
| mem_limit: 2G | |
| cpus: 2 | |
| stop_grace_period: 3h | |
| network_mode: host | |
| services: | |
| redis: | |
| hostname: ${REDIS_HOST:-redis} | |
| image: ${REDIS_IMG:-redis:7.2.5-alpine3.19} | |
| restart: always | |
| ports: | |
| - 6379:6379 | |
| volumes: | |
| - redis-data:/data | |
| postgres: | |
| hostname: ${POSTGRES_HOST:-postgres} | |
| image: ${POSTGRES_IMG:-postgres:16.3-bullseye} | |
| restart: always | |
| environment: | |
| POSTGRES_DB: ${POSTGRES_DB:-taskdb} | |
| POSTGRES_USER: ${POSTGRES_USER:-worker} | |
| POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} | |
| expose: | |
| - '${POSTGRES_PORT:-5432}' | |
| ports: | |
| - '${POSTGRES_PORT:-5432}:${POSTGRES_PORT:-5432}' | |
| volumes: | |
| - postgres-data:/var/lib/postgresql/data | |
| command: -p ${POSTGRES_PORT:-5432} | |
| minio: | |
| hostname: ${MINIO_HOST:-minio} | |
| image: ${MINIO_IMG:-minio/minio:RELEASE.2024-05-28T17-19-04Z} | |
| restart: always | |
| ports: | |
| - '9000:9000' | |
| - '9001:9001' | |
| volumes: | |
| - minio-data:/data | |
| command: server /data --console-address ":9001" | |
| environment: | |
| - MINIO_ROOT_USER=${MINIO_ROOT_USER:-admin} | |
| - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASS:-password} | |
| - MINIO_DEFAULT_BUCKETS=${MINIO_BUCKET:-workflow} | |
| healthcheck: | |
| test: ["CMD", "mc", "ready", "local"] | |
| interval: 5s | |
| timeout: 5s | |
| retries: 5 | |
| grafana: | |
| image: ${GRAFANA_IMG:-grafana/grafana:11.0.0} | |
| restart: unless-stopped | |
| ports: | |
| - '3000:3000' | |
| environment: | |
| - GF_SECURITY_ADMIN_USER=admin | |
| - GF_SECURITY_ADMIN_PASSWORD=admin | |
| - GF_LOG_LEVEL=WARN | |
| - POSTGRES_HOST=${POSTGRES_HOST:-postgres} | |
| - POSTGRES_DB=${POSTGRES_DB:-taskdb} | |
| - POSTGRES_PORT=${POSTGRES_PORT:-5432} | |
| - POSTGRES_USER=${POSTGRES_USER:-worker} | |
| - POSTGRES_PASS=${POSTGRES_PASSWORD:-password} | |
| - GF_INSTALL_PLUGINS=frser-sqlite-datasource | |
| volumes: | |
| - ./dockerfiles/grafana:/etc/grafana/provisioning/ | |
| - grafana-data:/var/lib/grafana | |
| - broker-data:/db | |
| depends_on: | |
| - postgres | |
| - redis | |
| - minio | |
| exec_agent0: | |
| <<: *exec-agent-common | |
| exec_agent1: | |
| <<: *exec-agent-common | |
| aux_agent: | |
| <<: *agent-common | |
| mem_limit: 256M | |
| cpus: 1 | |
| entrypoint: /app/agent -t aux --monitor-requeue | |
| gpu_prove_agent0: | |
| <<: *agent-common | |
| mem_limit: 4G | |
| cpus: 4 | |
| entrypoint: /app/agent -t prove | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| device_ids: ['0'] | |
| capabilities: [gpu] | |
| snark_agent: | |
| <<: *agent-common | |
| entrypoint: /app/agent -t snark | |
| ulimits: | |
| stack: 90000000 | |
| rest_api: | |
| image: risczero/risc0-bento-rest-api:stable@sha256:7b5183811675d0aa3646d079dec4a7a6d47c84fab4fa33d3eb279135f2e59207 | |
| restart: always | |
| depends_on: | |
| - postgres | |
| - minio | |
| mem_limit: 1G | |
| cpus: 1 | |
| environment: | |
| <<: *base-environment | |
| ports: | |
| - '8081:8081' | |
| entrypoint: /app/rest_api --bind-addr 0.0.0.0:8081 --snark-timeout ${SNARK_TIMEOUT:-180} | |
| broker: | |
| <<: *broker-common | |
| volumes: | |
| - type: bind | |
| source: ./broker.toml | |
| - type: bind | |
| source: ./broker.toml | |
| - type: bind | |
| source: ./broker.toml | |
| target: /app/broker.toml | |
| - broker-data:/db/ | |
| # Uncomment when using locally built set-builder and assessor guest programs | |
| # - type: bind | |
| # source: ./target/riscv-guest/guest-set-builder/set-builder/riscv32im-risc0-zkvm-elf/release/set-builder.bin | |
| # target: /target/riscv-guest/guest-set-builder/set-builder/riscv32im-risc0-zkvm-elf/release/set-builder.bin | |
| # - type: bind | |
| # source: ./target/riscv-guest/guest-assessor/assessor-guest/riscv32im-risc0-zkvm-elf/release/assessor-guest.bin | |
| # target: /target/riscv-guest/guest-assessor/assessor-guest/riscv32im-risc0-zkvm-elf/release/assessor-guest.bin | |
| environment: | |
| <<: *broker-environment | |
| PRIVATE_KEY: ${PRIVATE_KEY} | |
| RPC_URL: ${RPC_URL} | |
| entrypoint: /app/broker --db-url 'sqlite:///db/broker.db' --config-file /app/broker.toml --bento-api-url http://localhost:8081 | |
| # # Example second broker with different configuration | |
| # broker2: | |
| # <<: *broker-common | |
| # volumes: | |
| # - type: bind | |
| # source: ./broker2.toml | |
| # target: /app/broker.toml | |
| # - broker2-data:/db/ | |
| # environment: | |
| # <<: *broker-environment | |
| # # Note: use a different variable if you want to use different private keys in each broker | |
| # PRIVATE_KEY: ${PRIVATE_KEY} | |
| # RPC_URL: ${RPC_URL_2} | |
| # entrypoint: /app/broker --db-url 'sqlite:///db/broker2.db' --config-file /app/broker.toml --bento-api-url http://localhost:8081 | |
| volumes: | |
| redis-data: | |
| postgres-data: | |
| minio-data: | |
| grafana-data: | |
| broker-data: | |
| # broker2-data: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment