Difference between revisions of "Platform Team/Prosody"

From Sugar Labs
Jump to navigation Jump to search
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Purpose ==
 
== Purpose ==
  
The reasons to use Prosody Jabber/XMPP server:
+
These are reasons to use Prosody Jabber/XMPP server:
  
* be humble for consuming memory and CPU resources, especially for Sugar Server usecase (up to 1K users),
+
* be humble for consuming memory and CPU resources, especially for the Sugar Server Kit usecase (up to 1K users),
* jabber server should be simply initially configured and work in unmaintained mode as long as possible.
+
* jabber server should be simple to initially configure, and work in an unmaintained mode as long as possible.
  
 
== Plugins ==
 
== Plugins ==
  
These plugins are tested against Prosody 0.8.2 version.
+
These plugins are tested against the Prosody 0.8.2 version.
  
 
=== mod_sugar_roster ===
 
=== mod_sugar_roster ===
  
Provides global roster when every user sees all registered accounts.
+
Provides a global roster, where every user sees all registered accounts.
  
=== mod_sugar_muc ===
+
=== mod_sugar_pep ===
  
The only difference in comparing with original {{Code|mod_muc}} plugin is a workaround for
+
In difference with the original {{Code|mod_pep}} plugin, {{Code|mod_sugar_pep}} allows all buddies from the sugar roster to get all notifications, even without proper subscriptions. This plugin seems to be a workaround, because subscription should be done on the client side, but that doesn't happen. The affected use case can be reproduced in the Glucose-0.88 (Dextrose-2) environment:
[https://bugs.freedesktop.org/show_bug.cgi?id=37897 telepathy-gabble]/[https://code.google.com/p/lxmppd/issues/detail?id=254 Prosody] issue.
 
  
This plugin should be used instead of {{Code|mod_muc}} until issue will be fixed in telepathy-gabble or in Prosody.
+
# Clean up {{Code|data/}} directory;
 +
# Start XO #1;
 +
# Start XO #2;
 +
# Create and share activity instance on XO #2;
 +
# Neighborhood view on XO #1 doesn't show shared activity;
 +
# Sharing activity on XO #1, is visible from XO #2.
  
=== mod_sugar_saslauth ===
+
In over words, XO #1 is not subscribed to PEP notifications from XO #2.
  
Original {{Code|mod_saslauth}} plugin with preventing multiple auth from the same jid. See {{Code|sm_make_authenticated()}} function in its sources.
+
=== mod_sugar_muc ===
 +
 
 +
The only difference compared with the original {{Code|mod_muc}} plugin is a workaround for the
 +
[https://bugs.freedesktop.org/show_bug.cgi?id=37897 telepathy-gabble]/[https://code.google.com/p/lxmppd/issues/detail?id=254 Prosody] issue.
  
This plugin should be used instead of {{Code|mod_saslauth}} until more lightweight implementation is found.
+
This plugin should be used instead of {{Code|mod_muc}} until the issue is fixed in telepathy-gabble or in Prosody.
  
 
== Installation ==
 
== Installation ==
  
To reuse sugar plugins, copy them to the directory with Prosody plugins. Or, install {{Code|prosody-sugar}} package from Sugar Server [http://download.sugarlabs.org/packages/Server:/ repository].
+
To reuse sugar plugins, copy them to the directory with Prosody plugins. Or, install the {{Code|prosody-sugar}} package from the [[Sweets Distribution]] [http://download.sugarlabs.org/packages/SweetsDistribution/ repository].
  
 
== Configuration ==
 
== Configuration ==
  
See sugar-server-templates [http://git.sugarlabs.org/server/templates/trees/master/etc/prosody sources] for configuration example.
+
See sugar-server-templates [http://git.sugarlabs.org/server/templates/trees/master/mace/prosody/prosody.d sources] for a configuration example.
  
 
== Getting involved ==
 
== Getting involved ==
  
Please, read the [http://git.sugarlabs.org/server/prosody-sugar/blobs/master/HACKING HACKING] file.
+
* [http://bugs.sugarlabs.org/newticket?component=sugar-server-kit Report] on bugs.
 +
* Read the [http://git.sugarlabs.org/server/prosody-sugar/blobs/master/HACKING HACKING] file to know how to contribute with code.
  
 
=== TODO ===
 
=== TODO ===
  
* Dynamically remove users from the sugar roster if they are offline for some reasonable time (for now, there is a patch to kick offline users from sugar roster asap to workaround buggy sugar-0.9x collab code).
+
* Compare Prosody resources consumption with existing ejabberd.
* Compare Prosody resources consumption with existed ejabberd.
 
  
 
== Resources ==
 
== Resources ==
Line 49: Line 56:
 
* Prosody [https://github.com/bjc/prosody sources].
 
* Prosody [https://github.com/bjc/prosody sources].
 
* Prosody Sugar plugins [http://git.sugarlabs.org/server/prosody-sugar sources].
 
* Prosody Sugar plugins [http://git.sugarlabs.org/server/prosody-sugar sources].
* [http://download.sugarlabs.org/packages/Server:/ Packages] for Prosody and Prosody Sugar plugins.
+
* [http://download.sugarlabs.org/packages/SweetsDistribution/ Packages] with Prosody Sugar plugins.

Latest revision as of 04:37, 28 April 2014

Purpose

These are reasons to use Prosody Jabber/XMPP server:

  • be humble for consuming memory and CPU resources, especially for the Sugar Server Kit usecase (up to 1K users),
  • jabber server should be simple to initially configure, and work in an unmaintained mode as long as possible.

Plugins

These plugins are tested against the Prosody 0.8.2 version.

mod_sugar_roster

Provides a global roster, where every user sees all registered accounts.

mod_sugar_pep

In difference with the original mod_pep plugin, mod_sugar_pep allows all buddies from the sugar roster to get all notifications, even without proper subscriptions. This plugin seems to be a workaround, because subscription should be done on the client side, but that doesn't happen. The affected use case can be reproduced in the Glucose-0.88 (Dextrose-2) environment:

  1. Clean up data/ directory;
  2. Start XO #1;
  3. Start XO #2;
  4. Create and share activity instance on XO #2;
  5. Neighborhood view on XO #1 doesn't show shared activity;
  6. Sharing activity on XO #1, is visible from XO #2.

In over words, XO #1 is not subscribed to PEP notifications from XO #2.

mod_sugar_muc

The only difference compared with the original mod_muc plugin is a workaround for the telepathy-gabble/Prosody issue.

This plugin should be used instead of mod_muc until the issue is fixed in telepathy-gabble or in Prosody.

Installation

To reuse sugar plugins, copy them to the directory with Prosody plugins. Or, install the prosody-sugar package from the Sweets Distribution repository.

Configuration

See sugar-server-templates sources for a configuration example.

Getting involved

  • Report on bugs.
  • Read the HACKING file to know how to contribute with code.

TODO

  • Compare Prosody resources consumption with existing ejabberd.

Resources