Files
trailofbits-buttercup/dev/docker-compose
Riccardo Schirone ec7031c5ef fix(common): use budgeted LITELLM_API_KEY so LITELLM_MAX_BUDGET is enforced (#550)
* fix(common): use budgeted LITELLM_API_KEY for the LLM client

create_llm() authenticated with BUTTERCUP_LITELLM_KEY, which
litellm_config.yaml defines as general_settings.master_key. LiteLLM
master keys bypass all budget/rate enforcement, so LITELLM_MAX_BUDGET
had no effect — an e2e run with --budget 1 spent ~$4.77 unthrottled
with every /chat/completions returning 200.

The budgeted virtual key (llm-user, created with max_budget=
$LITELLM_MAX_BUDGET by litellm-user-keys-setup) is already plumbed:
seed-gen/patcher entrypoints export LITELLM_API_KEY from the mounted
key file. create_llm() just never read it.

Prefer LITELLM_API_KEY when set; fall back to BUTTERCUP_LITELLM_KEY so
environments without a provisioned budgeted key are unaffected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(compose): document LITELLM_MAX_BUDGET in env.template (complements #550)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 15:52:14 +02:00
..

Docker Compose Development Setup

This directory contains the legacy Docker Compose setup for Buttercup CRS, preserved for developers who need to run specific components for quick testing and development.

Usage

From the repository root directory:

# Run all services
cd dev/docker-compose && docker-compose up -d

# Run specific services or profiles
cd dev/docker-compose && docker-compose --profile fuzzer-test up -d
cd dev/docker-compose && docker-compose --profile graphdb up -d

# Stop services
cd dev/docker-compose && docker-compose down

Configuration

  • env.template - Template for environment variables (copy to .env and customize)
  • env.dev.compose - Development-specific environment configuration
  • compose.yaml - Main compose file with all services

Notes

  • This setup is not recommended for production - use the Kubernetes deployment instead
  • Primarily useful for developers who need to run individual components for testing
  • The main deployment method is now Kubernetes via make deploy from the repository root
  • See the main README for the recommended setup instructions