User:Flyser/Gobby

Gobby ist ein Texteditor, der die Idee des kollaborativen Schreibens unterstützt. Somit ist es möglich, dass mehrere Personen in Echtzeit an demselben Dokument arbeiten.

Eine Entscheidung fällen
Zur Zeit gibt es zwei zueinander inkompatible Versionen, beide mit ihren Vor- und Nachteilen.

0.4
Diese Version ist mit ihrem ersten Release im Jahre 2006 schon etwas angegraut und verfügt über keine undo-Funktion. Als Server Software kommt sobby 0.4 zum Einsatz. Dies ist die letzte stabile Veröffentlichung Gobby. Wenn die zusätzlichen Funktionen von Version 0.5 nicht benötigt werden, dann taugt diese gut als robustes "Arbeitstier".

0.5
Diese Version ist momentan noch in Entwicklung und ist ein kompletter Rewrite mit anderem Protokoll und anderer Benutzeroberfläche als Gobby 0.4. Der herausragende Unterschied ist die – bei herkömmlichen Editoren längst vorausgesetzte – undo-Funktion, sowie die Verwendung von infinoted als Server. Zum momentanen Zeitpunkt gibt es jedoch nur experimentelle Releases (Versionsnummer ab 0.4.90), die der Autor jedoch sehr erfolgreich produktiv einsetzt.

Client
Die letzte stabile Version findet sich im portage und kann mit

installiert werden.

Server
Auch hier bietet portage eine stabile Version:

Client
Die neueste Entwicklerversion ist hardmasked im portage und kann mit

installiert werden.

Server
Der Server heißt infinoted und wird über das server USE-Flag von net-libs/libinfinity installiert:

Infinoted speichert seine Konfigurationsdatei entsprechend dem freedesktop.org-Standard, also in "~/.config/" oder systemweit in "/etc/xdg/", die Syntax ist ini-ähnlich.

Minimalistische Konfiguration
Als erstes werden wir das Verzeichnis erstellen, in dem infinoted später die Dateien und Ordner speichert, die man auf dem Server ablegt.

und die Zugriffsberechtigungen anpassen:

Nun ist alles fertig für die erste minimalistische Konfiguration, die im folgenden Schrittweise erweitert und angepasst wird:

Es sollte nun möglich sein den Server mit

zu starten, mit Gobby 0.5 zu verbinden und Verzeichnisse oder Dateien zu erstellen. Man sollte überprüfen, ob diese auch nach einem Neustart von infinoted erhalten bleiben.

Passwortauthentifizierung
Was beim Verbinden sofort auffällt ist, dass kein Passwort nötig ist um die Daten auf dem Server einzusehen oder zu verändern. Um das zu verhindern gibt es zwei Authentifizierungsmöglichkeiten: Für den Anfang legen wir ein Serverpasswort fest indem wir die folgende Zeile an unsere Konfigurationsdatei fügen:
 * mit einem Serverpasswort (für alle Benutzer gleich)
 * mit Benutzername/Passwort über PAM (Siehe dazu den Abschnitt über PAM Authentifizierung)

Verschlüsselte Verbindung
Nach einem Serverneustart verlangt Gobby nun zwar nach einem Passwort, aber die Verbindung erfolgt gänzlich unverschlüsselt. Um das zu ändern fügen wir die folgenden Zeilen an:

Die Option security-policy hat 3 mögliche Werte: "no-tls", "allow-tls", "require-tls". Mit unserer Konfiguration erlauben wir keinerlei unverschlüsselte Verbindungen mehr.

Bevor wir allerdings die Konfiguration testen können, müssen wir das Zertifikat und den Schlüssel noch von infinoted erzeugen lassen:

Serverseitiger Zugriff auf hochgeladene Daten
Nachdem die Sicherheitsaspekte geklärt sind, möchten wir nun auch serverseitig auf die abgelegten Daten zugreifen. Bei einem Blick in "/var/lib/infinote/data" bemerken wir schnell, dass dort nur XML Repräsentationen der eigentlichen Dateien liegen. Zum Glück erlaubt infinoted es uns auch an die Rohdaten zu gelangen. Dafür erzeugen wir zunächst das Zielverzeichnis:

und erweitern dann unsere Konfigurationsdatei um:

In diesem Fall werden Dateien bei Änderung spätestens nach 60 Sekunden in "/var/lib/infinote/export" gespeichert.

Links

 * http://gobby.0x539.de
 * http://gobby.0x539.de/trac/wiki/Infinote/Infinoted