Files
trailofbits-buttercup/dev/docker-compose/env.dev.compose
T
Riccardo Schirone 2009c772b0 fix(docker-compose): point patcher task storage at tasks_storage (#551)
BUTTERCUP_PATCHER_TASK_STORAGE_DIR was /node_data/crs_scratch. The
patcher's get_clean_task() resolves <task_storage>/<task_id>; under
crs_scratch that path is already the fuzzer/scheduler per-task scratch
dir (corpus/crashes/build subdirs, no task_meta.json). remote_archive_
to_dir() early-returns because the dir exists, so the pristine task is
never materialized and TaskMeta.load() raises FileNotFoundError on
task_meta.json during the patcher 'find_tests' node.

Point it at /node_data/tasks_storage (same as
BUTTERCUP_DOWNLOADER_DOWNLOAD_DIR / BUTTERCUP_SCHEDULER_TASKS_STORAGE_DIR),
where the downloaded task with task_meta.json actually lives.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 09:22:40 +02:00

106 lines
4.3 KiB
Plaintext

NODE_DATA_DIR=/node_data
DOCKER_HOST=tcp://dind:2375
BUTTERCUP_LITELLM_KEY=sk-1234
BUTTERCUP_LITELLM_HOSTNAME=http://litellm:8080
BUTTERCUP_DOWNLOADER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_DOWNLOADER_LOG_LEVEL=debug
BUTTERCUP_DOWNLOADER_DOWNLOAD_DIR=/node_data/tasks_storage
BUTTERCUP_DOWNLOADER_SERVE__SLEEP_TIME=5
BUTTERCUP_TASK_SERVER_REDIS_URL=redis://redis:6379
BUTTERCUP_TASK_SERVER_LOG_LEVEL=debug
BUTTERCUP_TASK_SERVER_HOST=0.0.0.0
BUTTERCUP_TASK_SERVER_PORT=8000
BUTTERCUP_TASK_SERVER_API_KEY_ID=515cc8a0-3019-4c9f-8c1c-72d0b54ae561
BUTTERCUP_TASK_SERVER_API_TOKEN_HASH='$argon2id$v=19$m=65536,t=3,p=4$Dg1v6NPGTyXPoOPF4ozD5A$wa/85ttk17bBsIASSwdR/uGz5UKN/bZuu4wu+JIy1iA'
BUTTERCUP_TASK_SERVER_COMPETITION_API_URL=http://buttercup-ui:31323
BUTTERCUP_TASK_SERVER_COMPETITION_API_USERNAME=11111111-1111-1111-1111-111111111111
BUTTERCUP_TASK_SERVER_COMPETITION_API_PASSWORD=secret
# Client Authentication:
# CRS_API_KEY_ID=515cc8a0-3019-4c9f-8c1c-72d0b54ae561
# CRS_API_TOKEN=VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB
# Competition API Authentication
COMPETITION_API_KEY_ID=11111111-1111-1111-1111-111111111111
COMPETITION_API_KEY_TOKEN=secret
BUTTERCUP_SCHEDULER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_SCHEDULER_LOG_LEVEL=debug
BUTTERCUP_SCHEDULER_SERVE__SLEEP_TIME=5
BUTTERCUP_SCHEDULER_SERVE__COMPETITION_API_URL=http://buttercup-ui:31323
BUTTERCUP_SCHEDULER_TASKS_STORAGE_DIR=/node_data/tasks_storage
BUTTERCUP_SCHEDULER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PATCHER_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_PATCHER_SERVE__SLEEP_TIME=5
BUTTERCUP_PATCHER_LOG_LEVEL=debug
# Where the downloaded challenge task lives (matches downloader/scheduler).
# Must NOT be crs_scratch: get_clean_task() resolves <task_storage>/<task_id>,
# which under crs_scratch collides with the fuzzer's per-task scratch dir
# (no task_meta.json there) and crashes TaskMeta.load().
BUTTERCUP_PATCHER_TASK_STORAGE_DIR=/node_data/tasks_storage
BUTTERCUP_PATCHER_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PROGRAM_MODEL_SERVE__REDIS_URL=redis://redis:6379
BUTTERCUP_PROGRAM_MODEL_SERVE__SLEEP_TIME=5
BUTTERCUP_PROGRAM_MODEL_LOG_LEVEL=debug
BUTTERCUP_PROGRAM_MODEL_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_PROGRAM_MODEL_GRAPHDB_ENABLED=false
BUTTERCUP_FUZZER_REDIS_URL=redis://redis:6379
BUTTERCUP_FUZZER_WDIR=/node_data/crs_scratch
BUTTERCUP_FUZZER_CRS_SCRATCH_DIR=/node_data/crs_scratch
BUTTERCUP_FUZZER_CRASH_DIR_COUNT_LIMIT=100
BUTTERCUP_FUZZER_SAMPLE_SIZE=200
BUTTERCUP_FUZZER_LOG_LEVEL=debug
BUTTERCUP_FUZZER_MAX_POV_SIZE=2097152
BUTTERCUP_FUZZER_RUNNER_PATH=/app/fuzzer_runner/runner.sh
BUTTERCUP_FUZZER_TIMEOUT=60
BUTTERCUP_SEED_GEN_LOG_LEVEL=debug
BUTTERCUP_SEED_GEN_SERVER__REDIS_URL=redis://redis:6379
BUTTERCUP_SEED_GEN_WDIR=/node_data/crs_scratch
BUTTERCUP_SEED_GEN_SERVER__SLEEP_TIME=5
BUTTERCUP_SEED_GEN_SERVER__CRASH_DIR_COUNT_LIMIT=100
BUTTERCUP_SEED_GEN_SERVER__MAX_CORPUS_SEED_SIZE=65536
BUTTERCUP_SEED_GEN_SERVER__MAX_POV_SIZE=2097152
# Keep these short for local development, there's just one worker for each
# service and we want to retry as soon as possible usually.
BUILD_TASK_TIMEOUT_MS=120000
BUILD_OUTPUT_TASK_TIMEOUT_MS=120000
DOWNLOAD_TASK_TIMEOUT_MS=120000
READY_TASK_TIMEOUT_MS=120000
DELETE_TASK_TIMEOUT_MS=120000
CRASH_TASK_TIMEOUT_MS=120000
PATCH_TASK_TIMEOUT_MS=120000
CONFIRMED_VULNERABILITIES_TASK_TIMEOUT_MS=120000
INDEX_TASK_TIMEOUT_MS=120000
INDEX_OUTPUT_TASK_TIMEOUT_MS=120000
TRACED_VULNERABILITIES_TASK_TIMEOUT_MS=120000
# OTel - configured to use local SigNoz by default
#OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-otel-collector:4317
# token is b64 encoded "username:password"
#OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic dXNlcm5hbWU6cGFzc3dvcmQ="
#OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
# Settings for externally hosted endpoint, uncomment and set endpoint to use external OTEL
#OTEL_EXPORTER_OTLP_ENDPOINT=""
#OTEL_EXPORTER_OTLP_PROTOCOL="http"
BUTTERCUP_UI_HOST=buttercup-ui
BUTTERCUP_UI_EXTERNAL_HOST=buttercup-ui
# Serve on 31323 internally too, so container-to-container URLs
# (BUTTERCUP_*_COMPETITION_API_URL=http://buttercup-ui:31323) and the
# host-published port both use one consistent port.
BUTTERCUP_UI_PORT=31323
BUTTERCUP_UI_CRS_BASE_URL="http://task-server:8000"
BUTTERCUP_UI_STORAGE_DIR="/tmp/buttercup-ui"
BUTTERCUP_UI_LOG_LEVEL="info"
BUTTERCUP_UI_CRS_KEY_ID="515cc8a0-3019-4c9f-8c1c-72d0b54ae561"
BUTTERCUP_UI_CRS_KEY_TOKEN="VGuAC8axfOnFXKBB7irpNDOKcDjOlnyB"