Install Bindplane Server 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.
version: "3"
volumes:
bindplane:
prometheus:
services:
bindplane:
container_name: bindplane-server
restart: always
image: ghcr.io/observiq/bindplane-ee:1.89.5
ports:
- "3001:3001"
environment:
- BINDPLANE_LICENSE=YOUR_LICENSE_KEY
- BINDPLANE_USERNAME=admin
- BINDPLANE_PASSWORD=admin
- BINDPLANE_REMOTE_URL=http://localhost:3001
- BINDPLANE_SESSION_SECRET=$(uuidgen)
- BINDPLANE_LOG_OUTPUT=stdout
- BINDPLANE_ACCEPT_EULA=true
- BINDPLANE_PROMETHEUS_ENABLE=true
- BINDPLANE_PROMETHEUS_ENABLE_REMOTE=true
- BINDPLANE_PROMETHEUS_HOST=prometheus
- BINDPLANE_PROMETHEUS_PORT=9090
- BINDPLANE_TRANSFORM_AGENT_ENABLE_REMOTE=true
- BINDPLANE_TRANSFORM_AGENT_REMOTE_AGENTS=transform:4568
- BINDPLANE_STORE_TYPE=postgres
- BINDPLANE_POSTGRES_HOST=postgres
- BINDPLANE_POSTGRES_PORT=5432
- BINDPLANE_POSTGRES_DATABASE=bindplane
- BINDPLANE_POSTGRES_USERNAME=bindplane
- BINDPLANE_POSTGRES_PASSWORD=password
depends_on:
- postgres
- prometheus
- transform
postgres:
container_name: bindplane-postgres
restart: always
image: postgres:16
environment:
- POSTGRES_DB=bindplane
- POSTGRES_USER=bindplane
- POSTGRES_PASSWORD=password
volumes:
- bindplane:/var/lib/postgresql/data
prometheus:
container_name: bindplane-prometheus
restart: always
image: ghcr.io/observiq/bindplane-prometheus:1.89.5
volumes:
- prometheus:/prometheus
transform:
container_name: bindplane-transform-agent
restart: always
image: ghcr.io/observiq/bindplane-transform-agent:1.89.5-bindplane
Step 2: Configure Environment Variables
Replace the placeholder with your real values:
BINDPLANE_LICENSE
should be set to your license key.BINDPLANE_REMOTE_URL
should be set to the Docker host's IP address, hostname, or external load balancer. This endpoint is used by agents to communicate with Bindplane for OpAMP and Measurements.localhost
is sufficient for testing on your local machine only.BINDPLANE_USERNAME
andBINDPLANE_PASSWORD
should be set to something secure and unique.BINDPLANE_POSTGRES_PASSWORD
in the bindplane service andPOSTGRES_PASSWORD
in the postgres service should be set to something secure.
Step 3: Start Bindplane
Start the Bindplane service:
docker-compose up -d
Verify that the container is running:
docker-compose ps
View logs for troubleshooting:
docker 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
# Stop all services
docker compose down
# Stop and remove volumes (this will delete all data)
docker compose down -v
Troubleshooting
Common Issues
PostgreSQL fails to start
Check if port 5432 is already in use
Ensure you have proper permissions for the data volume
Bindplane fails to connect to PostgreSQL
Wait for PostgreSQL to fully initialize
Check the PostgreSQL logs:
docker compose logs postgres
Transform agent connection issues
Verify the transform agent is running:
docker compose ps transform
Check transform agent logs:
docker compose logs transform
Viewing Logs
# View logs for a specific service
docker compose logs -f bindplane
docker compose logs -f postgres
docker compose logs -f transform
docker compose logs -f prometheus
# View all logs
docker compose logs -f
Data Persistence
Data is persisted in Docker volumes:
PostgreSQL data:
bindplane
volumePrometheus data:
prometheus
volume
To back up your data, you can use Docker volume backup commands:
docker run --rm -v bindplane:/data -v $(pwd):/backup alpine tar czf /backup/bindplane-backup.tar.gz /data
Container Image Repositories
Bindplane container images can be found in the following locations:
Github Packages:
ghcr.io/observiq/bindplane-ee
Google Artifact Repository:
us-central1-docker.pkg.dev/observiq-containers/bindplane/bindplane-ee
Docker Hub:
observiq/bindplane-ee
Container images are tagged with the release version. For example, Release v1.35.0
will have the tag observiq/bindplane-ee:1.35.0
.
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:
Last updated
Was this helpful?