# Install Datalore On-Premises

This page is an overview of Datalore On-Premises installation options. You can skip it and advance directly to the installation topics. However, we recommend reading this page to get a better idea of the entire process.

## Installation process overview

> **Tip:**
> Normally, a greenfield Datalore deployment should take around an hour, if no unforeseen infrastructure-related issues occur during the procedure.

The installation workflow comprises the following stages:

* [Infrastructure preparation and installation method selection](#infrastructure-preparation-and-installation-method-selection)

* [Basic installation](#basic-installation)

* [Required and optional configuration procedures](#configuration-procedures)

* [Upgrade procedure](#upgrade-your-version)

### Infrastructure preparation and installation method selection

> **Warning:**
> Currently, we only support 64-bit Linux as a host system. ARM-based platforms, MacOS and Windows are not supported at the moment.

Before the installation of Datalore On-Premises itself, prepare the platform where you want to deploy it. Once the platform is prepared, select your installation method:

* [Kubernetes-based installation](install-datalore-on-premises-using-kubernetes-helm.html)

* [Docker-based installation](install-datalore-on-premises-using-docker.html)

Refer to the table below to consider your infrastructure options and compare the two installation methods.

|  | Docker deployment | Kubernetes deployment |
| --- | --- | --- |
| Platform | The following options are suitable for both methods:     * [Amazon Web Service (AWS)](https://docs.aws.amazon.com/)    * [Azure](https://learn.microsoft.com/en-us/azure/?product=popular)    * [Google Cloud Platform](https://cloud.google.com/docs)    * [Bare Metal Cloud](https://phoenixnap.com/bare-metal-cloud)    * On-premises server    |
| General information | [Docker Compose](https://docs.docker.com/compose/) method  This method is recommended unless you specifically want to use a Kubernetes cluster.     If you have not decided which platform or service to choose yet, we recommend that you try installing Datalore On-Premises on an AWS EC2 instance. Refer to [this guide](https://aws.amazon.com/getting-started/guides/deploy-webapp-ec2/) to learn how to create your own infrastructure in AWS.    | [Helm charts](https://helm.sh/docs/) method     Besides creating and running a cluster directly on a virtual machine (eg. EC2 instance), you can use dedicated Kubernetes services:        * [Elastic Kubernetes Service for AWS (EKS)](https://aws.amazon.com/eks/)    * [Azure Kubernetes Service](https://learn.microsoft.com/en-us/azure/aks/)    * [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine)    |  |
| Key differences |      * Docker-based installation is quicker and easier, which makes it more suitable for a wider range of customers    * Kubernetes deployment allows you to use several machines in your Datalore infrastructure and control your computational resources.    |
| Hardware requirements |      * Datalore server: * CPU: minimum of 4 cores * RAM: minimum 4GB, recommended 8GB or higher    * Computations     > **Warning:** > Your projected computations and number of agents working in parallel must be one of the main factors when calculating system requirements for your installation.    Because users have different needs and projects, we can only suggest a simplified formula for you to get a better idea of how calculating this value can be done:       ``` 4 * (N + 1) ```   where N is the number of projected users, each working on one document.     For example, for a team of 10 people working as described above, you will need at least 44 GB of RAM.   |
| System requirements |      * Docker    * Docker Compose v2.32 or greater    * PostgreSQL 15 database: * CPU: 1 core minimum, 2+ recommended * RAM: 4 GB minimum, 8 GB recommended * 4 GB minimum available for database, 6+GB recommended   |      * k8s cluster (with minimum of 1 machine available for scheduling the workload pods)    * Kubectl on your machine pointed to this cluster    * Helm    * PostgreSQL 15 database: * CPU: 1 core minimum, 2+ recommended * RAM: 4 GB minimum, 8 GB recommended * 4 GB minimum available for database, 6+GB recommended     Current release of Datalore was tested with Kubernetes v1.30 and Helm v3.15.2, but other versions may work too.   |

> **Note:**
> To learn more about the necessary Postgres permissions, refer to [Database](datalore-on-premises-security-considerations.html#database-permissions).

### Basic installation

The next stage is the basic installation procedure that allows you to get Datalore On-Premises up and running on the infrastructure of your choice. Follow one of the guides below to use the method you selected.

* [Docker-based installation](install-datalore-on-premises-using-docker.html)

* [Kubernetes-based installation](install-datalore-on-premises-using-kubernetes-helm.html)

As a result, you will have Datalore On-Premises installed and ready for use, as well as your first signed-up Datalore user, who will have the administrator rights.

### Configuration procedures

Whichever basic installation method you choose, it is followed by a set of configuration procedures.

The table below lists all configuration procedures. Unless noted otherwise, a procedure is applicable for both installation methods.

| Procedure | Description |
| --- | --- |
| Required |
|  Configure agents ([Docker](configure-docker-agents.html) \| [Helm](configure-agents-helm-installation.html) ) | Used to customize how your agents work to manage your computational resources |
| [Set up GPU machines](enable-gpu-machines.html) | Used to enable GPU machines |
| [Configure plans](configure-plans.html)) | Used to customize resource usage among your Datalore users |
| Optional |
| [Customize or update environment](customize-or-update-environment.html) | Used to create multiple base environments out of custom Docker images |
| Set up JetBrains Hub ([Docker](use-hub-for-docker-installation.html) \| [Helm](use-hub-for-helm-installation.html)) | Used to integrate an authentication service |
| [Enable gift codes](enable-gift-codes.html) | Activate the service for generating and processing gift codes |
| [Enable email service](enable-email-service.html) | Used to activate email notifications |
| Enable user activity logging ([Docker](enable-user-activity-logging-docker-installation.html) \| [Helm](enable-user-activity-logging-helm-installation.html)) | Used to set up auditing of your Datalore users |

### Upgrade your version

Each installation method has its own upgrade procedure:

* [Upgrade Datalore in Docker deployment](upgrade-datalore-on-premises-docker-installation.html)

* [Upgrade Datalore in Kubernetes deployment](upgrade-datalore-on-premises-helm-installation.html)

We duly notify our customers of new version releases so they can promptly upgrade. Generally, upgrading a Docker-based installation is quicker and easier than the Kubernetes-based one.

