---
title: Set up InfluxDB 3 Enterprise
description: Install, configure, and set up authorization for InfluxDB 3 Enterprise.
url: https://docs.influxdata.com/influxdb3/enterprise/get-started/setup/
estimated_tokens: 4368
product: InfluxDB 3 Enterprise
version: enterprise
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/enterprise/get-started/setup/
date: '2026-07-11T10:53:18+00:00'
lastmod: '2026-07-11T10:53:18+00:00'
---

* [Prerequisites](#prerequisites)

* [Quick-Start Mode (Development)](#quick-start-mode-development)

* [Start InfluxDB](#start-influxdb)

  * [Object store examples](#object-store-examples)

* [Set up licensing](#set-up-licensing)

  * [Available license types](#available-license-types)

* [Set up authorization](#set-up-authorization)

  * [Create an operator token](#create-an-operator-token)
  * [Set your token for authorization](#set-your-token-for-authorization)

## Prerequisites

To get started, you’ll need:

* **InfluxDB 3 Enterprise**: [Install and verify the latest version](/influxdb3/enterprise/install/) on your system.
* If you want to persist data, have access to one of the following:
  * A directory on your local disk where you can persist data (used by examples in this guide)
  * S3-compatible object store and credentials

## Quick-Start Mode (Development)

For development, testing, and home use, you can start InfluxDB 3 Enterprise without
any arguments. The system automatically generates required configuration values
based on your system’s hostname:

```bash
influxdb3
```

When you run `influxdb3` without arguments, the following values are auto-generated:

* **`node-id`**: `{hostname}-node` (or `primary-node` if hostname is unavailable)

* **`cluster-id`**: `{hostname}-cluster` (or `primary-cluster` if hostname is unavailable)

* **`object-store`**: `file`

* **`data-dir`**: `~/.influxdb`

The system displays warning messages showing the auto-generated identifiers:

```
Using auto-generated node id: mylaptop-node. For production deployments, explicitly set --node-id
Using auto-generated cluster id: mylaptop-cluster. For production deployments, explicitly set --cluster-id
```

> [!Important]
> #### When to use quick-start mode
>
> Quick-start mode is designed for development, testing, and home lab environments
> where simplicity is prioritized over explicit configuration.
>
> **For production deployments**, use explicit configuration values with the[`influxdb3 serve` command](/influxdb3/enterprise/reference/cli/influxdb3/serve/)as shown in the [Start InfluxDB](#start-influxdb) section below.
>
> Quick-start mode listens on all network interfaces.
> Before you start the server on a network that others can reach, see[Create your admin token before you expose the server](#start-influxdb).

**Configuration precedence**: Environment variables override auto-generated defaults.
For example, if you set `INFLUXDB3_NODE_ID=my-node`, the system
uses `my-node` instead of generating `{hostname}-node`.

## Start InfluxDB

Use the [`influxdb3 serve` command](/influxdb3/enterprise/reference/cli/influxdb3/serve/)to start InfluxDB 3 Enterprise.
Provide the following:

* `--node-id`: A string identifier that distinguishes individual server
  instances within the cluster. This forms the final part of the storage path:`<CONFIGURED_PATH>/<CLUSTER_ID>/<NODE_ID>`.
  In a multi-node setup, this ID is used to reference specific nodes.

* `--cluster-id`: A string identifier that determines part of the storage path
  hierarchy. All nodes within the same cluster share this identifier.
  The storage path follows the pattern `<CONFIGURED_PATH>/<CLUSTER_ID>/<NODE_ID>`.
  In a multi-node setup, this ID is used to reference the entire cluster.

* `--object-store`: Specifies the type of object store to use.
  InfluxDB supports the following:

  * `file`: local file system
  * `memory`: in memory *(no object persistence)*
  * `memory-throttled`: like `memory` but with latency and throughput that
    somewhat resembles a cloud-based object store
  * `s3`: AWS S3 and S3-compatible services like Ceph or Minio
  * `google`: Google Cloud Storage
  * `azure`: Azure Blob Storage

* Other object store parameters depending on the selected `object-store` type.
  For example, if you use `s3`, you must provide the bucket name and credentials.

* *(Optional)* `--http-bind`: The address and port for the HTTP API*(default is `0.0.0.0:8181`, which listens on all network interfaces)*.
  To accept only local connections until you create your first admin token,
  specify `127.0.0.1:8181`.

> [!Caution]
> #### Create your admin token before you expose the server
>
> Until the first admin token exists, the `/api/v3/configure/token/admin`endpoint accepts unauthenticated requests, and the server listens on all
> network interfaces by default.
> Anyone who can reach the port during that window can claim the operator token
> and then use the processing engine to run code on the host.
>
> Close the window using one of the following methods:
>
> * Start the server with `--http-bind 127.0.0.1:8181` (with Docker, publish
> the port as `127.0.0.1:8181:8181`),[create your admin token](#create-an-operator-token), and then restart the
> server on the address you intend to use.
> * Block the server port with a firewall until you create the token.
> * Start the server with a[preconfigured admin token](/influxdb3/enterprise/admin/tokens/admin/preconfigured/)so the endpoint never accepts unauthenticated requests.
> We recommend this method for automated and production deployments.

> [!Note]
> #### Diskless architecture
>
> InfluxDB 3 supports a diskless architecture that can operate with object
> storage alone, eliminating the need for locally attached disks.
> InfluxDB 3 Enterprise can also work with only local disk storage when needed.
>
> The combined path structure `<CONFIGURED_PATH>/<CLUSTER_ID>/<NODE_ID>` ensures
> proper organization of data in your object store, allowing for clean
> separation between clusters and individual nodes.

For this getting started guide, use the `file` object store to persist data to
your local disk.

```bash
# File system object store
# Provide the filesystem directory
influxdb3 serve \
  --node-id host01 \
  --cluster-id cluster01 \
  --object-store file \
  --data-dir ~/.influxdb3
```

### Object store examples

[](#file-system-object-store)

File system object store

Store data in a specified directory on the local filesystem.
This is the default object store type.

Replace the following with your values:

```bash
# Filesystem object store
# Provide the filesystem directory
influxdb3 serve \
  --node-id host01 \
  --cluster-id cluster01 \
  --object-store file \
  --data-dir ~/.influxdb3
```

[](#docker-with-a-mounted-file-system-object-store)

Docker with a mounted file system object store

To run the [Docker image](/influxdb3/enterprise/install/#pull-the-docker-image) and persist
data to the local file system, mount a volume for the object store–for example,
provide the following options with your `docker run` command:

* `--volume /path/on/host:/path/in/container`: Mounts a directory from your file system to the container
* `--object-store file --data-dir /path/in/container`: Uses the volume for object storage

```
# File system object store with Docker
# Create a mount
# Provide the mount path
docker run -it \
 --volume /path/on/host:/path/in/container \
 influxdb:3-enterprise influxdb3 serve \
 --node-id my_host \
 --cluster-id my_cluster \
 --object-store file \
 --data-dir /path/in/container
```

> [!Note]
> The InfluxDB 3 Enterprise Docker image exposes port `8181`, the `influxdb3`server default for HTTP connections.
> To map the exposed port to a different port when running a container, see the
> Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/).

[](#docker-compose-with-a-mounted-file-system-object-store)

Docker compose with a mounted file system object store

Open `compose.yaml` for editing and add a `services` entry for
InfluxDB 3 Enterprise–for example:

```
# compose.yaml
services:
  influxdb3-enterprise:
    image: influxdb:3-enterprise
    ports:
      - 8181:8181
    command:
      - influxdb3
      - serve
      - --node-id=node0
      - --cluster-id=cluster0
      - --object-store=file
      - --data-dir=/var/lib/influxdb3/data
      - --plugin-dir=/var/lib/influxdb3/plugins  # Optional: only needed for processing engine plugins
    environment:
      - INFLUXDB3_LICENSE_EMAIL=EMAIL_ADDRESS
    volumes:
      - type: bind
        # Path to store data on your host system
        source: ~/.influxdb3/data
        # Path to store data in the container
        target: /var/lib/influxdb3/data
      - type: bind
        # Path to store plugins on your host system
        source: ~/.influxdb3/plugins
        # Path to store plugins in the container
        target: /var/lib/influxdb3/plugins
```

Replace `EMAIL_ADDRESS` with your email address to bypass the email prompt
when generating a trial or at-home license. For more information, see [Manage your
InfluxDB 3 Enterprise license](/influxdb3/enterprise/admin/license/).

Use the Docker Compose CLI to start the server–for example:

```bash
docker compose pull && docker compose up influxdb3-enterprise
```

The command pulls the latest InfluxDB 3 Enterprise Docker image and starts`influxdb3` in a container with host port `8181` mapped to container port`8181`, the server default for HTTP connections.

> [!Tip]
> #### Custom port mapping
>
> To customize your `influxdb3` server hostname and port, specify the[`--http-bind` option or the `INFLUXDB3_HTTP_BIND_ADDR` environment variable](/influxdb3/enterprise/reference/config-options/#http-bind).
>
> For more information about mapping your container port to a specific host port, see the
> Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/).

[](#s3-object-storage)

S3 object storage

Store data in an S3-compatible object store.
This is useful for production deployments that require high availability and durability.
Provide your bucket name and credentials to access the S3 object store.

```bash
# S3 object store
# Specify the object store type and associated options
influxdb3 serve \
  --node-id host01 \
  --cluster-id cluster01 \
  --object-store s3 \
  --bucket OBJECT_STORE_BUCKET \
  --aws-default-region AWS_REGION \
  --aws-access-key-id AWS_ACCESS_KEY_ID \
  --aws-secret-access-key AWS_SECRET_ACCESS_KEY
```

> [!Note]
> If not specified, `--aws-default-region` defaults to `us-east-1`.
> Specify a different region if your bucket is in another AWS region to avoid redirect errors.

```bash
# Minio or other open source object store
# (using the AWS S3 API with additional parameters)
# Specify the object store type and associated options
influxdb3 serve \
  --node-id host01 \
  --cluster-id cluster01 \
  --object-store s3 \
  --bucket OBJECT_STORE_BUCKET \
  --aws-access-key-id AWS_ACCESS_KEY_ID \
  --aws-secret-access-key AWS_SECRET_ACCESS_KEY \
  --aws-endpoint ENDPOINT \
  --aws-allow-http
```

[](#memory-based-object-store)

Memory-based object store

Store data in RAM without persisting it on shutdown.
It’s useful for rapid testing and development.

```bash
# Memory object store
# Stores data in RAM; doesn't persist data
influxdb3 serve \
  --node-id host01 \
  --cluster-id cluster01 \
  --object-store memory
```

For more information about server options, use the CLI help or view the[InfluxDB 3 CLI reference](/influxdb3/enterprise/reference/cli/influxdb3/serve/):

```bash
influxdb3 serve --help
```

## Set up licensing

When you first start a new instance, InfluxDB 3 Enterprise prompts you to select a
license type.

InfluxDB 3 Enterprise licenses:

* **Authorize** usage of InfluxDB 3 Enterprise software for a single cluster.
* **Apply per cluster**, with limits based primarily on CPU cores.
* **Vary by license type**, each offering different capabilities and restrictions.

### Available license types

* **Trial**: 30-day trial license with full access to InfluxDB 3 Enterprise capabilities.
* **At-Home**: For at-home hobbyist use with limited access to InfluxDB 3 Enterprise capabilities.
* **Commercial**: Commercial license with full access to InfluxDB 3 Enterprise capabilities.

> [!Important]
> #### Trial and at-home licenses with Docker
>
> To generate the trial or home license in Docker, bypass the email prompt.
> The first time you start a new instance, provide your email address with the`--license-email` option or the `INFLUXDB3_LICENSE_EMAIL` environment variable.
>
> *Currently, if you use Docker and enter your email address in the prompt, a bug may
> prevent the container from generating the license .*
>
> For more information, see [the Docker Compose example](/influxdb3/enterprise/admin/license/?t=Docker+compose#start-the-server-with-your-license-email).

> [!Tip]
> #### Use the InfluxDB 3 Explorer query interface
>
> You can complete the remaining steps in this guide using InfluxDB 3 Explorer,
> the web-based query and administrative interface for InfluxDB 3.
> Explorer provides visual management of databases and tokens and an
> easy way to write and query your time series data.
>
> For more information, see the [InfluxDB 3 Explorer documentation](/influxdb3/explorer/).

## Set up authorization

InfluxDB 3 Enterprise uses token-based authorization to authorize actions in the
database. Authorization is enabled by default when you start the server.
With authorization enabled, you must provide a token with `influxdb3` CLI
commands and HTTP API requests.

InfluxDB 3 Enterprise supports the following types of tokens:

* **admin token**: Grants access to all CLI actions and API endpoints.

* **resource tokens**: Tokens that grant read and write access to specific
  resources (databases and system information endpoints) on the server.

  * A database token grants access to write and query data in a
    database
  * A system token grants read access to system information endpoints and
    metrics for the server

> [!Tip]
> ### Preconfigured admin tokens for automated deployments
>
> For CI/CD pipelines or automated deployments, you can start InfluxDB 3 Enterprise with a preconfigured admin token file instead of creating tokens manually after startup.
> For more information, see [Use a preconfigured admin token](/influxdb3/enterprise/admin/tokens/admin/preconfigured/).

### Create an operator token

After you start the server, create your first admin token.
The first admin token you create is the *operator* token for the server.

Use the [`influxdb3 create token` command](/influxdb3/enterprise/reference/cli/influxdb3/create/token/)with the `--admin` option to create your operator token:

[CLI](#cli)[Docker](#docker)

```bash
influxdb3 create token --admin
```

```bash
# With Docker — in a new terminal:
docker exec -it CONTAINER_NAME influxdb3 create token --admin
```

Replace `CONTAINER_NAME` with the name of your running Docker container.

The command returns a token string for authenticating CLI commands and API requests.

> [!Important]
> #### Store your token securely
>
> InfluxDB displays the token string only when you create it.
> Store your token securely—you cannot retrieve it from the database later.

Now that an admin token exists, the server requires a token for all requests.
If you started the server on `127.0.0.1` to protect the[bootstrap window](#start-influxdb), you can now restart it on the address you
want to use–for example, `--http-bind IP_ADDRESS:8181` to listen on a specific
interface, or omit `--http-bind` to listen on all interfaces (default is`--http-bind 0.0.0.0:8181`).

### Set your token for authorization

Use your operator token to authenticate server actions in InfluxDB 3 Enterprise,
such as creating additional tokens, performing administrative tasks, and
writing and querying data.

#### Authorize CLI commands

Use one of the following methods to provide your token and authenticate `influxdb3` CLI commands.

In your command, replace `YOUR_AUTH_TOKEN` with your token string (for example, the [operator token](#create-an-operator-token) from the previous step).

##### Set an environment variable (recommended)

[macOS and Linux](#macos-and-linux)[PowerShell](#powershell)[CMD](#cmd)

```bash
export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN
```

```powershell
$env:INFLUXDB3_AUTH_TOKEN = "YOUR_AUTH_TOKEN"
```

```
set INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN
# Make sure to include a space character at the end of this command.
```

##### Use the `--token` option

```bash
influxdb3 show databases --token YOUR_AUTH_TOKEN
```

#### Authorize HTTP API requests

For HTTP API requests, include your token in the `Authorization` header–for example:

```bash
curl "http://localhost:8181/api/v3/configure/database" \
  --header "Authorization: Bearer YOUR_AUTH_TOKEN"
```

#### Learn more about tokens and permissions

* [Manage admin tokens](/influxdb3/enterprise/admin/tokens/admin/) - Understand and
  manage operator and named admin tokens

* [Manage resource tokens](/influxdb3/enterprise/admin/tokens/resource/) - Create,
  list, and delete resource tokens

* [Authentication](/influxdb3/enterprise/reference/internals/authentication/) -
  Understand authentication, authorizations, and permissions in InfluxDB 3 Enterprise

[Get started](/influxdb3/enterprise/get-started/)[Create a multi-node cluster](/influxdb3/enterprise/get-started/multi-server/)

#### Related

* [Install InfluxDB 3 Enterprise](/influxdb3/enterprise/install/)
* [Manage tokens](/influxdb3/enterprise/admin/tokens/)
* [Use the InfluxDB 3 MCP server](/influxdb3/enterprise/admin/mcp-server/)
* [InfluxDB 3 Enterprise configuration options](/influxdb3/enterprise/reference/config-options/)
