TurnKey Linux Virtual Appliance Library

Ejabberd Speege chat help- any documentations?

sysadmin'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 example.com 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

Some ideas...

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

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?

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 example.com...

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.

Guest's picture

When I run the

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'd recommend running the ejabberd-config...

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.

Guest's picture

clean install, VM I can get

clean install, VM

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

root@ejabberd:/# /usr/local/bin/ejabberd-config computerland1.com password
+ '[' 2 -ne 2 ']'
+ XMPP_DOMAIN=computerland1.com
+ ADMIN_PASS=password
+ set example.com
++ 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/example.com/computerland1.com/ /etc/ejabberd/ejabberd.cfg
+ sed -i s/example.com/computerland1.com/ /etc/speeqe/settings.py
+ sed -i s/example.com/computerland1.com/ /etc/speeqe/local_settings.js
+ sed -i 's/XMPP_PASS = \(.*\)/XMPP_PASS = \'\''c95e6e209296a7c85d973f55aa9c8394\'\''/' /etc/speeqe/settings.py
+ /etc/init.d/ejabberd start
Starting jabber server: ejabberd.
+ sleep 4
+ ejabberdctl register admin computerland1.com password
Can't register user "admin@computerland1.com" at node ejabberd@localhost: not_allowed


Alon Swartz's picture

I know what's going on

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 example.com (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 example.com 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 computerlandtest.com, and the new domain you want to set is computerland1.com, you'd run this:

RE_XMPP_DOMAIN=computerlandtest.com ejabberd-config computerland1.com password

I hope the above is clear.

Guest's picture

DNS and Webmin login

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 ejabberd.DOMAIN.edu 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 admin@ejabberd.DOMAIN.edu or admin@chat.ejabberd.DOMAIN.edu 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

Not completely sure about DNS

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.

Guest's picture

no ejabberd-config

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 domain.com to jabber.domain.com and add another virtual host but ejabberd web admin is just read-only in those things...


Thanks, cheers.


Guest's picture


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

Jeremy Davis's picture

Thanks for that

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).

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <strike> <caption>

More information about formatting options

Leave this field empty. It's part of a security mechanism.
(Dear spammers: moderators are notified of all new posts. Spam is deleted immediately)