How to Deploy the IPED Application: Build, Configure, and Launch Modes Explained

Deploy the IPED application by building the Maven project with mvn clean install, then execute one of three launch modes: the full graphical UI via iped.app.bootstrap.Bootstrap, the lightweight search UI via iped.app.bootstrap.BootstrapUI, or the HTTP web API via iped.engine.webapi.Main. The resulting target/release directory creates a portable, self-contained deployment that requires no system-wide installation according to the sepinf-inc/IPED source code.

Prerequisites for Building IPED

Before you can deploy the IPED application, verify your environment meets these requirements:

  • Java Development Kit 11 with JavaFX support (e.g., Liberica OpenJDK 11 Full)
  • Apache Maven (3.6+ recommended)
  • Git for cloning the repository
  • Sufficient RAM: The bootstrap logic automatically calculates heap size based on physical memory, but at least 8 GB system RAM is recommended for production cases

Ensure JAVA_HOME points to your JDK 11 installation, as the Maven build compiles against Java 11 bytecode targets defined in the parent pom.xml.

Building IPED from Source

IPED uses Maven for dependency management and packaging. The build process assembles a portable release directory containing all necessary JARs, native libraries, and an optional bundled JRE.

Clone the repository and invoke the install goal:

git clone https://github.com/sepinf-inc/IPED.git
cd IPED
mvn clean install

Upon completion, Maven creates target/release/iped-<version>/ (for example, iped-4.4.0-SNAPSHOT). This directory contains:

  • iped.jar – Launcher for the full graphical interface
  • lib/ – All dependency JARs including SleuthKit bindings
  • jre/ – Optional bundled JRE 11.0.13 (Windows deployments)
  • tools/, plugins/, and configuration directories

Deployment Modes and Execution

The IPED application supports three distinct runtime modes, each with dedicated entry points in the source tree.

Full Graphical UI via Bootstrap

The primary deployment mode launches a Swing-based forensic workbench. In iped-app/src/main/java/iped/app/bootstrap/Bootstrap.java, the main(String[] args) method performs these steps:

  1. Detects the case root directory and lib/ folder relative to iped.jar
  2. Constructs a custom classpath including iped.jar, SleuthKit JAR, and plugin directories
  3. Calculates heap size (-Xmx) as 25% of physical RAM (or 50% for search-only mode)
  4. Spawns a new Java process forwarding STDIO/STDERR to iped.app.ui.AppMain

Execute the full UI from the release directory:

cd target/release/iped-4.4.0-SNAPSHOT
java -cp iped.jar:lib/* iped.app.bootstrap.Bootstrap /path/to/case

Omit the case argument to let the bootstrap auto-detect the working directory. Additional CLI options processed by CmdLineArgsImpl include -multicases <file> for batch processing and --nologfile to suppress case directory logging.

Search-Only UI via BootstrapUI

For lightweight case analysis without the full processing pipeline, deploy the search-only interface using iped-app/src/main/java/iped/app/bootstrap/BootstrapUI.java. This launcher:

  • Uses iped-search-app.jar instead of iped.jar
  • Allocates 50% of physical RAM to heap (higher than the default 25%)
  • Delegates to AppMain but initializes fewer UI components

Launch command:

java -cp lib/iped-search-app.jar:lib/* iped.app.bootstrap.BootstrapUI /path/to/case

Web API Server via Main

Deploy IPED as a headless HTTP server by invoking iped-engine/src/main/java/iped/engine/webapi/Main.java. This entry point exposes REST endpoints for remote case querying, file retrieval, and bookmark management.

Start the web API with explicit port and configuration:

java -cp lib/iped-webapi.jar:lib/* iped.engine.webapi.Main \
     -p 8080 \
     -c /path/to/case/config

The Main class invokes Configuration.getInstance().loadConfigurables to initialize the same backend used by the desktop application, ensuring consistent behavior across deployment modes.

Windows Portable Deployment with Bundled JRE

IPED supports zero-installation deployment on Windows through a bundled JRE mechanism. When analysisConfig.getCopyJREToUserHome() returns true (controlled via configuration), the copyBundledJREToHome method in Bootstrap.java silently copies jre/ to ~/.iped/jre-11.0.13.

This allows execution on machines without a pre-installed Java runtime. Use Windows batch syntax for classpath separation:

cd C:\iped-4.4.0-SNAPSHOT
set JAVA_HOME=%USERPROFILE%\.iped\jre-11.0.13
java -cp iped.jar;lib\* iped.app.bootstrap.Bootstrap C:\cases\evidence

The portable structure means you can zip the entire target/release/iped-<version> folder, distribute it to forensic workstations, and launch immediately without registry modifications or system PATH updates.

Key Source Files and Classpath Construction

Understanding the deployment architecture requires examining these specific source files:

The bootstrap classes explicitly exclude the system classpath (-cp overrides defaults), ensuring consistent dependency resolution from the lib/ directory regardless of host environment variables.

Summary

  • Build once: Run mvn clean install to generate a portable release under target/release/iped-<version>
  • Three entry points: Use Bootstrap for full UI, BootstrapUI for search-only, and iped.engine.webapi.Main for HTTP API
  • Classpath isolation: All modes rely on manual classpath construction in Bootstrap.java rather than system Java settings
  • Windows flexibility: The bundled JRE mechanism copies Java 11.0.13 to the user home directory when enabled
  • Memory management: Heap sizes auto-calculate based on physical RAM (25% default, 50% for search UI)
  • Zero installation: The release directory is self-contained; deploy by copying files and executing the appropriate launcher

Frequently Asked Questions

What Java version is required to deploy IPED?

IPED requires Java 11 with JavaFX modules. The build system enforces this via the Maven compiler plugin in the parent pom.xml, and runtime checks in Bootstrap.java validate the JVM version before launching. Liberica OpenJDK 11 Full is recommended because it bundles JavaFX, though any JDK 11 with JavaFX suffices.

How do I run IPED on Windows without installing Java?

Enable the bundled JRE feature by setting copyJREToUserHome=true in your configuration, or manually copy the jre/ folder from the release directory to %USERPROFILE%\.iped\jre-11.0.13. The Bootstrap.java logic detects this path when JAVA_HOME is unset, allowing the application to run on clean Windows systems without a global Java installation.

What is the difference between Bootstrap and BootstrapUI?

Bootstrap (iped-app/src/main/java/iped/app/bootstrap/Bootstrap.java) launches the complete forensic workbench with processing capabilities, plugins, and full UI components. BootstrapUI (iped-app/src/main/java/iped/app/bootstrap/BootstrapUI.java) initializes a reduced environment optimized for search and analysis only, using iped-search-app.jar instead of iped.jar and allocating 50% of system RAM rather than 25%.

Can I deploy IPED as a headless server?

Yes. Deploy the web API mode by executing java -cp lib/iped-webapi.jar:lib/* iped.engine.webapi.Main -p <port>. This starts an HTTP server without Swing components, suitable for containerized deployments or remote forensic infrastructure. The Main class loads the same configuration layer as the desktop application, ensuring compatible case handling across deployment modes.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →