---
title: Set up InfluxDB 3 Core
description: Install, configure, and set up authorization for InfluxDB 3 Core.
url: https://docs.influxdata.com/influxdb3/core/get-started/setup/
estimated_tokens: 6970
product: InfluxDB 3 Core
version: core
---

# Set up InfluxDB 3 Core

-   [Prerequisites](#prerequisites)
    
-   [Quick-Start Mode (Development)](#quick-start-mode-development)
    
-   [Start InfluxDB](#start-influxdb)
    
    -   [Object store examples](#object-store-examples)
-   [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 Core**: [Install and verify the latest version](/influxdb3/core/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 Core 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)
    
-   **`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
```

#### 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/core/reference/cli/influxdb3/serve/) as shown in the [Start InfluxDB](#start-influxdb) section below.

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

## Start InfluxDB

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

-   `--node-id`: A string identifier that distinguishes individual server instances. This forms the final part of the storage path: `<CONFIGURED_PATH>/<NODE_ID>`.
    
-   `--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.
    

#### Diskless architecture

InfluxDB 3 supports a diskless architecture that can operate with object storage alone, eliminating the need for locally attached disks. InfluxDB 3 Core can also work with only local disk storage when needed.

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

```bash
# File system object store
# Provide the file system directory
influxdb3 serve \
  --node-id host01 \
  --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
# File system object store
# Provide the file system directory
influxdb3 serve \
  --node-id host01 \
  --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/core/install/#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

```bash
# 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-core influxdb3 serve \
 --node-id my_host \
 --object-store file \
 --data-dir /path/in/container
```

The InfluxDB 3 Core 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 Core–for example:

```yaml
# compose.yaml
services:
  influxdb3-core:
    image: influxdb:3-core
    ports:
      - 8181:8181
    command:
      - influxdb3
      - serve
      - --node-id=node0
      - --object-store=file
      - --data-dir=/var/lib/influxdb3/data
      - --plugin-dir=/var/lib/influxdb3/plugins  # Optional: only needed for processing engine plugins
    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
```

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

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

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

#### 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/core/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 \
  --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
```

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 \
  --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 \
  --object-store memory
```

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

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

#### 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 Core 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 Core supports *admin* tokens, which grant access to all CLI actions and API endpoints.

### Preconfigured admin tokens for automated deployments

For CI/CD pipelines or automated deployments, you can start InfluxDB 3 Core with a preconfigured admin token file instead of creating tokens manually after startup. For more information, see [Use a preconfigured admin token](/influxdb3/core/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/core/reference/cli/influxdb3/create/token/) with the `--admin` option to create your operator token:

<!-- Tabbed content: Select one of the following options -->

**CLI:**

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

**Docker:**

```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.

<!-- End tabbed content -->

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

#### 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.

### Set your token for authorization

Use your operator token to authenticate server actions in InfluxDB 3 Core, such as

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)

<!-- Tabbed content: Select one of the following options -->

**macOS and Linux:**

```bash
export INFLUXDB3_AUTH_TOKEN=YOUR_AUTH_TOKEN
```

**PowerShell:**

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

**CMD:**

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

<!-- End tabbed content -->

##### 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/core/admin/tokens/admin/) - Understand and manage operator and named admin tokens
    
-   [Authentication](/influxdb3/core/reference/internals/authentication/) - Understand authentication, authorizations, and permissions in InfluxDB 3 Core
    

[Get started](/influxdb3/core/get-started/) [Write data](/influxdb3/core/get-started/write/)

#### Related

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