Sign inSign up

crashvb/rea

By crashvb

•Updated 21 days ago

Contains [rea](https://github.com/morluto/rea).

Image
0

174

crashvb/rea repository overview

⁠rea-docker

version) image size linting license

⁠Overview

This docker image contains REA⁠ and serves its MCP catalog over Streamable HTTP. OpenJDK, Ghidra⁠, Hopper⁠, and Kuna⁠ are included for native analysis.

The image builds REA from a pinned upstream source revision because Streamable HTTP support is newer than the current published npm package. Node.js and npm remain available in the runtime image; rebuild the image to make production upgrades reproducible.

REA's HTTP endpoint uses plain HTTP without client authentication. Publish it only on a trusted network or place it behind a TLS and authentication proxy.

Ghidra is the default analysis provider. Select another configured provider with REA_ANALYSIS_PROVIDER or open_binary.provider_id.

⁠Entrypoint Scripts

⁠rea

The embedded entrypoint script is located at /etc/entrypoint.d/rea and performs the following actions:

  1. The REA state and Kuna cache directories are initialized with service-user ownership.
  2. The bundled Hopper launcher is detected at /opt/hopper/bin/Hopper.
  3. A mounted IDA MCP registration is detected at /etc/rea/ida-mcp.json.

The following environment variables configure the service:

VariableDefault ValueDescription
MCP_HOST0.0.0.0MCP listener address.
MCP_PORT8765MCP listener port.
GHIDRA_INSTALL_DIR/opt/ghidraBundled Ghidra installation.
HOPPER_LAUNCHER_PATH/opt/hopper/bin/HopperBundled Hopper launcher.
REA_ANALYSIS_PROVIDERghidraDefault native-analysis provider.
REA_HOME/var/lib/reaHome and persistent state directory for the REA service user.
REA_IDA_MCP_CONFIGIDA MCP registration; automatically set for /etc/rea/ida-mcp.json.
REA_KUNA_CACHE_DIR/var/lib/rea/cache/kunaKuna specification and project cache.
REA_KUNA_COMMAND/usr/local/bin/kunaBundled Kuna executable.

⁠Analysis Providers

⁠Ghidra

Ghidra 12.1.4 and the full OpenJDK 21 are included. REA runs Ghidra headlessly; neither a display nor a GPU is required.

⁠Kuna

Kuna 1.833 is included. This is the version verified by the pinned REA revision. Select it explicitly with REA_ANALYSIS_PROVIDER=kuna or provider_id: "kuna".

⁠Hopper

Hopper 6.6.0 for Linux is included from Hopper's public installer. Its license still governs use of the installed application. Xvfb supplies the display required by the Hopper bridge; a GPU is not required. Select it with REA_ANALYSIS_PROVIDER=hopper or provider_id: "hopper".

⁠IDA

Mount an existing REA-compatible IDA MCP registration at /etc/rea/ida-mcp.json; the entrypoint detects it automatically:

docker run --volume=/path/to/ida-mcp.json:/etc/rea/ida-mcp.json:ro ... crashvb/rea

The commands and paths referenced by the registration must be accessible inside the container. An attached native IDA MCP endpoint can instead be used with an appropriate container network configuration.

⁠Standard Configuration

⁠Container Layout
/
├─ etc/
│  ├─ entrypoint.d/
│  │  └─ rea
│  ├─ healthcheck.d/
│  │  └─ rea
│  ├─ rea/
│  │  └─ ida-mcp.json (optional bind mount)
│  └─ supervisor/
│     └─ config.d/
│        └─ rea.conf
├─ opt/
│  ├─ ghidra/
│  └─ hopper/
├─ usr/
│  └─ local/
│     └─ bin/
│        └─ kuna
└─ var/
   └─ lib/
      └─ rea/
⁠Exposed Ports
  • 8765/tcp - REA Streamable HTTP MCP endpoint at /mcp.
⁠Volumes
  • /var/lib/rea - REA service-user home and persistent state directory.

Mount analysis targets separately, preferably read-only, and pass their container paths to REA.

⁠Development

Source Control⁠

Tag summary

Content type

Image

Digest

sha256:df1a21f5e…

Size

1.1 GB

Last updated

21 days ago

docker pull crashvb/rea