Skip to content

title: Prerequisites description: What you need before deploying JIM: container runtime, identity provider, and hardware requirements.


Prerequisites

Before deploying JIM, ensure you have the following in place.

Container Runtime

JIM runs in containers, on either of two runtimes. You will need one of:

  • Docker Engine 24.0 or later, with Docker Compose v2.24 or later
  • Podman 4.4 or later, with systemd: the container engine Red Hat ships and supports on RHEL, including RHEL 9 and 10 (see Running on Podman)

A production server runs Linux. For evaluation, Docker Desktop also runs JIM on macOS and Windows.

Identity Provider

JIM uses OpenID Connect (OIDC) for Single Sign-On authentication. You will need access to an OIDC-compliant Identity Provider, such as:

  • Entra ID
  • Keycloak
  • AD FS
  • Any other OIDC-compliant provider

Before deploying, configure your identity provider with a client registration for JIM. See the SSO Setup Guide for detailed instructions.

Developer environments

If you are using the devcontainer for development, a bundled Keycloak instance is included with pre-configured test users. No external identity provider is needed; sign in with admin / admin.

TLS Certificate

JIM serves HTTPS, which browsers need in order to sign in. Use a certificate for JIM's host name from your organisation's certificate authority, or let the setup script create one; creating one needs OpenSSL on the JIM host. See TLS and Reverse Proxy.

Hardware Requirements

For detailed hardware sizing and production deployment guidance, see the Deployment Guide.

As a general guideline, JIM's resource requirements are modest. A small deployment (a few Connected Systems with thousands of objects) runs comfortably on a single host with 2 CPU cores and 4 GB of RAM.

Database

JIM uses PostgreSQL as its database. You have two options:

  • Bundled PostgreSQL: A PostgreSQL container is included with JIM, on Docker or Podman, for simple deployments. No additional setup is required.
  • External PostgreSQL: Connect to your existing PostgreSQL server by configuring the JIM_DB_HOSTNAME environment variable. Port 5432 is assumed; where your server listens elsewhere, append the port to the hostname (db.example.org:5433). Create JIM's user and its database on the server first, as Before You Install shows.

For Developers

If you are contributing to JIM or building custom connectors, the development environment is fully self-contained:

  • GitHub Codespaces: One-click setup with everything pre-configured (.NET 10.0, PostgreSQL, shell aliases, VS Code extensions).
  • Local devcontainer: Clone the repository and open it in VS Code with the Dev Containers extension. The devcontainer will set up the full environment automatically.

No additional prerequisites are needed when using the devcontainer; it includes all build tools, a PostgreSQL instance, and a bundled Keycloak identity provider for testing.

See the Developer Guide for the full development setup.