# Getting Started

## Installing VerneMQ

VerneMQ is a high-performance, distributed MQTT message broker. It scales horizontally and vertically on commodity hardware to support a high number of concurrent publishers and consumers while maintaining low latency and fault tolerance. To use it, all you need to do is install the VerneMQ package.

Choose your OS and follow the instructions:

* [CentOS/RHEL](https://docs.vernemq.com/installing-vernemq/centos_and_redhat)
* [Debian/Ubuntu](https://docs.vernemq.com/installing-vernemq/debian_and_ubuntu)

It is also possible to run VerneMQ using our Docker image:

* [Docker](https://docs.vernemq.com/installing-vernemq/docker)

## Starting VerneMQ

{% hint style="info" %}
If you built VerneMQ from sources, you can add the `/bin` directory of your VerneMQ release to `PATH`. For example, if you compiled VerneMQ in the `/home/vernemq` directory, then add the binary directory (`/home/vernemq/_build/default/rel/vernemq/bin`) to your PATH, so that VerneMQ commands can be used in the same manner as with a packaged installation.
{% endhint %}

To start a VerneMQ broker, use the vernemq start command in your Shell:

```
vernemq start
```

A successful start will return no output. If there is a problem starting the broker, an error message is printed to `STDERR`.

To run VerneMQ with an attached interactive Erlang console:

```
vernemq console
```

A VerneMQ broker is typically started in console mode for debugging or troubleshooting purposes. Note that if you start VerneMQ in this manner, it is running as a foreground process that will exit when the console is closed.

You can close the console by issuing this command at the Erlang prompt:

```
q().
```

Once your broker has started, you can initially check that it is running with the vernemq ping command:

```
vernemq ping
```

The command will respond with `pong` if the broker is running or `Node <NodeName> not responding to pings` in case it’s not.

{% hint style="warning" %}
As you may have noticed, VerneMQ will warn you at startup when your system’s open files limit (`ulimit -n`) is too low. You’re advised to increase the OS default open files limit when running VerneMQ. Read more about why and how in the [Open Files Limit documentation](https://docs.vernemq.com/guides/change-open-file-limits).
{% endhint %}

### Starting using systemd/systemctl

If you use a `systemd` service file (as in the binary packages), you can start VerneMQ using the `systemctl` interface to `systemd`:

```
$ sudo systemctl start vernemq
```

Other `systemctl` commands work as well:

```
$ sudo systemctl stop vernemq
$ sudo systemctl status vernemq
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vernemq.com/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
