Home

unyaxmppd (pronounce 'mu-nya-ex-em-pi-pi-di') is a FOSS server for XMPP (also known as Jabber), same protocol that powers such deployments as Google Talk and LJ Talk.

Project goals

  • To produce personal xmpp/jabber server for home use
  • To adopt hassle-free maintaince of jabber server
  • To facilitate widespread usage of xmpp protocol

What project is not

  • Not to provide enterprise-class heavy-loaded multi-layered clustered installement --- use ejabberd instead
  • Not to implement non-standard-comformant extension --- use your local EEE provider
  • Not to increase need in CPU/RAM update --- you should put an Android on your router instead

Dependencies

  • GNU Libidn
  • CMake
  • Boost::ASIO and it's dependencies
  • C++11 compatible compiler
  • udns (http://www.corpit.ru/mjt/udns.html)
  • Optional: google mock (or use make unyaxmppd)
  • Optional: cyrus-sasl (replacement for internal sasl implementation)

Installation

(TODO: configuration options)

1. Grab copy of source

$ hg clone https://bitbucket.org/generatorglukoff/unyaxmppd
$ cd unyaxmppd

2. Create subdir and compile server

$ mkdir build
$ cd build
$ cmake ..
$ make unyaxmppd

3. So you've done (for now)

Quickstart

1. Create directory for databases purposes.

2. Create configuration file in working directory, called config.xml (you can find example in ./test_data/ folder). It should contain following:

<config serverAddress="[domain name of server]" userDbPath="[path to database directory]"/>

3. Create users in database directory. User filename should be named [username].xml and contain following data:

<?xml version='1.0'?>
<User>
        <Jid>[username]@[servername]</Jid>
        <Password>[password]</Password>
        <Subscriptions/>
        <Roster/>
</User>

4. Simply run server in current dir:

./unyaxmppd

What does work

  1. Most of the RFC6120-RFC6122 stuff
  2. XEP-0220: Server Dialback

What doesn't work

(No particular order, some stuff will be fixed before first release)

  1. Encryption (STARTTLS)
  2. Service discovery
  3. VCards
  4. Groups in roster
  5. Subscription pre-approval
  6. Server components

and, of course, there are still many bugs hanging around..

Donate

You may support this project by donating bitcoins into this wallet: 16E9H8zQUNM73vEiwbkuTF846FDDorN123

Updated

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.