Skip to content

unary/sockethub

 
 

Repository files navigation

Sockethub

The polyglot approach to the federated social web.

Build Status

about

Sockethub aims to implement a polyglot (speaking all the languages of the interwebs) approach to social and other interactive messaging applications, and assist unhosted web app developers by providing server-independent, server-side functionality.

Example uses of sockethub are, writing and receiving messages (SMTP, Facebook, Twitter, Diaspora), instant messaging (XMPP, AIM, MSN), discovery (WebFinger, OpenGraph). The architecture of sockethub is extensible and supports implementation of more 'platforms' to carry out tasks, sockethub can be run on your own server, or provided as a service by a service provider, or app store.

status

Sockethub is currently in very early stages of development, though already basic proof of concepts for XMPP are working, as well as progress being made to support SMTP, Facebook and Twitter. The implementtion of each 'platform' is very modular and straightforward to implement. If you are a developer looking to contribute, open an issue and explain what you'd like to implement for help getting started.

features

We use Activity Streams to map the various social networks terms to a set of 'verbs' which identify the underlying action. For example,for a facebook friend request/accept cycle, we would use the activity stream verbs 'request-friend', 'remove-friend', 'make-friend'.

Below is a list of platforms we're currently working on and their activity stream verbs (when appropriate) or verbs that are specific to sockethub, both the completed and not yet implemented ones. They all map to the platforms actions.

[platform] - [verbs]
  • Email - completed send follow (poll for incoming messages)
  • XMPP - completed send completed request-friend completed remove-friend completed make-friend
  • Facebook - completed post send follow unfollow request-friend remove-friend make-friend like
  • Twitter - completed post follow unfollow send
  • RSS - completed fetch
  • WebFinger - search
  • IRC - send follow unfollow

installation & setup

prerequisites

  • redis server

You will need to have a redis server up and running.

  • node.js package dependencies

Some of the node.js packages require operating system libraries in order to function correctly. - simple-xmpp : libexpat1 libexpat1-dev libicu-dev

install

$ git clone git@github.com:sockethub/sockethub.git

setup

[sockethub]$ npm install
[sockethub]$ cp config.js.template config.js
[sockethub]$ cp config.secrets.js.template config.secrets.js

You will want to edit your config.secrets.js file and add your own secret string to use during the register command to ensure only apps can connect that have the right secret.

[sockethub]$ node sockethub.js

Once sockethub is running, you can visit http://localhost:10550 to see the basic pinger health checker.

remoteStorage.js note: trying to use a file:// URL for this will not work because remoteStorage.js depends on having a localStorage origin available.

adding a platform

See doc/adding_a_platform.md

license

Sockethub is licensed under the AGPLv3

credits

Project maintained by Nick Jennings

Logo design by Jan-Christoph Borchardt

Sponsored by NLNET

NLNET Logo

About

a polyglot socialweb socket server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published