> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/wazuh/wazuh-dashboard-plugins/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart Guide

> Get up and running with Wazuh Dashboard Plugins in minutes

## Introduction

This quickstart guide will help you set up a development environment for Wazuh Dashboard Plugins using Docker. You'll have a fully functional Wazuh dashboard running in under 15 minutes.

> [!NOTE]
>
> This guide assumes you have basic familiarity with Docker and command-line interfaces.

## Quick Setup with Docker

### Step 1: Install Prerequisites

**1. Install Docker Desktop**

Download and install [Docker Desktop](https://docs.docker.com/get-docker/) for your operating system.

Verify installation:

```bash theme={null}
docker --version
docker compose version
```

> [!WARNING]
>
> Ensure Docker Compose version is 2.20.2 or higher

**2. Install Node.js**

Install Node.js version 22.22.0 using nvm:

```bash theme={null}
# Install nvm if you haven't already
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Install and use Node.js 22.22.0
nvm install 22.22.0
nvm use 22.22.0
```

**3. Install Yarn**

```bash theme={null}
npm install -g yarn
```

### Step 2: Clone the Repository

```bash theme={null}
git clone https://github.com/wazuh/wazuh-dashboard-plugins.git
cd wazuh-dashboard-plugins
```

### Step 3: Set Up Docker Environment

**1. Create Docker Networks**

```bash theme={null}
docker network create devel
docker network create mon
```

**2. Install Loki Logging Driver**

```bash theme={null}
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
```

**3. Configure Docker Resources**

Open Docker Desktop and allocate:

* **Memory**: 8 GB minimum
* **CPUs**: 4 cores minimum

Navigate to: Settings → Resources → Advanced

### Step 4: Linux-Specific Setup

> **Linux Users: Set Permissions**
>
> If you're on Linux, configure user permissions to avoid permission issues:
>
> ```bash theme={null}
> # Create docker-desktop group
> sudo groupadd -g 100999 docker-desktop
> sudo useradd -u 100999 -g 100999 -M docker-desktop
>
> # Set permissions on the repository
> sudo chown -R $USER:docker-desktop $(pwd)
> sudo usermod -aG docker-desktop $USER
>
> # Log out and log back in for changes to take effect
> ```

### Step 5: Start the Development Environment

```bash theme={null}
cd docker/osd-dev

# Start the environment with OpenSearch 3.5.0 and OpenSearch Dashboards 3.5.0
./dev.sh -o 3.5.0 -d 3.5.0 up
```

> [!TIP]
>
> The first startup will take several minutes as Docker downloads the required images.

### Step 6: Install Plugin Dependencies

**1. Access the Container**

Open a new terminal and attach to the running container:

```bash theme={null}
# List running containers
docker ps

# Attach to the OpenSearch Dashboards container
docker exec -it <container-name> bash
```

**2. Install Dependencies**

Inside the container:

```bash theme={null}
# Navigate to the Wazuh plugin
cd /usr/share/opensearch-dashboards/plugins/wazuh

# Install dependencies
yarn install
```

**3. Start OpenSearch Dashboards**

```bash theme={null}
# Navigate to OpenSearch Dashboards root
cd /usr/share/opensearch-dashboards

# Start the server
yarn start
```

> [!NOTE]
>
> The first start may take 5-10 minutes as it optimizes bundles.

### Step 7: Access the Dashboard

Once the server starts successfully:

1. Open your browser
2. Navigate to `http://localhost:5601`
3. You should see the OpenSearch Dashboards login screen
4. Look for the Wazuh plugin in the main menu

Congratulations! Your Wazuh Dashboard development environment is now running.

## Alternative: Development Without Docker

For a native development setup without Docker:

**1. Install OpenSearch Dashboards**

Download and install OpenSearch Dashboards 3.5.0 from the [official website](https://opensearch.org/downloads.html).

**2. Clone and Build Plugins**

```bash theme={null}
git clone https://github.com/wazuh/wazuh-dashboard-plugins.git
cd wazuh-dashboard-plugins

# Set the OpenSearch Dashboards version
export OPENSEARCH_DASHBOARDS_VERSION=3.5.0

# Build wazuh-core
cd plugins/wazuh-core
yarn install
yarn build

# Build wazuh-check-updates
cd ../wazuh-check-updates
yarn install
yarn build

# Build main plugin
cd ../main
yarn install
yarn build
```

**3. Install Plugins**

```bash theme={null}
cd /path/to/opensearch-dashboards

# Install in dependency order
bin/opensearch-dashboards-plugin install file:///path/to/wazuh-dashboard-plugins/plugins/wazuh-core/build/wazuhCore-5.0.0.zip
bin/opensearch-dashboards-plugin install file:///path/to/wazuh-dashboard-plugins/plugins/wazuh-check-updates/build/wazuhCheckUpdates-5.0.0.zip
bin/opensearch-dashboards-plugin install file:///path/to/wazuh-dashboard-plugins/plugins/main/build/wazuh-5.0.0.zip
```

**4. Start OpenSearch Dashboards**

```bash theme={null}
bin/opensearch-dashboards
```

## Exploring the Dashboard

### First-Time Setup

When you first access the Wazuh dashboard:

**1. Configure API Connection**

The Wazuh dashboard needs to connect to a Wazuh manager API. Configure your API host:

* Host: Your Wazuh manager IP or hostname
* Port: Usually 55000
* Username: API username
* Password: API password

**2. Health Check**

The plugin automatically runs health checks:

* API connectivity validation
* Index pattern creation
* Default configuration setup

**3. Explore Modules**

Navigate through different security modules:

* Security Events
* Integrity Monitoring
* Vulnerability Detection
* Compliance (PCI DSS, GDPR, HIPAA, etc.)

## Key Features to Try

> **Security Events**
>
> View real-time security alerts and events from your infrastructure

> **Agent Management**
>
> Monitor and manage Wazuh agents deployed across your systems

> **Compliance Dashboard**
>
> Check compliance status against PCI DSS, GDPR, and other standards

> **Dev Tools**
>
> Interact with the Wazuh API directly through the built-in console

## Development Workflow

### Making Changes

**1. Edit Source Code**

The plugin source is mounted into the container, so you can edit files on your host:

```bash theme={null}
# Example: Edit a React component
vim plugins/main/public/components/overview/overview.tsx
```

**2. Rebuild (if needed)**

For TypeScript changes, you may need to rebuild:

```bash theme={null}
# Inside the container
cd /usr/share/opensearch-dashboards/plugins/wazuh
yarn build
```

**3. Restart Server**

Restart OpenSearch Dashboards to see your changes:

```bash theme={null}
# Stop with Ctrl+C
# Then restart
yarn start
```

### Running Tests

```bash Jest Tests theme={null}
cd plugins/main
yarn test:jest
```

```bash Linting theme={null}
yarn lint
yarn lint:fix
```

```bash Type Checking theme={null}
tsc --noEmit
```

## Common Tasks

### Updating API Information

When the Wazuh server API changes:

```bash theme={null}
cd plugins/main
yarn generate:api-data --spec https://raw.githubusercontent.com/wazuh/wazuh/v5.0.0/api/api/spec/spec.yaml
```

### Adding External Plugins

To develop with external plugins like reporting:

```bash theme={null}
# Clone external plugin
git clone https://github.com/wazuh/wazuh-dashboard-reporting.git ~/wazuh-dashboard-reporting

# Start environment with external plugin
cd docker/osd-dev
./dev.sh -o 3.5.0 -d 3.5.0 -r wazuh-dashboard-reporting=~/wazuh-dashboard-reporting up
```

### Cleaning Up

```bash theme={null}
# Stop the environment
cd docker/osd-dev
./dev.sh stop

# Remove containers
./dev.sh down

# Remove volumes (warning: deletes data)
docker compose down -v
```

## Troubleshooting

> **Container Won't Start**
>
> Check Docker logs:
>
> ```bash theme={null}
> docker logs <container-name>
> ```
>
> Ensure you have enough resources allocated in Docker Desktop.

> **Permission Denied Errors**
>
> On Linux, verify group permissions:
>
> ```bash theme={null}
> ls -la plugins/
> sudo chown -R $USER:docker-desktop plugins/
> ```

> **Plugin Not Appearing**
>
> 1. Verify plugin is installed: `bin/opensearch-dashboards-plugin list`
> 2. Check OpenSearch Dashboards logs for errors
> 3. Ensure all dependencies are installed correctly

> **Slow Build Times**
>
> Use the NPM cache server:
>
> ```bash theme={null}
> cd docker/cache
> docker compose up -d
> ```

## Next Steps

> **[Architecture](/introduction)**
>
> Learn about the plugin architecture

> **[Contributing](https://github.com/wazuh/wazuh-dashboard-plugins/blob/master/CONTRIBUTING.md)**
>
> Contribute to the project

> **[Style Guide](https://github.com/wazuh/wazuh-dashboard-plugins/blob/master/STYLEGUIDE.md)**
>
> Follow coding standards

> **[Join Slack](https://wazuh.com/community/join-us-on-slack/)**
>
> Get help from the community

## Resources

* [Wazuh Documentation](https://documentation.wazuh.com)
* [OpenSearch Dashboards Documentation](https://opensearch.org/docs/latest/dashboards/)
* [GitHub Repository](https://github.com/wazuh/wazuh-dashboard-plugins)
* [Community Forums](https://groups.google.com/forum/#!forum/wazuh)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.