Skip to content

Latest commit

 

History

History
65 lines (43 loc) · 2.5 KB

README.markdown

File metadata and controls

65 lines (43 loc) · 2.5 KB

xmpp-server

A full XMPP server using node-xmpp, with some modules. Feel free to fork this and configure all the modules you need in server.js This server uses Redis as its datastore.

Unfortunately, the lack of time is slowly killing this project. If you feel like saving it, please, go ahead, message us and we'll set you up as the owner!

Installation

Beware : this project is really early stage... There are a lot of things to fix :) Install it for fun or for help... but probably not for profit just yet!

  1. First, you need nodejs installed. Pre-compiled packages exist for Unix (Linux, BSD, Mac OS X) as explained in these instructions. Skip to 2. if you already have a working Node.JS environment.

  2. Then, you need npm installed. As in step 1, follow these instructions or skip to 3.

  3. Install redis (used to store the data). apt-get install redis-server should work just fine on most Ubuntus and Debians. On MacOS X redis can be installed e.g. with Homebrew: brew install redis

  4. Install xmpp-server, finally. With package manager npm:

npm install -g xmpp-server

Running

TODO : automate this with a script that asks the right questions to the user when starting.

First, create a config file and place it at /etc/xmpp-server/config.js that includes the following (tls support is optional. You can follow the instructions there to create the key and certificate, and then uncomment the tls lines.):

    
    exports.config = {
        port: 5222, 
        domain: 'localhost',
        //tls: {
        //    keyPath: '/etc/xmpp-server/tls/localhost-key.pem',
        //    certPath: '/etc/xmpp-server/tls/localhost-cert.pem'
        //}
    }
    

Then, run the server:

xmpp-server /etc/xmpp-server/config.js

Trying

There is a server running at ouvre-boite.com. You can certainly create an account there, but don't leave any valuable belongings as they will be trashed every couple hours :)

TODO

  • In-band registration
  • C2S
  • TLS
  • Digets Auth
  • Roster
  • Presence
  • Pass on global configuration to modules.

Dependencies