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

# Overview

> Deploy the Control Plane in your own infrastructure with Docker Compose, Kubernetes or AWS.

The [Control Plane](/docs/core-concepts/control-plane) is the service your Sidecars register with and pull configuration from. You run one per environment.

<Note>
  The Control Plane is an **Enterprise** feature and requires a license. [Talk to us](https://hoop.dev/start) to get one, or use the [managed service](https://use.hoop.dev) and skip this page entirely.
</Note>

***

## Before you start

* A license key.
* A hostname your Sidecars can reach over HTTPS. Sidecars only ever make outbound requests, so the Control Plane does not need to reach *them*.
* A PostgreSQL database. The compose file below brings one up; point `POSTGRES_DB_URI` at your own instead if you have one.

***

## How to deploy it

The mode is chosen by the subcommand: `hoop start control-plane` rather than
`hoop start gateway`. One image serves both.

<CardGroup cols={2}>
  <Card title="Docker Compose" icon="docker" href="/docs/control-plane/deployment/docker-compose">
    Postgres and the Control Plane on a single host, with an optional Sidecar
    connected to it. Good for evaluation and for single-host production.
  </Card>

  <Card title="Kubernetes" icon="server" href="/docs/control-plane/deployment/kubernetes">
    The Helm chart, on any cloud provider. Bring your own PostgreSQL; publish it
    with a Service or the Gateway API.
  </Card>
</CardGroup>

***

## After it is running

<Steps>
  <Step title="Create the first account">
    Authentication is local by default — the Control Plane manages users and passwords itself, so you can sign in as soon as it is up.
  </Step>

  <Step title="Apply your license">
    See [License Management](/docs/setup/license-management).
  </Step>

  <Step title="Connect your first Sidecar">
    Issue a token, point a Sidecar at the Control Plane, and confirm it picked up its configuration. See [Connect a Sidecar](/docs/control-plane/connect-sidecar).
  </Step>
</Steps>

***

## Keeping it current

Upgrade the Control Plane first, then the Sidecars. A Control Plane at 1.210.0 or later serves each Sidecar only what its version can read, so Sidecars can lag behind it. See [Upgrading](/docs/control-plane/connect-sidecar#upgrading) for the details.

***

## Next

<CardGroup cols={2}>
  <Card title="Connect a Sidecar" icon="link" href="/docs/control-plane/connect-sidecar">
    Token, server host, and confirming the handshake.
  </Card>

  <Card title="Environment Variables" icon="list" href="/docs/control-plane/environment-variables">
    Every variable the Control Plane reads.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.