Skip to content

axonops/axonops-server-compose

Repository files navigation

AxonOps Server Docker Compose

AxonOps is a management platform for Apache Cassandra and Apache Kafka, offering monitoring, maintenance, and backup capabilities. This repository provides a simple way to run AxonOps locally using Docker Compose.

Links:


Prerequisites

Before you begin, make sure you have:

  1. Docker Desktop (recommended for beginners) or Docker Engine installed

  2. Minimum System Requirements:

    • 4 GB RAM available for Docker (8 GB recommended)
    • 10 GB free disk space
    • macOS, Windows 10/11, or Linux
  3. Verify Docker is installed by opening a terminal and running:

    docker --version
    docker compose version

    You should see version numbers for both commands.


Quick Start

Step 1: Download the project

git clone https://github.com/axonops/axonops-server-compose
cd axonops-server-compose

Or download the ZIP file and extract it.

Step 2: Start AxonOps

docker compose up -d

This command:

  • Downloads the required container images (first time only)
  • Starts all services in the background (-d means "detached")
  • May take 2-5 minutes on first run

Step 3: Wait for services to be ready

Check the status of all services:

docker compose ps

Wait until all services show healthy in the STATUS column. You can also watch the logs:

docker compose logs -f

Press Ctrl+C to stop watching logs.

Step 4: Access the dashboard

Open your web browser and go to: http://localhost:3000

You're now ready to configure your AxonOps agents to connect to the server on port 1888.


Managing AxonOps

View running services

docker compose ps

View logs

# All services
docker compose logs -f

# Specific service
docker compose logs -f axon-server

Stop AxonOps (keeps your data)

docker compose down

Start AxonOps again

docker compose up -d

Stop and delete all data (fresh start)

docker compose down -v

Warning: The -v flag removes all stored data. Only use this if you want to start fresh.


Configuration

Memory Settings

By default, the services use conservative memory settings suitable for development:

  • OpenSearch: 2 GB heap
  • Cassandra: 1 GB heap

For production or larger workloads, increase the memory by setting environment variables before starting:

# Set custom memory (before running docker compose up)
export OPENSEARCH_HEAP_SIZE=4g
export CASSANDRA_HEAP_SIZE=4096M

# Then start services
docker compose up -d

Or set them inline:

OPENSEARCH_HEAP_SIZE=4g CASSANDRA_HEAP_SIZE=4096M docker compose up -d

Authentication

The services use default credentials. For production deployments, change these by setting environment variables:

export AXONOPS_SEARCH_USER=admin
export AXONOPS_SEARCH_PASSWORD=your-secure-password
export AXONOPS_DB_USERNAME=your-secure-password

License Key (Optional)

AxonOps is free to use. Enterprise customers with a license key can add it to axon-server.yml:

license_key: "your-license-key"
org: "your-organization-name"

Architecture

This setup runs four services:

Service Description Port
axon-server Backend API server - handles agent connections and data processing 1888 (agents), 8080 (API)
axon-dash Web dashboard for monitoring and configuration 3000
axondb-search OpenSearch database for indexing and search 9200 (internal)
timseriesdb Cassandra database for time-series data storage 9042

Data Storage

Your data is stored in Docker volumes, which persist across restarts:

Volume Purpose
searchdb_data OpenSearch indices and data
timeseriesdb_data Cassandra time-series data
axonops_logs Application logs

To see your volumes:

docker volume ls

Troubleshooting

Services won't start or keep restarting

  1. Check available memory:

    docker stats --no-stream

    If memory is maxed out, increase Docker's memory limit in Docker Desktop settings, or reduce heap sizes.

  2. Check logs for errors:

    docker compose logs axondb-search
    docker compose logs timseriesdb
  3. Restart everything fresh:

    docker compose down -v
    docker compose up -d

"Cannot connect to the Docker daemon"

  • Mac/Windows: Make sure Docker Desktop is running
  • Linux: Start the Docker service: sudo systemctl start docker

"Port already in use"

Another application is using port 3000, 1888, or 9042. Either:

  • Stop the other application
  • Or edit docker-compose.yml to use different ports (e.g., change "3000:3000" to "3001:3000")

Services are "unhealthy"

Wait a few minutes - the databases need time to initialize. If they stay unhealthy:

# Check what's wrong
docker compose logs axondb-search
docker compose logs timseriesdb

# Try restarting
docker compose restart

Dashboard shows "Cannot connect to server"

The axon-server may still be starting. Wait for it to become healthy:

docker compose ps

Using Podman (Alternative to Docker)

If you prefer Podman:

podman compose up -d
podman compose ps
podman compose down

Health Check Script

The check_health.sh script verifies all services are running correctly:

./check_health.sh

If everything is healthy, you'll see no output. If there are problems, you'll see error messages like:

ERROR: Service timseriesdb is not running
ERROR: Service axondb-search is not healthy. Current status: starting

For Podman users:

./check_health.sh podman

Useful Commands Reference

Task Command
Start services docker compose up -d
Stop services docker compose down
View status docker compose ps
View logs docker compose logs -f
Restart a service docker compose restart axon-server
Delete everything docker compose down -v
Update images docker compose pull && docker compose up -d

Getting Help


This project may contain trademarks or logos for projects, products, or services. Any use of third-party trademarks or logos are subject to those third-party's policies. AxonOps is a registered trademark of AxonOps Limited. Apache, Apache Cassandra, Cassandra, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation. Docker is a trademark of Docker, Inc. OpenSearch is a trademark of Amazon Web Services.

Releases

Packages

Contributors

Languages