Linux

Where Does ejabberd Store Config and Data?

ejabberd host config and message archive paths on Linux for self-hosted XMPP chat servers. And restore steps.

Last updated

ejabberd keeps server config in /etc/ejabberd/ejabberd.yml with hosts, modules, and database links. Rosters and messages live in Mnesia under /var/lib/ejabberd. Uploads share that tree per config.

Larger installs point at MySQL or Postgres instead of Mnesia. The config file records which backend is active. Back up the config folder with the database tree. Hosts in the config must match certificates. Message archive stores history per policy. Clustering shares rosters across nodes. Shared rosters push contact lists.

Where ejabberd stores this, by platform

Linux
/etc/ejabberd/ejabberd.yml

Hosts, modules, and database settings for the node. Restrict read access since secrets live here. Test with ejabberdctl check before reloading.

Linux
/var/lib/ejabberd

Roster database with offline messages and uploads inside. Stop the service before copying for consistency. SQL installs keep equivalents externally.

Frequently asked questions

what do i back up for an ejabberd move

Copy /etc/ejabberd with /var/lib/ejabberd for full moves. Configs hold hosts and modules. The database holds rosters and offline messages. Both restore chat.

where are ejabberd file uploads stored

Open ejabberd.yml in /etc/ejabberd to read hosts and database blocks. Uploads default under /var/lib/ejabberd/upload. The file decides where files land.

Notice an outdated path? Let us know.