馃殌 Announcing BYOC and the OpenTelemetry Distribution BuilderRead more

Install Bindplane in Docker Compose

Learn how to install and configure Bindplane using Docker Compose.

This guide explains how to install and configure Bindplane using Docker Compose. Docker Compose provides an easy way to manage and run Bindplane in a containerized environment.

This setup is intended for development and testing purposes.

Prerequisites

Before installing Bindplane, ensure you have:

  • Docker installed (version 20.10.0 or later)
  • Docker Compose installed (version 2.0.0 or later)
  • At least 2 CPU cores and 4GB of RAM available
  • Ports 3001 available for Bindplane
  • A valid Bindplane license

Step 1: Create Docker Compose Configuration

Create a docker-compose.yaml file. Go to the Download page, select Docker as your platform, copy the content and paste it into your docker-compose.yaml file.

yaml
1version: "3"
2
3volumes:
4  bindplane:
5  prometheus:
6
7services:
8  bindplane:
9    container_name: bindplane-server
10    restart: always
11    image: ghcr.io/observiq/bindplane-ee:1.89.5
12    ports:
13      - "3001:3001"
14    environment:
15      - BINDPLANE_LICENSE=YOUR_LICENSE_KEY
16      - BINDPLANE_USERNAME=admin
17      - BINDPLANE_PASSWORD=admin
18      - BINDPLANE_REMOTE_URL=http://localhost:3001
19      - BINDPLANE_SESSION_SECRET=$(uuidgen)
20      - BINDPLANE_LOG_OUTPUT=stdout
21      - BINDPLANE_ACCEPT_EULA=true
22      - BINDPLANE_PROMETHEUS_ENABLE=true
23      - BINDPLANE_PROMETHEUS_ENABLE_REMOTE=true
24      - BINDPLANE_PROMETHEUS_HOST=prometheus
25      - BINDPLANE_PROMETHEUS_PORT=9090
26      - BINDPLANE_TRANSFORM_AGENT_ENABLE_REMOTE=true
27      - BINDPLANE_TRANSFORM_AGENT_REMOTE_AGENTS=transform:4568
28      - BINDPLANE_STORE_TYPE=postgres
29      - BINDPLANE_POSTGRES_HOST=postgres
30      - BINDPLANE_POSTGRES_PORT=5432
31      - BINDPLANE_POSTGRES_DATABASE=bindplane
32      - BINDPLANE_POSTGRES_USERNAME=bindplane
33      - BINDPLANE_POSTGRES_PASSWORD=password
34    depends_on:
35      - postgres
36      - prometheus
37      - transform
38
39  postgres:
40    container_name: bindplane-postgres
41    restart: always
42    image: postgres:16
43    environment:
44      - POSTGRES_DB=bindplane
45      - POSTGRES_USER=bindplane
46      - POSTGRES_PASSWORD=password
47    volumes:
48      - bindplane:/var/lib/postgresql/data
49
50  prometheus:
51    container_name: bindplane-prometheus
52    restart: always
53    image: ghcr.io/observiq/bindplane-prometheus:1.89.5
54    volumes:
55      - prometheus:/prometheus
56
57  transform:
58    container_name: bindplane-transform-agent
59    restart: always
60    image: ghcr.io/observiq/bindplane-transform-agent:1.89.5-bindplane

Step 2: Configure Environment Variables

Replace the placeholder value for BINDPLANE_LICENSE with your actual license.

Step 3: Start Bindplane

Start the Bindplane service:

bash
1docker-compose up -d

Verify that the container is running:

bash
1docker-compose ps

View logs for troubleshooting:

bash
1docker compose logs -f

Step 4: Access Bindplane

Once the container is running, you can access Bindplane:

  • Bindplane UI: http://localhost:3001
  • Prometheus UI: http://localhost:9090

Step 5: Stopping the Services

bash
1# Stop all services
2docker compose down
3
4# Stop and remove volumes (this will delete all data)
5docker compose down -v

Troubleshooting

Common Issues

  1. PostgreSQL fails to start

    • Check if port 5432 is already in use
    • Ensure you have proper permissions for the data volume
  2. Bindplane fails to connect to PostgreSQL

    • Wait for PostgreSQL to fully initialize
    • Check the PostgreSQL logs: docker compose logs postgres
  3. Transform agent connection issues

    • Verify the transform agent is running: docker compose ps transform
    • Check transform agent logs: docker compose logs transform

Viewing Logs

bash
1# View logs for a specific service
2docker compose logs -f bindplane
3docker compose logs -f postgres
4docker compose logs -f transform
5docker compose logs -f prometheus
6
7# View all logs
8docker compose logs -f

Data Persistence

Data is persisted in Docker volumes:

  • PostgreSQL data: bindplane volume
  • Prometheus data: prometheus volume

To back up your data, you can use Docker volume backup commands:

bash
1docker run --rm -v bindplane:/data -v $(pwd):/backup alpine tar czf /backup/bindplane-backup.tar.gz /data

Security Notes

  • This configuration uses default passwords for PostgreSQL. In a production environment, you should change these.
  • The default configuration exposes ports to localhost only.
  • Sensitive information should be stored in environment variables or secrets management.
  • Generate unique UUIDs for BINDPLANE_SESSIONS_SECRET.

Additional Resources

Next Steps

After installing Bindplane: