> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Domino

<Warning>
  This guide assumes you have already provisioned your target infrastructure and satisfied the prerequisites outlined in the [Requirements](/6.3/admin/installation/requirements) page.
</Warning>

Installing Domino can be broken down into two principal tasks:

1. Filling out the configuration file.

2. Creating the Domino custom resource.

If you are comfortable tackling all of these tasks in one workflow, you can go through the `bootstrap` command covered in [Bootstrap a Domino Cluster](/6.3/admin/installation/bootstrap).

Otherwise, you can address each of these tasks in turn.

<Tip>
  This guide is intended for use when you install Domino for the first time. If you are upgrading an existing Domino deployment or migrating an existing Domino cluster to use the Platform Operator, please see the [Upgrade Domino](/6.3/admin/operations/upgrade-domino) guide.
</Tip>

## Create the configuration file

1. Get the `$FLEETCOMMAND_AGENT_TAG` for your target release from the [releases](/6.3/admin/installation/releases) page.

2. Use environment variables to set some values used by `ddlctl` CLI. This simplifies the commands you’ll run while installing Domino components:

   ```shell theme={null}
   unset HISTFILE
   export QUAY_USERNAME=<`quay.io` username provided by Domino>
   export QUAY_PASSWORD=<`quay.io` password provided by Domino>
   export FLEETCOMMAND_AGENT_TAG=<Tag that corresponds to the version of Domino deployed>
   ```

3. Generate a configuration file:

   ```shell theme={null}
   ddlctl create config --agent-version $FLEETCOMMAND_AGENT_TAG
   ```

   <Tip>
     If you are creating a configuration file for a target cloud provider, refer to the specific guide for that provider to get the correct value for the `--preset` flag when running this subcommand. For data planes, these are also the `data-plane` and `data-plane-eks` presets.
   </Tip>

4. Running this command will write a configuration file to the current working directory with the name:

   ```shell theme={null}
   config-$FLEETCOMMAND_AGENT_TAG.{timestamp}.yaml
   ```

## Populate the configuration file

In order to install a functional Domino cluster, you will need to update the generated configuration file with the appropriate values for your target environment.

You can refer to the [configuration reference](/6.3/admin/configuration) pages for more details on the values you can set.

<Warning>
  Changing the defaults in the generated configuration can affect the deployment. If you must adjust its parameters, contact a Domino representative.
</Warning>

### Data plane deployments

Domino now supports installing data planes with the operator. You should use the `data-plane` or `data-plane-eks` presets to generate an initial data plane configuration.

The primary difference between the default preset and the `data-plane` preset is the following stanza:

```yaml theme={null}
control_plane: false
data_plane:
  type: remote
```

`email_notifications`, `telemetry`, `blob_storage`, `internal_docker_registry`, `external_docker_registry` and `monitoring` are omitted from the configuration.

Additionally, `storage_classes` is *optional* on data plane installs.

### Recommended install configurations

We recommend enabling the **New Relic integration** while updating the install configuration:

```yaml theme={null}
monitoring:
prometheus_metrics: true
newrelic:
  apm: true
  infrastructure: true
  license_key: '[Token provided by Domino]'
```

The New Relic integration enables Domino application monitoring via New Relic. This helps Domino monitor and proactively assist with platform infrastructure issues. Enabling the New Relic integration can reduce the time it takes to resolve support tickets.

## Create the Domino custom resource

Once you are satisfied with the configuration file, you can create the Domino custom resource. This will get picked up by the [Platform Operator](/6.3/admin/installation/platform-operator) which will then handle the installation of all Domino components.

```shell theme={null}
ddlctl create domino --config config-$FLEETCOMMAND_AGENT_TAG.{timestamp}.yaml --agent-version $FLEETCOMMAND_AGENT_TAG
```

If you would prefer to just generate the `Domino` custom resource YAML, you can supply the `--export` flag and pipe the result to a file.

When the installation completes successfully, you should see a message that says:

```console theme={null}
2019-11-26 21:20:20,214 - INFO - fleetcommand_agent.Application - Deployment complete.
Domino is accessible at $YOUR_FQDN
```

### Dry runs

1. If you would prefer to dry run the installation, you should modify the `Domino` custom resource to put it in dry run mode:

   ```shell theme={null}
   ddlctl create domino --config config-$FLEETCOMMAND_AGENT_TAG.{timestamp}.yaml --agent-version $FLEETCOMMAND_AGENT_TAG --export > domino-cluster.yaml
   ```

2. In the `domino-cluster.yaml` file, modify the `spec.agent.spec` to put the operator in a dry run mode:

   ```yaml theme={null}
   spec:
     agent:
       spec:
         dryRunMode: "true"
   ```

3. Now apply the resource to the cluster:

   ```shell theme={null}
   kubectl apply -f domino-cluster.yaml -n domino-operator
   ```

Dry running an upgrade of Domino will report on the changes that will be made to the Domino cluster compared to what is (or is not) already represented in the Helm manifests in Helm storage.

Once you change `dryRunMode` back to `"false"` (or remove the field entirely), a reconciliation will be triggered and the Domino cluster will be installed.

## Next steps

* Install Domino on [Amazon Elastic Kubernetes Service (EKS)](/6.3/admin/installation/manage-deployments/aws).

* Install Domino on [Azure Kubernetes Service (AKS)](/6.3/admin/installation/manage-deployments/azure).

* Install Domino on [Google Kubernetes Engine (GKE)](/6.3/admin/installation/manage-deployments/gcp).

* Install Domino [offline](/6.3/admin/installation/manage-deployments/private-offline), without a connection to the Internet.

* Install Domino using [OpenShift](/6.3/admin/installation/manage-deployments/openshift).
