544 lines
13 KiB
Markdown
544 lines
13 KiB
Markdown
---
|
|
title: Install and run InfluxDB 3 Explorer
|
|
description: >
|
|
Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**.
|
|
menu:
|
|
influxdb3_explorer:
|
|
name: Install Explorer
|
|
weight: 2
|
|
---
|
|
|
|
Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**.
|
|
|
|
<!-- BEGIN TOC -->
|
|
- [Quick start](#quick-start)
|
|
- [Installation methods](#installation-methods)
|
|
- [Configuration options](#configuration-options)
|
|
- [Persist data across restarts](#persist-data-across-restarts)
|
|
- [Pre-configure InfluxDB connections](#pre-configure-influxdb-connections)
|
|
- [Enable TLS/SSL (HTTPS)](#enable-tlsssl-https)
|
|
- [Choose operational mode](#choose-operational-mode)
|
|
- [Advanced configuration](#advanced-configuration)
|
|
- [Environment variables](#environment-variables)
|
|
- [Volume reference](#volume-reference)
|
|
- [Port reference](#port-reference)
|
|
- [Complete examples](#complete-examples)
|
|
<!-- END TOC -->
|
|
|
|
## Quick start
|
|
|
|
Get {{% product-name %}} running in minutes:
|
|
|
|
1. **Run the Explorer container:**
|
|
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
|
|
2. **Access the Explorer UI at <http://localhost:8888>**
|
|
|
|
3. **[Configure your InfluxDB connection in the UI](/influxdb3/explorer/get-started)**
|
|
|
|
---
|
|
|
|
## Installation methods
|
|
|
|
### Prerequisites
|
|
|
|
Install [Docker](https://docs.docker.com/engine/) or [Docker Desktop](https://docs.docker.com/desktop/) if you haven't already.
|
|
|
|
### Basic setup
|
|
|
|
> [!Tip]
|
|
> To get the latest updates, run the following command before starting the container:
|
|
>
|
|
> ```bash
|
|
> docker pull influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
> ```
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker run](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
ports:
|
|
- "8888:80"
|
|
volumes:
|
|
- ./config:/app-root/config:ro
|
|
restart: unless-stopped
|
|
```
|
|
|
|
Start the container:
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
### Production setup
|
|
|
|
For production deployments with persistence, admin mode, and automatic image updates:
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker run](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--pull always \
|
|
--publish 8888:80 \
|
|
--volume $(pwd)/db:/db:rw \
|
|
--volume $(pwd)/config:/app-root/config:ro \
|
|
--env SESSION_SECRET_KEY=$(openssl rand -hex 32) \
|
|
--restart unless-stopped \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}} \
|
|
--mode=admin
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
pull_policy: always
|
|
command: ["--mode=admin"]
|
|
ports:
|
|
- "8888:80"
|
|
volumes:
|
|
- ./db:/db:rw
|
|
- ./config:/app-root/config:ro
|
|
- ./ssl:/etc/nginx/ssl:ro
|
|
environment:
|
|
SESSION_SECRET_KEY: ${SESSION_SECRET_KEY:-changeme123456789012345678901234}
|
|
restart: unless-stopped
|
|
```
|
|
|
|
Create a `.env` file that contains the following:
|
|
|
|
```bash
|
|
SESSION_SECRET_KEY=your_32_char_hex_string_here
|
|
```
|
|
|
|
Start the container:
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
---
|
|
|
|
## Configuration options
|
|
|
|
### Persist data across restarts
|
|
|
|
{{% product-name %}} stores application data in a SQLite database. To persist this data across container restarts:
|
|
|
|
1. **Create a local directory:**
|
|
|
|
```bash
|
|
mkdir -m 700 ./db
|
|
```
|
|
|
|
2. **Mount the directory when running the container:**
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
--volume $(pwd)/db:/db:rw \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
ports:
|
|
- "8888:80"
|
|
volumes:
|
|
- ./db:/db:rw
|
|
restart: unless-stopped
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
> [!Important]
|
|
> Without a mounted `./db` directory, application data is lost when the container is deleted.
|
|
|
|
### Pre-configure InfluxDB connections
|
|
|
|
Instead of configuring connections through the UI, you can pre-define connection settings using a `config.json` file. This is useful for:
|
|
- Automated deployments
|
|
- Shared team configurations
|
|
- Quick setup for known environments
|
|
|
|
1. **Create a `config.json` file:**
|
|
|
|
```bash
|
|
mkdir -p config
|
|
cat > config/config.json << 'EOF'
|
|
{
|
|
"DEFAULT_INFLUX_SERVER": "http://host.docker.internal:8181",
|
|
"DEFAULT_INFLUX_DATABASE": "mydb",
|
|
"DEFAULT_API_TOKEN": "your-token-here",
|
|
"DEFAULT_SERVER_NAME": "Local InfluxDB 3"
|
|
}
|
|
EOF
|
|
```
|
|
|
|
Customize the following properties for your InfluxDB 3 instance:
|
|
|
|
- **`DEFAULT_INFLUX_SERVER`**: your [InfluxDB 3 Core](/influxdb3/core/reference/config-options/#http-bind) or [Enterprise](/influxdb3/enterprise/reference/config-options/#http-bind) server URL
|
|
- **`DEFAULT_INFLUX_DATABASE`**: the name of your [InfluxDB 3 Core](/influxdb3/core/admin/databases/) or [Enterprise](/influxdb3/enterprise/admin/databases/) database
|
|
- **`DEFAULT_API_TOKEN`**: your [InfluxDB 3 Core](/influxdb3/core/admin/tokens/) or [Enterprise](/influxdb3/enterprise/admin/tokens/) authorization token with the necessary permissions to access your server
|
|
- **`DEFAULT_SERVER_NAME`**: a display name (only used by Explorer) for your [InfluxDB 3 Core](/influxdb3/core/get-started/setup/#start-influxdb) or [Enterprise](/influxdb3/enterprise/get-started/setup/#start-influxdb) server
|
|
|
|
> [!Note]
|
|
> If connecting to a local, _non-Docker_ instance, use `host.docker.internal` as your server host--for example:
|
|
>
|
|
> ```txt
|
|
> "DEFAULT_INFLUX_SERVER": "http://host.docker.internal:8181"
|
|
> ```
|
|
>
|
|
> `host.docker.internal` allows the Docker container to connect to services running on your host machine.
|
|
> For more information, see the [Docker documentation](https://docs.docker.com/desktop/features/networking).
|
|
|
|
2. **Mount the configuration directory:**
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
--volume $(pwd)/config:/app-root/config:ro \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
ports:
|
|
- "8888:80"
|
|
volumes:
|
|
- ./config:/app-root/config:ro
|
|
restart: unless-stopped
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
### Enable TLS/SSL (HTTPS)
|
|
|
|
To enable TLS/SSL for secure connections:
|
|
|
|
1. **Create SSL directory and add certificate files:**
|
|
|
|
```bash
|
|
mkdir -m 755 ./ssl
|
|
# Copy your certificate files to the ssl directory
|
|
cp /path/to/server.crt ./ssl/
|
|
cp /path/to/server.key ./ssl/
|
|
```
|
|
|
|
Required files:
|
|
- Certificate: `server.crt` or `fullchain.pem`
|
|
- Private key: `server.key`
|
|
|
|
2. **Run the container with SSL enabled:**
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:443 \
|
|
--volume $(pwd)/ssl:/etc/nginx/ssl:ro \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
ports:
|
|
- "8888:443"
|
|
volumes:
|
|
- ./ssl:/etc/nginx/ssl:ro
|
|
restart: unless-stopped
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
3. **Access the Explorer UI at <https://localhost:8888>**
|
|
|
|
> [!Note]
|
|
> The nginx web server automatically detects and uses certificate files in the mounted path.
|
|
|
|
### Choose operational mode
|
|
|
|
{{% product-name %}} supports two operational modes:
|
|
|
|
- **Query mode** (default): Read-only UI for querying data
|
|
- **Admin mode**: Full UI with administrative capabilities
|
|
|
|
Set the mode using the `--mode` parameter:
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
# Query mode (default)
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}} \
|
|
--mode=query
|
|
|
|
# Admin mode
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--publish 8888:80 \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}} \
|
|
--mode=admin
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
# For query mode (default), omit the command
|
|
# For admin mode, add:
|
|
command: ["--mode=admin"]
|
|
ports:
|
|
- "8888:80"
|
|
restart: unless-stopped
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
---
|
|
|
|
## Advanced configuration
|
|
|
|
### Environment variables
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `SESSION_SECRET_KEY` | _(random)_ | Secret key for session management. **Set this in production to persist sessions across restarts.** |
|
|
| `DATABASE_URL` | `/db/sqlite.db` | Path to SQLite database inside container |
|
|
| `SSL_CERT_PATH` | `/etc/nginx/ssl/cert.pem` | Path to SSL certificate file |
|
|
| `SSL_KEY_PATH` | `/etc/nginx/ssl/key.pem` | Path to SSL private key file |
|
|
|
|
> [!Important]
|
|
> Always set `SESSION_SECRET_KEY` in production to persist user sessions across container restarts.
|
|
> Enter the following command to generate a secure key:
|
|
>
|
|
> ```bash
|
|
> openssl rand -hex 32
|
|
> ```
|
|
|
|
### Volume reference
|
|
|
|
| Container Path | Purpose | Permissions | Required |
|
|
|----------------|---------|-------------|----------|
|
|
| `/db` | SQLite database storage | 700 | No (but recommended) |
|
|
| `/app-root/config` | Connection configuration | 755 | No |
|
|
| `/etc/nginx/ssl` | TLS/SSL certificates | 755 | Only for HTTPS |
|
|
|
|
### Port reference
|
|
|
|
| Container Port | Protocol | Purpose | Common Host Mapping |
|
|
|----------------|----------|---------|---------------------|
|
|
| 80 | HTTP | Web UI (unencrypted) | 8888 |
|
|
| 443 | HTTPS | Web UI (encrypted) | 8888 |
|
|
|
|
---
|
|
|
|
## Complete examples
|
|
|
|
### Production setup with all features
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
# Create required directories
|
|
mkdir -m 700 ./db
|
|
mkdir -m 755 ./config ./ssl
|
|
|
|
# Generate session secret
|
|
export SESSION_SECRET=$(openssl rand -hex 32)
|
|
|
|
# Create configuration
|
|
cat > config/config.json << 'EOF'
|
|
{
|
|
"DEFAULT_INFLUX_SERVER": "http://host.docker.internal:8181",
|
|
"DEFAULT_INFLUX_DATABASE": "production",
|
|
"DEFAULT_API_TOKEN": "your-production-token",
|
|
"DEFAULT_SERVER_NAME": "Production InfluxDB 3"
|
|
}
|
|
EOF
|
|
|
|
# Run Explorer with all features
|
|
docker run --detach \
|
|
--name influxdb3-explorer \
|
|
--pull always \
|
|
--publish 8888:443 \
|
|
--volume $(pwd)/db:/db:rw \
|
|
--volume $(pwd)/config:/app-root/config:ro \
|
|
--volume $(pwd)/ssl:/etc/nginx/ssl:ro \
|
|
--env SESSION_SECRET_KEY=$SESSION_SECRET \
|
|
--restart unless-stopped \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}} \
|
|
--mode=admin
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer
|
|
pull_policy: always
|
|
command: ["--mode=admin"]
|
|
ports:
|
|
- "8888:443"
|
|
volumes:
|
|
- ./db:/db:rw
|
|
- ./config:/app-root/config:ro
|
|
- ./ssl:/etc/nginx/ssl:ro
|
|
environment:
|
|
SESSION_SECRET_KEY: ${SESSION_SECRET_KEY}
|
|
restart: unless-stopped
|
|
```
|
|
|
|
Create a `.env` file that contains the following:
|
|
|
|
```bash
|
|
SESSION_SECRET_KEY=your_32_char_hex_string_here
|
|
```
|
|
|
|
Start the container:
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|
|
|
|
### Development setup (minimal)
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
{{% code-tabs %}}
|
|
[Docker](#)
|
|
[Docker Compose](#)
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```bash
|
|
docker run --rm \
|
|
--name influxdb3-explorer-dev \
|
|
--publish 8888:80 \
|
|
influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
```
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
explorer:
|
|
image: influxdata/influxdb3-ui:{{% latest-patch %}}
|
|
container_name: influxdb3-explorer-dev
|
|
ports:
|
|
- "8888:80"
|
|
```
|
|
{{% /code-tab-content %}}
|
|
{{< /code-tabs-wrapper >}}
|