> ## Content Index
> Fetch the complete content index at: https://www.process-one.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# ejabberd 15.11: Simpler cluster setup
- URL: https://www.process-one.net/blog/ejabberd-15-11-simpler-cluster-setup/
- Published: 2015-11-19T23:00:00.000Z
- Updated: 2024-09-19T15:26:39.000Z
- Description: This new version of ejabberd improves the cluster management to make it simpler to use. It fixes issues some may have faced when setting cluster with ejabberd 15.09 and 15.10.
- Author: Jérôme Sautret

## Improvements

The commands `join_cluster` and `leave_cluster` do not depend on external scripts anymore. This makes operation simpler from user perspective and more portable across systems. The commands are supported on Microsoft Windows the same way as on Linux and OSX.

### Adding a node to a cluster

Suppose you have already configured ejabberd on one node named `ejabberd@node1`. Let’s create an additional node `ejabberd@node2` and connect them together.

1. Copy the .erlang.cookie file from `node1`‘s home to `node2`‘s home.

Start `node2` node, and join it to the cluster:

```
$ ejabberdctl start
$ ejabberdctl join_cluster 'ejabberd@node1'
$ ejabberdctl list_cluster
ejabberd@node1
ejabberd@node2

```

This enables ejabberd’s internal replications to be launched across all nodes so new node can start receiving messages from other nodes and be registered in the routing tables.

### Removing a node from the cluster

Suppose you have already configured ejabberd cluster with nodes named `ejabberd@node1` and `ejabberd@node2` and you want to remove `node1` from the cluster.  
You just needs to shut down `node1`. There is no specific delay for the cluster to figure out that the node is gone, the node is immediately removed from other router entries.  
If the node `node1` is started again, it’s immediately attached back to the cluster until it has been explicitly removed permanently from the cluster.

To permanently remove `node1` from the cluster, just call leave\_cluster command from anywhere in your cluster (either node1 or node2):

```
$ ejabberdctl leave_cluster 'ejabberd@node1'

```

The removed node must be running while calling leave\_cluster to make it permanently removed. It’s then immediately stopped.

## Feedback

As usual, the release is tagged in the Git source code repository on [Github](https://github.com/processone/ejabberd.git?ref=process-one.net).

The source package and binary installers are available at [ProcessOne](https://www.process-one.net/en/ejabberd/downloads/).

If you suspect that you’ve found a bug, please search or fill a bug report on [Github](https://github.com/processone/ejabberd/issues?ref=process-one.net).