Files
trailofbits-buttercup/dev/docker-compose/env.dev.compose
Riccardo Schirone 143a59c236 fuzzer_runner: split fuzzer's dependencies (#320)
Before this commit, the fuzzer dependend on clusterfuzz, which uses
protobuf 3.20. Since fuzzer-bot depended on common subpackage as well
and also common (and the other packages) require protobuf, we had to use
protobuf 3.20 everywhere. This old dependency however means that a lot
of packages can't be used in their "newer" versions, because they depend
on newer protobuf versions.

This commit splits the fuzzer into a separate fuzzer-runner that is
executed in a separate process inside a separate venv. fuzzer-runner
executes the clusterfuzz-heavy operations (e.g. fuzzing) and isolates the
clusterfuzz dependency, so that the rest of the system can use newer
protobuf version.

* split `fuzzer-bot` in `fuzzer-runner` and `fuzzer-bot`
* have a "full" optional dependency group in `common`, including `openlit`
  and `protobuf`, so that `fuzzer-runner` can use the lite version of `common`
  without bringing those heavy deps
* move `FuzzConfiguration`/`BuildConfiguration` in a separate common file
  that doesn't require to load all protobuf files. Again, in this way
  other components can just depend on the `common` "lite" version and not
  require protobuf stuff
* add `fuzzer-runner` as a separate venv inside the `fuzzer-bot` container
* add `RunnerProxy` class in fuzzer package to provide an interface to
  interact with the fuzzer-runner binary.
2025-09-10 09:52:08 +02:00

100 lines
3.9 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://scantron: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://scantron: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
BUTTERCUP_PATCHER_TASK_STORAGE_DIR=/node_data/crs_scratch
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"
OSS_FUZZ_CONTAINER_ORG=aixcc-afc
BUTTERCUP_UI_HOST=buttercup-ui
BUTTERCUP_UI_EXTERNAL_HOST=buttercup-ui
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"