> For the complete documentation index, see [llms.txt](https://docs.elimity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elimity.com/reference-manual/v3.40.0/installation/elimity-insights-server.md).

# Elimity Insights server

The Elimity Insights server fulfills multiple roles in a deployment of the Elimity Insights platform:

* Serving the Elimity Insights web application
* Serving the Elimity Insights REST API
* Running various scheduled background tasks
  * Performing imports for built-in sources
  * Sending daily notifications for access review reminders and failed health checks

For SaaS customers we perform the setup and maintenance of Elimity Insights servers behind the scenes. These installation instructions are mainly useful for on-prem deployments. We strongly recommend deploying the Elimity Insights server as a container, but for existing customers we also keep supporting installations using plain executables.

## Container-based installation (recommended)

We distribute all Elimity Insights releases as Docker images for both Linux and Windows Server hosts. Our recommendation for deploying these is to use your cloud provider's dedicated-VM-for-container solution (e.g. Google Cloud Containers on Compute Engine, Azure Container Instances, ...) and combining it with their product for HTTP(S) proxying (e.g. Google Cloud Load Balancing, Azure Load Balancer). Note that we don't support deploying Elimity Insights using services like Google Cloud Run and Azure Container Apps (but we do recommend these for [gateways and import agents](/technical-guides/gateways-and-import-agents.md)). The main reason is that Elimity Insights servers currently do not match most cloud providers' definition of a microservice:

* Elimity Insights servers build a cache on startup which might take a while.
* Elimity Insights servers do not support horizontal scaling.
* Elimity Insights servers perform long-running tasks in the background.

Services like Google Cloud Containers on Compute Engine and Azure Container Instances however are a perfect fit for Elimity Insights servers:

* No manual VM management
* Great integration with your cloud provider's key vault for mounting secrets
* Configuration / monitoring / upgrades via your cloud provider's user-friendly UI

We also support deploying manually on e.g. Windows Server if using your cloud provider's dedicated-VM-for-container solution is not an option. In either case please refer to [our documentation about working with containers](/technical-guides/working-with-containers.md) for detailed setup instructions. Visit <https://console.cloud.google.com/artifacts/docker/elimity-general/europe-west1/docker/insights> to get a list of available image tags.

## Executable-based installation

If the container-based installation is not an option for you, then deploying a plain Elimity Insights server executable is another approach we support. In this case you'll probably need to consider performing some additional setup steps:

* Ensure the server restarts automatically and runs continuously in the background, e.g. as a Linux / Windows service.
* Configure a logging file for the server so you can easily inspect logs later.
* Set up log rotation to avoid running out of disk space.

## Upgrades

Upgrading an Elimity Insights deployment typically requires performing the following steps:

1. Shutting down the old server
2. Backing up your database
3. Performing database migrations (not applicable for patch upgrades)
4. Updating the server (simply bumping image version for container-based installations)
5. Starting the updated server

For database migrations we also provide both OCI images and plain executables. As usual, we recommend using a CaaS solution like Google Cloud Run or Azure Container Apps to perform database migrations as a one-off job. You can also run the image manually using the Docker CLI:

```shell-session
$ docker run --rm europe-west1-docker.pkg.dev/elimity-general/docker/insights-database-migrate:<tag> help
Elimity Insights database migration tool
Description:
  This tool applies database migrations required for upgrading Elimity Insights. It migrates the specified Postgres
  databases in-place. Note that this tool can only migrate databases for Elimity Insights v3.x.

Usage:
  elimity-insights-database-migrate help
  elimity-insights-database-migrate migrate -dsn=<dsn> -target-version=<target-version>
  elimity-insights-database-migrate target-versions
  elimity-insights-database-migrate version

Commands:
  help            Print usage information
  migrate         Migrate a database
  target-versions List supported target versions
  version         Print version information

Flags:
  -dsn=<dsn> Data source name, e.g. 'postgres://user@host/database'
  -target-version=<target-version> Target version, e.g. 'v3.1'
```

Visit <https://console.cloud.google.com/artifacts/docker/elimity-general/europe-west1/docker/insights-database-migrate> to get a list of available tags for this specific image.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.elimity.com/reference-manual/v3.40.0/installation/elimity-insights-server.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
