13 KiB
title | description | menu | weight | ||||
---|---|---|---|---|---|---|---|
Install and run InfluxDB 3 Explorer | Use [Docker](https://docker.com) to install and run **InfluxDB 3 Explorer**. |
|
2 |
Use Docker to install and run InfluxDB 3 Explorer.
Quick start
Get {{% product-name %}} running in minutes:
-
Run the Explorer container:
docker run --detach \ --name influxdb3-explorer \ --publish 8888:80 \ influxdata/influxdb3-ui:{{% latest-patch %}}
-
Access the Explorer UI at http://localhost:8888
Installation methods
Prerequisites
Install Docker or Docker Desktop if you haven't already.
Basic setup
[!Tip] To get the latest updates, run the following command before starting the container:
docker pull influxdata/influxdb3-ui:{{% latest-patch %}}
{{< code-tabs-wrapper >}} {{% code-tabs %}} Docker run Docker Compose {{% /code-tabs %}}
{{% code-tab-content %}}
docker run --detach \
--name influxdb3-explorer \
--publish 8888:80 \
influxdata/influxdb3-ui:{{% latest-patch %}}
{{% /code-tab-content %}}
{{% code-tab-content %}}
# 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:
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 %}}
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 %}}
# 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:
SESSION_SECRET_KEY=your_32_char_hex_string_here
Start the container:
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:
-
Create a local directory:
mkdir -m 700 ./db
-
Mount the directory when running the container:
{{< code-tabs-wrapper >}} {{% code-tabs %}} Docker Docker Compose {{% /code-tabs %}}
{{% code-tab-content %}}
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 %}}
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
-
Create a
config.json
file: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 or Enterprise server URLDEFAULT_INFLUX_DATABASE
: the name of your InfluxDB 3 Core or Enterprise databaseDEFAULT_API_TOKEN
: your InfluxDB 3 Core or Enterprise authorization token with the necessary permissions to access your serverDEFAULT_SERVER_NAME
: a display name (only used by Explorer) for your InfluxDB 3 Core or Enterprise server
[!Note] If connecting to a local, non-Docker instance, use
host.docker.internal
as your server host--for example:"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. -
Mount the configuration directory:
{{< code-tabs-wrapper >}} {{% code-tabs %}} Docker Docker Compose {{% /code-tabs %}}
{{% code-tab-content %}}
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 %}}
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:
-
Create SSL directory and add certificate files:
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
orfullchain.pem
- Private key:
server.key
- Certificate:
-
Run the container with SSL enabled:
{{< code-tabs-wrapper >}} {{% code-tabs %}} Docker Docker Compose {{% /code-tabs %}}
{{% code-tab-content %}}
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 %}}
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 >}}
-
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 %}}
# 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 %}}
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: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 %}}
# 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 %}}
# 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:
SESSION_SECRET_KEY=your_32_char_hex_string_here
Start the container:
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 %}}
docker run --rm \
--name influxdb3-explorer-dev \
--publish 8888:80 \
influxdata/influxdb3-ui:{{% latest-patch %}}
{{% /code-tab-content %}}
{{% code-tab-content %}}
# 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 >}}