---
title: Switching from development mode to production mode
description: IG operates in development mode and production mode, as defined inDevelopment Mode and Production Mode.
component: pinggateway
version: 7.2
page_id: pinggateway:maintenance-guide:immutable
canonical_url: https://docs.pingidentity.com/pinggateway/7.2/maintenance-guide/immutable.html
revdate: 2022-04-12T12:16:42Z
---

# Switching from development mode to production mode

IG operates in development mode and production mode, as defined in[Development Mode and Production Mode](../gateway-guide/about.html#operating-modes).

After installation, IG is by default in production mode. While you evaluate IG or develop routes, it can be helpful to switch to development mode as described in [Switching from production mode to development mode](../getting-started/next-steps.html#dev-mode-switch). However, after deployment it is essential to switch back to production mode to prevent unwanted changes to the configuration.

1. In `$HOME/.openig/config/admin.json` (on Windows, `%appdata%\OpenIG\config` ), change the value of `mode` from `DEVELOPMENT` to `PRODUCTION`:

   ```json
   {
     "mode": "PRODUCTION"
   }
   ```

   The file changes the operating mode from development mode to production mode. For more information about the `admin.json` file, see [AdminHttpApplication (admin.json)](../reference/RequiredConfiguration.html#AdminHttpApplication).

   The value set in `admin.json` overrides any value set by the `ig.run.mode` configuration token when it is used in an environment variable or system property. For information about `ig.run.mode`, see [Configuration Tokens](../reference/PropertyValueSubstitution.html#ConfigToken).

2. (Optional) Prevent routes from being reloaded after startup:

   * To prevent all routes in the configuration from being reloaded, add a `config.json` as described in the [Getting started](../getting-started/preface.html), and configure the `scanInterval` property of the main Router.

   * To prevent individual routes from being reloaded, configure the `scanInterval` of the routers in those routes.

     ```json
     {
       "type": "Router",
       "config": {
         "scanInterval": "disabled"
       }
     }
     ```

   For more information, see [Router](../reference/Handlers.html#Router).

3. Restart IG.

   When IG starts up, the route endpoints are not displayed in the logs, and are not available. You can't access Studio on <http://ig.example.com:8080/openig/studio>.
