Download and Startup

Jeffrey is currently distributed in two artifacts standalone JAR File, or Container Image.

Standalone JAR and Prepared Build

  • Java 21 is required to run standalone JAR file

https://github.com/petrbouda/jeffrey/releases/latest/download/jeffrey.jar

java -jar jeffrey.jar

Using Container Images

Start an empty container (JFR Profiles for testing purposes - https://github.com/petrbouda/jeffrey-recordings):

  • Newly added profiles will be stored in ~/.jeffrey/recordings
docker run -it --network host -v $HOME:/root petrbouda/jeffrey

Using Container Images with recordings (for testing purposes)

Start a container with testing JFR Profiles:

  • There is no volume, newly added profiles will be lost after removing the container
docker run -it --network host petrbouda/jeffrey-examples

Build from sources

  • It requires having Java 21 and Node.js 22 installed (Maven plugin uses npm and run vite build)
git clone https://github.com/petrbouda/jeffrey.git && cd jeffrey
mvn clean package
cd build/target
java -jar jeffrey.jar

Build using a Docker Container

Container Image for building is available on DockerHub, or you can build your own https://github.com/petrbouda/jeffrey/blob/master/docker/Dockerfile-builder

git clone https://github.com/petrbouda/jeffrey.git && cd jeffrey
docker run -it -v "$PWD":/app petrbouda/jeffrey-builder mvn clean package -f /app/pom.xml
cd build/target
java -jar jeffrey.jar

Running for development

  • It requires having Java 21 and Node.js 22 installed
  • Start the Backend in IDE: service/core/src/main/java/pbouda/jeffrey/Application.java
  • Start UI
cd pages
npm run dev