Ananth's picture

Hi all,

We are novices in this.... we are trying out Turnkey XMPP and Web Chat and we've not reached any where... where can we get some documentation?

We have the server up and running, but don't know how to customise to our network, like renaming or adding chat rooms or users...

If some one can either guide us or point to any detailed documentation, we can get the service up and running...

Thanks to all

anth :-)

Jeremy Davis's picture

I don't actually have any experience with that appliance and can't actually answer your questions, however I can give you some ideas.

Unfortunately there is not a lot of TKL specific documentation for many of the appliances. What little there is is pretty much contained on the appliance page which hopefully may be of some use. You may also find some relevant info for the specific components on their respective web sites: ejabberd & Squeqe

Also perhaps you can help rectify the documentation problem by writing some on the wiki. I would suggest making a child page here (click "add child page" link down the bottom).

Hopefully someone will be able to help you some more. To get specific help it may be useful to others to provide a little more info about your setup and what steps you have tried, etc.

Good luck.

Ananth's picture

Thanks Jed,

We could progress a little with the limited info in the appliance page, but ...... going through ejabberd & Squeqe pages will mean a lot of reading and testing... which might take up some time

It is supposed to be and out of the box solution, but if some research work is also involved then probably we will look elsewhere, its unfortunate bcos is seems like a nice appliance. May if we can get some time we will try our best and hopefully post in the WIKI what we achieve something ....

Basically we just setup the VM appliance using VM PLayer, then followed instruction in the appliance page, got all the web interface up and running, but beyond that.... :-(




Alon Swartz's picture

Have you looked at the appliance page? It includes answers to your questions - though might need a little tweaking if it's not clear, so let me give it a shot.

Q: customise to your network, like renaming

The appliance includes a custom ejabberd-config script to change domain, administrative password and regenerate related secrets.

/usr/local/bin/ejabberd-config XMPP_DOMAIN ADMIN_PASS
# ejabberd admin interface user will be: admin@XMPP_DOMAIN

That will change the administrators password and update all configuration files to use the domain you specify. You can then test the new domain by updating your local hosts configuration so it points to the appliance:

/etc/hosts : appliance_ip chat.XMPP_DOMAIN XMPP_DOMAIN

Once your satisfied, you need to setup your DNS records. take a look at the appliance page for the example.

Q: adding chat rooms or users

You can do that on the fly with the speeqe web interface, or using an XMPP client.
You can also use the ejabberd admin console for more advanced configuration but you shouldn't need to for regular usage.


I hope the above helps. If something isn't clear, let us know.

Red's picture

When I run the /usr/local/bin/ejabberd-config script with my settings, I get the error:


Can't register user "admin@DOMAIN" at node ejabberd@localhost: not_allowed

Can't register user "robot@DOMAIN" at node ejabberd@localhost: not_allowed

Where DOMAIN is the domain I am trying to use.  What am I doing wrong?  I agree with OP there isn't much documentation to make this an out of the box solution.  If I can't get this up and running in a day's time, I'll probably end up building a server from scratch.
Alon Swartz's picture

I've never seen that error before. Is this a clean install? ISO or VM?

I'd recommend running the ejabberd-config script in verbose mode and seeing where it's breaking, and why. You can do this by adding -ex to the shebang.

  1. open /usr/local/bin/ejabberd-config in a text editor (vim / nano)
  2. replace #!/bin/bash with #!/bin/bash -ex
  3. execute the script again with your desired domain and password
  4. the script should error out where it breaks, which should give you an idea of whats going on. If you need help deciphering, post the output here.

If all else fails and you don't feel like debugging, just install fresh and follow my previous post.

Hope the above helps.

Red's picture

clean install, VM

I can get it to work if i set the domain name to, but when I do, registering a username in speeqe gives

root@ejabberd:/# /usr/local/bin/ejabberd-config password
+ '[' 2 -ne 2 ']'
+ ADMIN_PASS=password
+ set
++ mcookie
+ ROBOT_PASS=c95e6e209296a7c85d973f55aa9c8394
+ stop_ejabberd
+ /etc/init.d/ejabberd stop
Stopping jabber server: ejabberd.
+ killall epmd
+ killall beam
beam: no process killed
+ true
+ rm /var/lib/ejabberd/DECISION_TAB.LOG /var/lib/ejabberd/LATEST.LOG /var/lib/ejabberd/acl.DCD /var/lib/ejabberd/acl.DCL /var/lib/ejabberd/c
onfig.DCD /var/lib/ejabberd/config.DCL /var/lib/ejabberd/disco_publish.DAT /var/lib/ejabberd/irc_custom.DCD /var/lib/ejabberd/last_activity.
DCD /var/lib/ejabberd/local_config.DCD /var/lib/ejabberd/local_config.DCL /var/lib/ejabberd/motd.DCD /var/lib/ejabberd/motd_users.DCD /var/l
ib/ejabberd/muc_registered.DCD /var/lib/ejabberd/muc_room.DCD /var/lib/ejabberd/offline_msg.DAT /var/lib/ejabberd/passwd.DCD /var/lib/ejabbe
rd/privacy.DCD /var/lib/ejabberd/private_storage.DAT /var/lib/ejabberd/pubsub_item.DAT /var/lib/ejabberd/pubsub_node.DCD /var/lib/ejabberd/p
ubsub_state.DCD /var/lib/ejabberd/roster.DCD /var/lib/ejabberd/schema.DAT /var/lib/ejabberd/vcard.DAT /var/lib/ejabberd/vcard_search.DCD
+ cp /etc/ssl/certs/cert.pem /etc/ejabberd/ejabberd.pem
+ chown -R root:ejabberd /etc/ejabberd
+ chmod 750 /etc/ejabberd
+ chmod 640 /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd.pem /etc/ejabberd/inetrc
+ sed -i s/ /etc/ejabberd/ejabberd.cfg
+ sed -i s/ /etc/speeqe/
+ sed -i s/ /etc/speeqe/local_settings.js
+ sed -i 's/XMPP_PASS = \(.*\)/XMPP_PASS = \'\''c95e6e209296a7c85d973f55aa9c8394\'\''/' /etc/speeqe/
+ /etc/init.d/ejabberd start
Starting jabber server: ejabberd.
+ sleep 4
+ ejabberdctl register admin password
Can't register user "" at node ejabberd@localhost: not_allowed


Alon Swartz's picture

You ran ejabberd-config multiple times with different domains, and the script assumes (by default) that its only being run once. 

What's happening is that the script replaces (the default domain) in the configuration files with the domain you specify. But, because you ran the script multiple times, the default domain has been changed from to something else, so it's not being updated with the new domain.

I'll fix this in the next version of ejabberd.

In the meantime, you need to specify RE_XMPP_DOMAIN of the currently specified domain. You can find this out by looking at one of the configuration files, for example: /etc/ejabberd/ejabberd.cfg (search for admin@).

So, if the currently set domain is, and the new domain you want to set is, you'd run this: ejabberd-config password

I hope the above is clear.

Laura's picture

I read all of the comments here as well as the Appliance page simply to verify the process I was following.


My configuration halted when I had to update the DNS. First, I've never had to configure DNS records, let alone even have to view them (I haven't taken the class yet), so I'm a complete newbie to this. All of my knowledge in this area is conceptual from researching online or briefly touching on it from prior classes.

Since the Turnkey Core is built on Ubuntu 8.04.3 LTS, I'm assuming that it either has bind or something else was used in it's place. Since it's considered an "out-of-box" solution, I doubt I'll need to download something new in order to get this to work.

With that said, I can't seem to find any of the files I would be familiar with except /etc/resolv.conf which clearly states NOT to edit this file as it will be overwritten, logically the zone files I can't find.

Any input on how, since the Appliance page is very vague, would be much help.


Upon installation, I believe I set the login information to the admin user (default) and the password supplied on the ejabberd-config script. I ran the following:

/usr/local/bin/ejabberd-config password

where DOMAIN is the XMPP_DOMAIN we're using for ejabberd. This ran with no errors (and I made note of the RE_XMPP_DOMAIN if I had to run it again in the future.

When I go to the IP of the webmin panel and use or with password, it doesn't log in. So I tried the default admin and password turnkey, no go. If this is because of the DNS records not being straight, then I'm asking a pointless question, but thought I'd get it out there now.

Thanks for your input.

Jeremy Davis's picture

But I would imagine you would need to add an entry to your current local network DNS server (rather than include one with the appliance). I doubt the appliance includes BIND (or any other DNS server) - although I've been known to be wrong before :). As I've said previously on this thread I have not first hand experience with this appliance.

As for Webmin, unless you have added additional users, the default login will be as stated on the appliance page. The username is root and the password depends on which install method you used. If installed from ISO, then it'll be the root user password you set during install. If VM image then AFAIK it is blank by default.

dmnc's picture

hi folks, sorry for necroposting, but there is no such script


Please can someone check this issue or correct the appliance page.

At this moment I'd like to change my to and add another virtual host but ejabberd web admin is just read-only in those things...


Thanks, cheers.


dmnc's picture

okay, /etc/ejabberd/ejabberd.cfg do the trick ...
But anyway the mentioned config script is not there... 

Jeremy Davis's picture

This is a really old thread, but you are right, the script has moved... I'm glad you got it sorted in the meantime.

Since 2010 there has been a major tidy up of TurnKey initialisation scripts and as all appliances have them now (to a greater or lesser degree depending on the appliance) they have been consolidated into the one place - namely /usr/lib/inithooks/bin/

So thanks for the heads up. I have adjusted the appliance page manually and done a pull request to fix the appliance readme (which is the source of the info on the appliance page when a new appliance is released).

Add new comment