pump.io – die Basis für dezentrale soziale Netzwerke?

social networking https://www.flickr.com/photos/smemon/7746516458/ (CC BY 2.0)

social networking https://www.flickr.com/photos/smemon/7746516458/ (CC BY 2.0)

Nach meinen bisherigen Erlebnissen mit den alternativen sozialen Netzwerken Friendica und GNU social zeigte sich schnell die Hauptproblematik. Es fehlt bis heute ein gemeinsamer Standard für die Speicherung und Verwaltung der eigenen Daten und Beziehungen zu anderen Benutzern. Alle proprietären sozialen Netzwerke wie Facebook, Twitter, und Google+ lösen das auf die klassische Art. Sie nutzen Ihren eigenen Standard und versuchen, Ihre Nutzerzahlen, auch durch Zukäufe von anderen Netzwerken, zu erhöhen. Das hilft diesen Unternehmen, nicht aber den beteiligten Menschen, wie Ihnen und mir, die die Hoheit über Ihre Daten und Berechtigungen haben wollen.

Pump.io geht genau dieses Problem an

I post something and my followers see it. That’s the rough idea behind the pump.

Pump.io besitzt eine API, nutzt activitystrea.ms und JSON ist das Hauptdaten- und Kommandoformat. Man kann also beispielsweise kurzen und langen Text, Lesezeichen, Bilder, Video, Audio, Events und ortsbasierte Checkins posten. Man kann anderen Nutzern folgen und Listen von Nutzern anlegen und darüber wieder deren Inhalt, abhängig von deren Berechtigungen sehen und/oder downloaden. Pump.io wird unter der Apache-2.0-Lizenz veröffentlicht, die jedem die Nutzung des Quellcodes erlaubt, aber fordert, dass Änderungen an der Software weitergegeben werden müssen. Anders als bei der GPL fordert die AGPL dies auch dann, wenn man die Software selbst nur nutzt und nicht weiterverbreitet. Code unter der Apache-2.0-Lizenz kann auch in proprietären Projekten verwendet werden.

Durch die offene Struktur kann man selbst einen pump.io Server betreiben oder sich auf einem vertrauenswürdigem externen Server registrieren. Um diese Struktur herum können dann Anwendungen entstehen, die auf Telefonen, im Web oder von Maschine zu Maschine laufen.

Ein Projekt, daß momentan pump.io einbaut ist MediaGoblin. MediaGoblin ist ein dezentrales Netzwerk für Medien, also die dezentrale Alternative zu Flickr, YouTube und SoundCloud.

Eine stabile Version, die Sie auch nutzen können, finden Sie beispielsweise hier (https://goblinrefuge.com/).

Die proprietären sozialen Netzwerke könnten also einfach pump.io als Basis nehmen, sich gegenüber Ihren Nutzer vertauenswürdig verhalten und die Welt wäre ok? Im Prinzip ja. Das ebenfalls proprietäre Netzwerk Identi.ca, ist genau diesen Weg gegangen (Umbau bei Identi.ca – Golem 4.5.2013). Dazu muß man allerdings auch wissen, daß der Gründer von Identi.ca und pump.io derselbe ist, nämlich Evan Prodromou. Evan ist seit 2013 in der W3C Federated Social Web Incubator Group engagiert und steckt auch im GNU social Projekt, das ebenfalls pump.io als Standard nutzt.

Hier eine Präsentation von ihm, die einen detaillierteren Überblick über pump.io gibt.

Um der Sache etwas mehr auf den Grund zu gehen, wollte ich pump.io einfach mal installieren und schauen was man damit tun kann. Nach der Installation war ich überrascht, einen vollständigen Twitterersatz gefunden haben.

Installation

Zur Installation habe ich die folgenden Anleitungen genutzt.

http://pump.io/
https://github.com/e14n/pump.io/wiki/Ubuntu-Installation#install-basic-build-essential-packages

pump.io ist momentan in der Version 0.3 verfügbar. Es arbeitet nicht wirklich gut mit dem Apache Proxy Modul zusammen und es wird empfohlen einen Root-Server exclusiv für pump.io zu nutzen. Mit dem Nginx Proxy harmoniert pump.io besser (http://sjoberg.fi/blog/pumpio.html). Da ich es für diesen Artikel nur ausprobieren wollte, gibt es dieses mal nur eine kurze Installationbeschreibung aber – eine Testversion auf http://pump.serverblogger.ch:31337.

Aber zurück zum Installieren.

Installationsvoraussetzung sind node.js 0.8.0 oder größer, npm 1.1.0 oder größer, eine Datenbank und das graphicsmagick Paket.

Ich habe ein Installationsscript genutzt, das wirklich gut funktioniert.

wget https://gist.githubusercontent.com/debanjum/3c3e92de34d290a8bc68/raw/f2d86de263980e744a7ac1079c2863f49fe1c9d6/Pump.sh
chmod +x Pump.sh        # Make script exectuable
sudo ./Pump.sh "local"  # For local testing
# OR #
sudo ./Pump.sh "server" # For server testing, with external ip and hostname

Danach habe ich in der /etc/pump.io.json Konfigurationsdatei noch die Werte für site, hostname, owner, ownerURL, address und serverUser angepasst.

{
    "driver":  "redis",
    "params":  {"host":"localhost","port":6379},
    "secret":  "my dog has fleas",
    "noweb":  false,
    "site":  "Serverblogger",
    "owner":  "NOVATREND Serverblogger",
    "ownerURL":  "http://blog.novatrend.ch/",
    "port":  31337,
    "hostname":  "pump.serverblogger.ch",
    "address":  "pump.serverblogger.ch",
    "nologger":  false,
    "serverUser":  "novatrend",
    "uploaddir": "/srv/pump.io/uploads",
    "debugClient": false,
    "firehose": "ofirehose.example"
}

In Screen läst es sich so starten

screen -S pumpserver -L -dm bash -c "cd /srv/pump.io; npm start"

Danach lief der Server … schauen Sie mal vorbei http://pump.serverblogger.ch:31337. Sie und ich können sich User anlegen, Bilder hochladen, Nutzern folgen und den Account auf anderen pump.io Plattformen nutzen. Denken Sie aber daran, dass es nur eine Testinstallation ist und wieder von unserem Server verschwinden wird.



Links


tl;dr: Pump.io stellt eine API aller notwendigen Funktionen für soziale Software unter einer auf kommerziell nutzbaren Lizenz zur Verfügung.

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen