---
title: Install and run IDM
description: Use the procedures in this section to install, start, run, and stop IDM.
component: pingidm
version: 7.4
page_id: pingidm:install-guide:chap-install
canonical_url: https://docs.pingidentity.com/pingidm/8.1/install-guide/chap-install.html
llms_txt: https://docs.pingidentity.com/pingidm/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Installation", "Startup", "Shutdown", "Uninstall", "Debug"]
superseded_by: https://docs.pingidentity.com/pingidm/8.1/install-guide/chap-install.html
---

# Install and run IDM

Use the procedures in this section to install, start, run, and stop IDM.

> **Collapse: Install IDM**
>
> Follow these steps to install IDM:
>
> 1. Make sure you have an appropriate version of Java installed:
>
>    ```console
>    java -version
>    openjdk version "11.0.20.1" 2023-08-24
>    OpenJDK Runtime Environment Temurin-11.0.20.1+1 (build 11.0.20.1+1)
>    OpenJDK 64-Bit Server VM Temurin-11.0.20.1+1 (build 11.0.20.1+1, mixed mode)
>    ```
>
>    For a description of the Java requirements, refer to [Before you install](../release-notes/before-you-install.html).
>
> 2. Download IDM from [Backstage](https://backstage.forgerock.com/downloads/). Releases on Backstage are thoroughly validated for ForgeRock customers who run the software in production deployments, and for those who want to try or test a given release.
>
> 3. Unpack the contents of the .zip file into the install directory:
>
>    ```
>    unzip ~/Downloads/IDM-7.4.3.zip
>    Archive:  IDM-7.4.3.zip
>      inflating: openidm/.checksums.csv
>       creating: openidm/bundle/
>     extracting: openidm/bundle/openidm-audit-7.4.3.jar
>    ...
>    ```
>
> 4. By default, IDM listens for HTTP and HTTPS connections on ports 8080 and 8443, respectively. To change these port numbers, edit the following settings in your `resolver/boot.properties` file:
>
>    * `openidm.port.http`
>
>    * `openidm.port.https`
>
>    When you deploy IDM in production, you *must* set `openidm.host` to the URL of your deployment, in the same `resolver/boot.properties` file. Otherwise, calls to the `/admin` endpoint are not properly redirected.
>
>    Deployment URLs will vary, depending on whether you're using a load balancer. While IDM documentation does not specify how you'd configure a load balancer, you'll need to configure IDM in a cluster as described in [IDM cluster configuration](cluster-config.html), and specifically in [Deploy Securely Behind a Load Balancer](../security-guide/chap-connections.html#clustering-load-balancer).
>
> 5. Before running IDM in production, replace the default embedded DS repository with a supported repository.
>
>    For more information, refer to [Select a repository](chap-repository.html).

> **Collapse: Start IDM**
>
> Follow these steps to run IDM interactively:
>
> 1. Start the Felix container, load all services, and start a command shell to allow you to manage the container:
>
>    * Bash
>
>    * PowerShell
>
>    ```
>    /path/to/openidm/startup.sh
>    Using OPENIDM_HOME:   /path/to/openidm
>    Using PROJECT_HOME:   /path/to/openidm
>    Using OPENIDM_OPTS:   -Xmx1024m -Xms1024m
>    Using LOGGING_CONFIG: -Djava.util.logging.config.file=/path/to/openidm/conf/logging.properties
>    -> OpenIDM version "7.4.3"
>    OpenIDM ready
>    ```
>
>    ```
>    \path\to\openidm\startup.bat
>    "Using OPENIDM_HOME:   \path\to\openidm"
>    "Using PROJECT_HOME:   \path\to\openidm"
>    "Using OPENIDM_OPTS:   -Xmx1024m -Xms1024m -Dfile.encoding=UTF-8"
>    "Using LOGGING_CONFIG: -Djava.util.logging.config.file=\path\to\openidm\conf\logging.properties"
>    -> OpenIDM version "7.4.3"
>    OpenIDM ready
>    ```
>
> 2. At the OSGi console `→` prompt, you can enter commands such as `help` for usage, or `ps` to view the bundles installed.
>
>    Startup errors and messages are logged to the console by default. You can also view these messages in the log files at `/path/to/openidm/logs`.

> **Collapse: Run IDM as a Background Process**
>
> You can also start IDM as a background process on UNIX and Linux systems. Follow these steps, preferably before you start IDM for the first time:
>
> 1. If you have already started the server, shut it down and remove the Felix cache files under `openidm/felix-cache/` :
>
>    ```
>    shutdown
>    ...
>    rm -rf felix-cache/*
>    ```
>
> 2. Start the server in the background. The `nohup` survives a logout, and the `2>&1&` redirects standard output and standard error to the noted `console.out` file:
>
>    ```
>    nohup ./startup.sh > logs/console.out 2>&1&
>    [1] 2343
>    ```
>
> To stop the server running as a background process, use the `shutdown.sh` script:
>
> ```
> ./shutdown.sh
> Stopping OpenIDM (2343)
> ```
>
> |   |                                                                                                                                                                                                                                                                                                                                                                                                                     |
> | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
> |   | Although installations on macOS systems are not supported in production, you might want to run IDM on macOS in a demo or test environment. To run IDM in the background on a macOS system, take the following additional steps:- Remove the `org.apache.felix.shell.tui-*.jar` bundle from the `openidm/bundle` directory.
>
> - Disable [ConsoleHandler logging](../monitoring-guide/server-logs.html#log-disabling). |

> **Collapse: Stop IDM**
>
> You can stop IDM from the `->` prompt in the OSGi console.
>
> * In the OSGi console, enter the `shutdown` command at the `->` prompt.
>
> * On Unix systems, you can stop IDM by using the `shutdown.sh` script:
>
>   ```
>   /path/to/openidm/shutdown.sh
>   Stopping OpenIDM (31391)
>   ```

> **Collapse: Uninstall IDM**
>
> 1. Stop the server if it is running, as described in [Stop IDM](#stop-openidm).
>
> 2. Remove the directory where you installed the software:
>
>    ```
>    rm -rf /path/to/openidm
>    ```
>
> 3. If you use a JDBC database for the repository, drop the `openidm` database.

> **Collapse: Start in Debug Mode**
>
> To debug custom libraries, start the server with the Java Platform Debugger Architecture (JPDA):
>
> 1. Start IDM with the `jpda` option:
>
>    ```
>    /path/to/openidm/startup.sh jpda
>    Executing ./startup.sh...
>    Using OPENIDM_HOME:   /path/to/openidm
>    Using OPENIDM_OPTS:   -Xmx1024m -Xms1024m -Djava.compiler=NONE -Xnoagent -Xdebug
>     -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
>    Using LOGGING_CONFIG:
>       -Djava.util.logging.config.file=/path/to/openidm/conf/logging.properties
>    Listening for transport dt_socket at address: 5005
>    Using boot properties at /path/to/openidm/resolver/boot.properties
>    -> OpenIDM version "7.4.3" (revision: xxxx)
>    OpenIDM ready
>    ```
>
>    The relevant JPDA options are listed in the startup script (`startup.sh`).
>
> 2. In your IDE, attach a Java debugger to the JVM via socket on port 5005.
>
> |   |                                                                                                     |
> | - | --------------------------------------------------------------------------------------------------- |
> |   | This interface is internal and subject to change. If you depend on this interface, contact support. |
