Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

kdblogoHubzilla KnowledgeDB

Hubzilla ist ein Social Media Dienst, mit welchem man am Hubzilla-Netzwerk (Grid) und am Fediverse teilnehmen kann, das aber auch umfassende Funktionen anbietet, die es zu einem vollwertigen CMS machen. Hubzilla bietet die meisten Funktionen aller Fediverse-Dienste. Diese Wissensdatenbank soll Nutzern, sowie Administratoren (besonders auch Ein- und Umsteiger) die Funktionen nahebringen und erläutern. Siehe auch Hubzilla bei Wikipedia.

Hubzilla is a social media service that allows users to participate in the Hubzilla network (Grid) and the Fediverse, whilst also offering a comprehensive range of features that make it a fully-fledged CMS. Hubzilla offers the most features of any Fediverse service. This knowledge base is designed to familiarise and explain these features to both users and administrators (particularly newcomers and those switching from other platforms). See also Hubzilla on Wikipedia (german).


Hubzilla KnowledgeDB © 2024-2026 by Daniel “PepeCyB” is licensed under CC BY-NC-SA 4.0

CC-BY-NC-SA-4.0

Über Hubzilla

Was ist Hubzilla?

Hubzilla ist eine freie und quelloffene Sammlung von Web-Anwendungen und -Diensten, die auf einem speziellen Web-Server läuft. Dieser Hub kann sich mit anderen Hubs in einem dezentralen Netzwerk verbinden, das wir „Grid“ nennen, Identitäts- und Zugangskontrolldienste, die nahtlos über Domänen und unabhängige Websites hinweg zusammenarbeiten. Es erlaubt jedermann, öffentlich oder privat Inhalte über „Kanäle“ zu veröffentlichen, die die grundlegenden kryptografisch gesicherten Identitäten sind, die eine Authentifizierung unabhängig von den Hubs, die sie hosten, bereitstellen. Diese revolutionäre Befreiung der Online-Identität von einzelnen Servern und Domänen wird „nomadische Identität“ genannt und basiert auf dem Nomad-Protokoll, einem neuen Framework für die dezentrale Zugriffskontrolle mit fein abgestuften, erweiterbaren Berechtigungen.

Gut … aber was ist Hubzilla?

Aus der praktischen Perspektive der Hub-Mitglieder, die die Software nutzen, bietet Hubzilla eine Vielzahl bekannter, integrierter Web-Apps und -Dienste, darunter:

  • Diskussionsthreads für soziale Netzwerke
  • Cloud-Dateispeicher
  • Kalender und Kontakte (mit CalDAV- und CardDAV-Unterstützung)
  • Webhosting mit einem Content-Management-System
  • Wiki
  • und mehr…

Während alle diese Apps und Dienste in anderen Softwarepaketen zu finden sind, können Sie mit Hubzilla Berechtigungen für Gruppen und Personen festlegen, die möglicherweise noch keine Konten auf Ihrem Hub haben! Wenn Sie in typischen Web-Apps Dinge privat im Internet teilen möchten, müssen die Personen, mit denen Sie teilen, über Konten auf dem Server verfügen, auf dem Ihre Daten gehostet werden. Andernfalls gibt es keine zuverlässige Möglichkeit für Ihren Server, Besucher der Website zu authentifizieren, um zu erkennen, ob sie ihnen Zugriff gewähren. Hubzilla löst dieses Problem mit einem fortschrittlichen System der Remote-Authentifizierung, das die Identität von Besuchern mithilfe von Techniken mit Kryptografie mit öffentlichen Schlüsseln überprüft.

Software Stack

Der Hubzilla-Software-Stack ist eine relativ standardisierte Webserver-Anwendung, die hauptsächlich in PHP / MySQL geschrieben ist und wenig mehr als einen Webserver, eine MySQL-kompatible Datenbank und die PHP-Skriptsprache erfordert. Es ist so konzipiert, dass es leicht von denjenigen installiert werden kann, die grundlegende Fähigkeiten zur Verwaltung von Websites auf typischen Shared-Hosting-Plattformen mit einer breiten Palette von Computerhardware besitzen. Es kann auch leicht über Plugins, Themes und andere Tools von Drittanbietern erweitert werden.

Glossar

hub

Eine Instanz dieser Software, die auf einem Standard-Webserver ausgeführt wird

grid (Gitter)

Das globale Netzwerk von Hubs, die mithilfe des Nomad-Protokolls Informationen miteinander austauschen.

Channel (Kanal)

Die grundlegende Identität im Netz. Ein Kanal kann eine Person, einen Blog oder ein Forum darstellen, um nur einige zu nennen. Kanäle können Verbindungen mit anderen Kanälen herstellen, um Informationen mit sehr detaillierten Berechtigungen zu teilen.

Clone (Klon)

Kanälen können Klone zugeordnet sein, die separaten und ansonsten nicht verwandten Konten auf unabhängigen Hubs zugeordnet sind. Kommunikationen, die mit einem Kanal geteilt werden, werden zwischen den Kanalklonen synchronisiert, was es einem Kanal ermöglicht, Nachrichten zu senden und zu empfangen und auf geteilten Inhalt von mehreren Hubs zuzugreifen. Dies bietet Ausfallsicherheit gegenüber Netzwerk- und Hardwarefehlern, was ein erhebliches Problem für selbst gehostete oder eingeschränkte Ressourcen-Webserver darstellen kann. Mit Cloning können Sie einen Kanal vollständig von einem Hub zum anderen verschieben und Ihre Daten und Verbindungen mitnehmen. Siehe nomadische Identität.

nomadic identity (nomadische Identität)

Die Möglichkeit zur Authentifizierung und einfachen Migration einer Identität über unabhängige Hubs und Webdomänen. Die nomadische Identität bietet wahre Eigentumsrechte an einer Online-Identität, da die Identitäten der von einem Konto auf einem Hub kontrollierten Kanäle nicht an den Hub selbst gebunden sind. Ein Hub ist eher ein „Host“ für Kanäle. Mit Hubzilla haben Sie kein „Konto“ auf einem Server, wie Sie es auf typischen Websites tun. Sie besitzen eine Identität, die Sie mithilfe von Klonen über das Grid hinweg mitnehmen können.

Nomad

Das neuartige JSON-basierte Protokoll zur Implementierung sicherer dezentraler Kommunikation und Dienste. Es unterscheidet sich von vielen anderen Kommunikationsprotokollen durch den Aufbau von Kommunikation über ein dezentrales Identitäts- und Authentifizierungs-Framework hinaus. Die Authentifizierungskomponente ähnelt konzeptionell OpenID, ist jedoch von DNS-basierten Identitäten isoliert. Wo möglich, ist die Remote-Authentifizierung still und unsichtbar. Dies stellt einen Mechanismus für eine verteilte Zugriffssteuerung im Internet zur Verfügung, der unauffällig ist.

Eigenschaften

Diese Seite listet einige der Kernfunktionen von Hubzilla auf, die mit der offiziellen Version gebündelt sind. Hubzilla ist eine stark erweiterbare Plattform, daher können weitere Funktionen und Funktionen über zusätzliche Themes und Plugins hinzugefügt werden.

Affinity Slider (Affinitätsschieberegler)

Beim Hinzufügen von Verbindungen in Hubzilla haben Mitglieder die Möglichkeit, der neuen Verbindung „Affinitäts“ -Ebenen (wie nahe deine Freundschaft ist) zuzuweisen. Wenn Sie beispielsweise eine Person hinzufügen, deren Blog Sie folgen, können Sie ihrem Kanal eine Affinitätsebene von „Bekanntschaften“ zuweisen.

Auf der anderen Seite, wenn Sie den Kanal eines Freundes hinzufügen, könnten sie unter der Affinitätsebene von „Freunde“ platziert werden.

An dieser Stelle passt das Hubzilla Affinity Slider-Tool, das normalerweise oben auf der Seite „Matrix“ angezeigt wird, den Inhalt auf der Seite so an, dass sie den gewünschten Affinitätsbereich enthält. Kanäle außerhalb dieses Bereichs werden nicht angezeigt, es sei denn, Sie passen den Schieberegler an, um sie einzuschließen.

Der Affinity Slider ermöglicht die sofortige Filterung großer Mengen von Inhalten, gruppiert nach Ebenen der Nähe.

Verbindungsfilterung

Mit dem optionalen „Verbindungsfilter“ können Sie genau steuern, was in Ihrem Stream angezeigt wird. Wenn aktiviert, bietet der Connection Editor Eingaben für die Auswahl von Kriterien, die angepasst werden müssen, um einen bestimmten Beitrag von einem bestimmten Kanal ein- oder auszuschließen. Sobald ein Beitrag erlaubt wurde, sind alle Kommentare zu diesem Beitrag zulässig, unabhängig davon, ob sie den Auswahlkriterien entsprechen. Sie können Wörter auswählen, die den Beitrag blockieren oder sicherstellen, dass er in Ihrem Stream enthalten ist. Reguläre Ausdrücke können für noch feinere Kontrolle sowie Hashtags oder sogar die erkannte Sprache des Beitrags verwendet werden.

Zugriffssteuerungslisten

Beim Teilen von Inhalten haben Mitglieder die Möglichkeit, einzuschränken, wer den Inhalt sieht. Durch Klicken auf das Vorhängeschloss unter der Freigabe-Box kann man die gewünschten Empfänger auswählen, indem man auf deren Namen klickt.

Nach dem Senden wird die Nachricht nur vom Absender und den ausgewählten Empfängern angezeigt. Mit anderen Worten, die Nachricht wird nicht auf öffentlichen Wänden erscheinen.

Zugriffskontrolllisten können auf Inhalte und Posts, Fotos, Ereignisse, Webseiten, Chatrooms und Dateien angewendet werden.

Single Sign-on

Access Control-Listen funktionieren aufgrund unserer einzigartigen Single-Sign-On-Technologie für alle Kanäle im Grid. Die meisten internen Links stellen ein Identitäts-Token zur Verfügung, das auf anderen Hubzilla-Sites verifiziert und zur Kontrolle des Zugriffs auf private Ressourcen verwendet werden kann. Sie melden sich einmal bei Ihrem Home-Hub an. Danach ist die Authentifizierung für alle Ressourcen von Hubzilla „magisch“.

WebDAV-fähiger Dateispeicher

Dateien können mit den Dienstprogrammen Ihres Betriebssystems in Ihren persönlichen Speicherbereich hochgeladen werden (Drag & Drop in den meisten Fällen). Sie können diese Dateien mit Zugriffssteuerungslisten für beliebige Kombinationen von Hubzilla-Mitgliedern (einschließlich einiger Netzwerkmitglieder von Drittanbietern) schützen oder öffentlich machen.

Fotoalben

Speichern Sie Fotos in Alben. Alle Ihre Fotos können durch Zugriffskontrolllisten geschützt sein.

Veranstaltungskalender

Erstellen und verwalten Sie Ereignisse und Aufgaben, die auch durch Zugriffssteuerungslisten geschützt sein können. Ereignisse können mit dem branchenüblichen Standardformat vcalendar / iCal in andere Software importiert / exportiert und in Posts mit anderen geteilt werden. Geburtstagsereignisse werden automatisch von deinen Freunden hinzugefügt und in die richtige Zeitzone konvertiert, sodass du genau weißt, wann der Geburtstag stattfindet – egal, wo du dich auf der Welt in Bezug auf die Geburtstagsperson befindest. Ereignisse werden normalerweise mit Anwesenheitszählern erstellt, sodass Ihre Freunde und Verbindungen sofort antworten können. Chat-Räume

Sie können beliebig viele persönliche Chaträume erstellen und den Zugriff über Access Control Lists erlauben. Diese sind in der Regel sicherer als XMPP-, IRC- und andere Instant Messaging-Übertragungen, obwohl wir auch die Verwendung dieser anderen Dienste über Plug-Ins zulassen.

Webseitenerstellung

Hubzilla hat viele „Content Management“ -Erstellungswerkzeuge zum Erstellen von Webseiten, einschließlich Layout-Bearbeitung, Menüs, Blöcken, Widgets und Seiten- / Inhaltsbereichen. Alle diese können zugangskontrolliert sein, so dass die resultierenden Seiten für ihre beabsichtigte Zielgruppe privat sind.

Apps

Apps können von Mitgliedern erstellt und verteilt werden. Diese unterscheiden sich von herkömmlichen „Vendor Lockin“ -Apps, da sie vollständig vom Autor gesteuert werden. Diese können die Zugriffskontrolle auf den Ziel-App-Seiten bereitstellen und diesen Zugriff entsprechend berechnen. Die meisten Apps in Hubzilla sind kostenlos und können problemlos von Personen ohne Programmierkenntnisse erstellt werden.

Layout

Das Seitenlayout basiert auf einer Beschreibungssprache namens Comanche. Hubzilla ist selbst in Comanche-Layouts geschrieben, die Sie ändern können. Dies ermöglicht eine Anpassung, die Sie normalerweise nicht in so genannten „Multi-User-Umgebungen“ finden.

Bookmarks (Lesezeichen)

Teilen und speichern / verwalten Sie Lesezeichen von Links in Konversationen.

Private Nachrichtenverschlüsselung und Datenschutzbedenken

Private E-Mails werden in einem verdeckten Format gespeichert. Obwohl dies nicht kugelsicher ist, verhindert es normalerweise ein zufälliges Ausspionieren durch den Site-Administrator oder ISP.

Jeder Hubzilla-Kanal verfügt über eigene eindeutige private und zugeordnete öffentliche RSA 4096-Bit-Schlüssel, die beim Erstellen der Kanäle generiert werden. Dies wird verwendet, um private Nachrichten und Posts im Transit zu schützen.

Darüber hinaus können Nachrichten unter Verwendung einer „Ende-zu-Ende-Verschlüsselung“ erzeugt werden, die von Hubzilla-Betreibern oder ISPs oder von jemandem, der den Passcode nicht kennt, nicht gelesen werden kann.

Öffentliche Nachrichten werden im Allgemeinen nicht im Transit oder im Speicher verschlüsselt.

Private Nachrichten können zurückgezogen werden (nicht gesendet), obwohl es keine Garantie gibt, dass der Empfänger sie noch nicht gelesen hat.

Beiträge und Nachrichten können mit einem Ablaufdatum erstellt werden. Zu diesem Zeitpunkt werden sie auf der Website des Empfängers gelöscht / entfernt.

Service Federation (Service-Föderation)

Zusätzlich zu den „Cross-Post-Konnektoren“ zu einer Vielzahl alternativer Netzwerke gibt es eine native Unterstützung für das Importieren von Inhalten aus RSS / Atom-Feeds und das Erstellen spezieller Kanäle. Plugins sind auch verfügbar, um mit anderen über die Protokolle Diaspora und GNU-Social (~OStatus) zu kommunizieren. Diese Netzwerke unterstützen keine nomadische Identität oder domänenübergreifende Zugriffskontrolle. Grundlegende Kommunikation wird jedoch von / zu Diaspora, Friendica, GNU-Social, Mastodon und anderen Anbietern, die diese Protokolle verwenden, unterstützt.

Es gibt auch experimentelle Unterstützung für die OpenID-Authentifizierung, die in Zugriffssteuerungslisten verwendet werden kann. Dies ist ein work in progress. Ihr Hubzilla-Hub kann als OpenID-Provider verwendet werden, um Sie bei externen Diensten zu authentifizieren, die diese Technologie verwenden.

Kanäle können die Berechtigung haben, „abgeleitete Kanäle“ zu werden, bei denen zwei oder mehr bestehende Kanäle kombiniert werden, um einen neuen aktuellen Kanal zu erstellen.

Private Gruppen

Unsere Implementierung von privaten Gruppen ähnelt Google „Circles“ und Diaspora „Aspects“. Auf diese Weise können Sie den eingehenden Datenstrom nach ausgewählten Gruppen filtern und die ausgehende Zugriffssteuerungsliste beim Post-Vorgang automatisch auf die Daten in dieser Datenschutzgruppe festlegen. Sie können dies jederzeit (vor dem Senden der Post) überschreiben.

Directory Services (Verzeichnisdienste)

Wir bieten einen einfachen Zugang zu einem Verzeichnis von Mitgliedern und stellen dezentralisierte Tools zur Verfügung, die in der Lage sind, Freundschaftsvorschläge zu liefern. Die Verzeichnisse sind normale Hubzilla-Sites, die die Directory-Server-Rolle akzeptieren. Dies erfordert mehr Ressourcen als die meisten typischen Websites und ist daher nicht der Standard. Verzeichnisse werden synchronisiert und gespiegelt, so dass sie alle aktuelle Informationen über das gesamte Netzwerk enthalten (unter normalen Laufzeitverzögerungen).

TLS/SSL

Bei Hubzilla-Hubs, die TLS / SSL verwenden, wird die Client-Server-Kommunikation über TLS / SSL verschlüsselt. Angesichts der jüngsten Offenbarungen in den Medien bezüglich der weit verbreiteten, globalen Überwachung und der Umgehung der Verschlüsselung durch die NSA und GCHQ, ist es vernünftig anzunehmen, dass HTTPS-geschützte Kommunikation auf verschiedene Arten kompromittiert sein könnte. Private Kommunikation wird folglich auf einer höheren Ebene verschlüsselt, bevor sie an einen externen Standort gesendet wird.

Kanaleinstellungen

Wenn ein Kanal erstellt wird, wird eine Rolle ausgewählt, die eine Reihe vorkonfigurierter Sicherheits- und Datenschutzeinstellungen anwendet. Diese werden nach bestmöglichen Methoden ausgewählt, um die Privatsphäre auf den gewünschten Ebenen zu erhalten.

Wenn Sie eine „benutzerdefinierte“ Datenschutzrolle auswählen, können für jeden Kanal fein abgestimmte Berechtigungen für verschiedene Aspekte der Kommunikation festgelegt werden. Unter der Überschrift „Sicherheits- und Datenschutzeinstellungen“ hat jeder Aspekt auf der linken Seite der Seite beispielsweise sechs (6) mögliche Anzeige- / Zugriffsoptionen, die durch Klicken auf das Dropdown-Menü ausgewählt werden können. Es gibt auch eine Reihe anderer Datenschutzeinstellungen, die Sie bearbeiten können.

Die Optionen sind:

  • Niemand außer dir selbst.
  • Nur diejenigen, die Sie ausdrücklich zulassen.
  • Jeder in Ihrem Adressbuch.
  • Jeder auf dieser Website.
  • Jeder in diesem Netzwerk.
  • Jeder der sich authentifiziert hat.
  • Jeder im Internet.

Öffentliche und private Foren

Foren sind normalerweise Kanäle, die für die Teilnahme von mehreren Autoren geöffnet sein können. Es gibt derzeit zwei Mechanismen, um in Foren zu posten: 1) „Wall-to-Wall“ -Posts und 2) via Forum @ Mention-Tags. Foren können von jedem erstellt und für jeden Zweck verwendet werden. Das Verzeichnis enthält eine Option zum Suchen nach öffentlichen Foren. Private Foren können nur von Mitgliedern gepostet und oft nur von diesen gesehen werden.

Konto klonen

Konten in Hubzilla werden als nomadische Identitäten bezeichnet, da die Identität eines Mitglieds nicht an den Hub gebunden ist, an dem die Identität ursprünglich erstellt wurde. Wenn Sie beispielsweise ein Facebook- oder Gmail-Konto erstellen, ist es an diese Dienste gebunden. Sie können nicht ohne Facebook.com oder Gmail.com funktionieren.

Nehmen wir an, Sie haben eine Hubzilla-Identität namens tina@Hubzillahub.com erstellt. Sie können es zu einem anderen Hubzilla-Hub klonen, indem Sie denselben oder einen anderen Namen wählen: liveForever@SomeHubzillaHub.info

Beide Kanäle sind jetzt synchronisiert, was bedeutet, dass alle Ihre Kontakte und Einstellungen auf Ihrem Klon dupliziert werden. Es spielt keine Rolle, ob Sie einen Post von Ihrem ursprünglichen Hub oder dem neuen Hub senden. Beiträge werden auf beiden Konten gespiegelt.

Dies ist eine ziemlich revolutionäre Eigenschaft, wenn wir einige Szenarien betrachten:

– Was passiert, wenn der Hub, auf dem eine Identität basiert, plötzlich offline geht? Ohne Cloning kann ein Mitglied nicht kommunizieren, bis dieser Hub wieder online ist (viele von euch haben den Twitter „Fail Whale“ gesehen und verflucht). Beim Klonen loggen Sie sich einfach in Ihren geklonten Account ein und das Leben geht glücklich weiter.

– Der Administrator Ihres Hubs kann es sich nicht mehr leisten, für seinen kostenlosen und öffentlichen Hubzilla-Hub zu bezahlen. Er kündigt an, dass der Hub in zwei Wochen geschlossen wird. Dies gibt Ihnen genügend Zeit, Ihre Identität (en) zu klonen und Ihre Beziehungen, Freunde und Inhalte zu pflegen.

– Was ist, wenn Ihre Identität der staatlichen Zensur unterliegt? Ihr Hub-Provider ist möglicherweise gezwungen, Ihr Konto zusammen mit allen Identitäten und den zugehörigen Daten zu löschen. Mit dem Klonen bietet Hubzilla Zensurwiderstand. Sie können Hunderte von Klonen haben, wenn Sie möchten, die alle unterschiedlich benannt sind und auf vielen verschiedenen Hubs im Internet verstreut sind.

Hubzilla bietet interessante neue Möglichkeiten für die Privatsphäre. Sie können mehr auf der Seite Private Communications Best Practices lesen.

Einige Einschränkungen gelten. Für eine vollständige Erklärung des Identity Cloning, lesen Sie die WIE KLONE ICH MEINE IDENTITÄT.

Mehrere Profile

Es kann eine beliebige Anzahl von Profilen erstellt werden, die unterschiedliche Informationen enthalten, und diese können für bestimmte Ihrer Verbindungen / Freunde sichtbar gemacht werden. Ein „Standard“ Profil kann von jedem gesehen werden und kann begrenzte Informationen enthalten, wobei mehr Informationen verfügbar sind, um Gruppen oder Personen auszuwählen. Das bedeutet, dass das Profil (und der Inhalt der Seite), die Ihre „beer-drinking buddies“ sehen, anders sein können als das, was Ihre Kollegen sehen, und auch völlig anders als das, was für die breite Öffentlichkeit sichtbar ist.

Kontosicherung

Hubzilla bietet ein einfaches Ein-Klick-Konto-Backup, wo Sie eine vollständige Sicherung Ihres Profils herunterladen können. Sicherungen können dann zum Klonen oder Wiederherstellen eines Profils verwendet werden.

Löschen des Kontos

Konten können sofort durch Klicken auf einen Link gelöscht werden. Das ist es. Alle zugehörigen Inhalte werden dann aus dem Grid gelöscht (dies schließt Posts und alle anderen Inhalte ein, die von dem gelöschten Profil erstellt wurden). Abhängig von der Anzahl der Verbindungen, die Sie haben, kann das Löschen entfernter Inhalte einige Zeit in Anspruch nehmen, aber es ist geplant, dass dies so schnell wie möglich geschieht.

Löschen von Inhalten

Alle in Hubzilla erstellten Inhalte bleiben unter der Kontrolle des Mitglieds (oder des Kanals), der sie ursprünglich erstellt hat. Zu jeder Zeit kann ein Mitglied eine Nachricht oder eine Reihe von Nachrichten löschen. Der Löschvorgang stellt sicher, dass der Inhalt gelöscht wird, unabhängig davon, ob er auf dem primären Hub (Home) eines Kanals oder auf einem anderen Hub gepostet wurde, auf dem der Kanal über Nomad (Hubzilla-Kommunikations- und Authentifizierungsprotokoll) remote authentifiziert wurde.

Medien

Ähnlich wie jedes andere moderne Blogging-System, soziales Netzwerk oder ein Mikro-Blogging-Dienst unterstützt Hubzilla das Hochladen von Dateien, das Einbetten von Videos und das Verknüpfen von Webseiten.

Vorschau / Bearbeitung

Beiträge und Kommentare können vor dem Senden in einer Vorschau angezeigt und nach dem Senden bearbeitet werden.

Abstimmung / Konsens

Beiträge können zu „Konsens“ -Einträgen gemacht werden, die es den Lesern ermöglichen, Feedback zu geben, das in zu „Zustimmen-„, „Nicht zustimmen-“ und „Sich enthalten-“ Zählern zusammengefasst wird. Auf diese Weise können Sie Interesse für Ideen ermitteln und informelle Umfragen erstellen.

Hubzilla erweitern

Hubzilla kann auf verschiedene Arten erweitert werden: durch Anpassung der Website, persönliche Anpassung, Optionseinstellung, Designs und Addons / Plugins.

API

Eine API ist für die Verwendung durch Drittanbieterdienste verfügbar. Ein Plugin bietet auch eine grundlegende Implementierung der Twitter-API (für die Hunderte von Drittanbieter-Tools existieren). Der Zugriff kann über Login / Passwort oder OAuth erfolgen und die Client-Registrierung von OAuth-Anwendungen wird bereitgestellt.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

A

Account und Kanäle - Hubzilla ist etwas anders

Account und Kanäle - Hubzilla ist etwas anders

Von Sozialen Netzwerken bzw. Social Media Plattformen ist man es gewöhnt, dass man mit dem Anlegen eines Accounts auch sofort eine Identität und damit eine “Adresse” bei dem Dienst hat.

Das gilt sowohl für die Big-Tech Netzwerke, als auch für die meisten Dienste im Fediverse.

Legt man sich einen Account z.B. bei Mastodon an, so wird damit auch gleichzeitig ein Identität mit einer “Mastodon-Adresse” (Handle in der Form @beispielnutzer@masto-server.net).

Mit der kann man sofort loslegen und ist im Fediverse. So läuft es auch bei TwiXtter. Man erstellt einen Account und mit dem Anmeldenamen auch gleich seine X-Adresse.

Hubzilla ist da etwas anders. Wenn man sich bei einem Hubzilla-Server (Hub genannt) registriert und damit einen Account erstellt, hat man noch keine Adresse im Fediverse. Man hat einen Anmeldenamen, ein Passwort und kann sich bei dem Hub anmelden. Viel mehr aber auch nicht. Für mehr braucht es nun die Identität, also den Fediverse-Namen.

Es gibt Hubs, bei denen man dieses Handle auch gleich mit der Registrierung erstellt. Und es gibt Hubs, bei denen man nach der Registrierung oder nach dem ersten Anmelden mit dem neuen Account zur Maske für die Erstellung des Handles geleitet wird.

Bei Hubzilla heißt die Identität “Kanal” und die Adresse “Kanal-Handle”.

Diese Trennung hat auch einen großen Vorteil, denn damit ist die Identität unabhängig vom Hub und kann auf andere Hubs transferiert werden. Das sogar unter Beibehaltung des Kanals auf dem Ursprungs-Hub. Und die solchermaßen erzeugten Klone werden auch noch automatisch mit dem “Original” synchronisiert. Das ist die “nomadische Identität” von Hubzilla.

Ein weiterer Vorteil ist, dass damit auch eine Identifizierung bei anderen Hubs möglich ist. Die sogenannte entfernte Authentifizierung, die sogar teilweise völlig automatisch abläuft (Magic Auth). Folgt man von seinem Hubzilla-Kanal aus einem Link, der zu einem anderen Hub führt, so wird man automatisch bei dem Ziel-Hub authentifiziert und kann ggf. nicht für alle freigegebene Inhalte sehen und zum Teil auch interagieren.

Und schließlich bedeutet die Trennung von Account und Identität, dass man mit einem einzigen Account mehrere Kanäle anlegen kann. Bei den meisten anderen Diensten muss man sich dafür einen neuen Account anlegen und - je nachdem mit welchem Handle man nun agieren möchte - sich ausloggen und mit dem anderen Account wieder einloggen. Bei Hubzilla loggt man sich einmal ein und kann über ein Menü zwischen den Kanälen wechseln.

Neben Hubzilla bieten (streams) und Forte diese Möglichkeit. Mit Friendica ist es auch möglich, sich mehrere Accounts (Identitäten) anzulegen und unter einem Haupt-Account zu verwalten. Das fühlt sich ähnlich an, entspreicht aber vom Funktionsprinzip nicht der Kanal-Funktion von Hubzilla.

Wer einen PeerTube Account hat, kennt vielleicht das Anlegen mehrerer Kanäle… und auch bei YouTube gibt es die Möglichkeit, unter einem Account, mehrere Video-Kanäle zu verwalten.

Also zusammengefasst:

Bei Hubzilla hat man, wenn man sich bei einem Hub registriert, einen Account, mit dem man sich bei dem Hub anmelden kann. Dies ist aber keine Identität und mit dem Account kann man nicht im Fediverse auftreten. Dafür bietet Hubzilla Kanäle. Sie sind die Identität im Fediverse und verfügen über ein Kanal-Handle (“Fediverse-Adresse”). Man kann sich mehrere Kanäle mit einem einzigen Account anlegen. Und man kann einen Kanal auf einen anderen Hub inklusive der Inhalte umziehen oder einen Klon des Kanals zeitgleich auf einem anderen Hub betreiben (und diesen Nutzen, wenn der Heimat-Hub mal eine “Auszeit” nimmt), wobei die Klone automatisch mit dem Heimat-Kanal synchronisieren.

Account and channels - Hubzilla is a bit different

Account and channels - Hubzilla is a bit different

With social networks or social media platforms, you are used to having an identity and thus an ‘address’ for the service as soon as you create an account.

This applies to both the big tech networks and most services in the Fediverse.

If you create an account on Mastodon, for example, you also create an identity with a ‘Mastodon address’ (handle in the form @beispielnutzer@masto-server.net).

With that you can get started immediately and be in the Fediverse. It’s the same with TwiXtter. You create an account and with the login name you also create your X-address.

Hubzilla is a bit different. When you register at a Hubzilla server (called a hub), you don’t yet have an address in the Fediverse. You have a login name and a password, and you can log in to the hub. But not much more. To get more, you now need an identity, i.e. a Fediverse name.

There are hubs where you create this handle right at registration. And there are hubs where you are redirected to the mask for creating the handle after registering or after logging in with the new account for the first time.

At Hubzilla, the identity is called ‘Channel’ and the address is called ‘Channel Handle’.

This separation also has a great advantage, because it makes the identity independent from the hub and allows it to be transferred to other hubs. This is even possible while maintaining the channel on the original hub. And the clones created in this way are also automatically synchronised with the ‘original’. That is the ‘nomadic identity’ of Hubzilla.

Another advantage is that it also allows identification with other hubs. This is known as remote authentication, which can even be fully automated in some cases (Magic Auth). If you follow a link from your Hubzilla channel that leads to another hub, you will be automatically authenticated at the destination hub and, if applicable, can view and in some cases interact with content that is not open to everyone.

Finally, the separation of account and identity means that you can create multiple channels with a single account. With most other services, you have to create a new account for this and – depending on which handle you want to use – log out and log in again with the other account. With Hubzilla, you log in once and can switch between channels via a menu.

In addition to Hubzilla, (streams) and Forte offer this option. Friendica also allows you to create multiple accounts (identities) and manage them under one main account. This feels similar, but functionally it does not correspond to the channel function of Hubzilla.

If you have a PeerTube account, you may be familiar with creating multiple channels… and YouTube also allows you to manage multiple video channels under one account.

So to summarise:

When you register with a hub using Hubzilla, you get an account that you can use to log in to the hub. However, this is not an identity and you cannot use the account to appear in the Fediverse. Instead, Hubzilla offers channels. They are your identity in the Fediverse and have a channel handle (‘Fediverse address’). You can create multiple channels with a single account. And you can move a channel and its contents to another hub or run a clone of the channel on another hub at the same time (and use it if the home hub ever takes a ‘break’), with the clones automatically synchronising with the home channel.

ActivityPub

ActivityPub ist ein 2018 veröffentlichtes, offenes, dezentrales Protokoll für soziale Netzwerke, das vom W3C verwaltet wird. Es bietet ein Client-zu-Server-API zum Erstellen, Hochladen und Löschen von Inhalten sowie ein Server-zu-Server-API für eine dezentrale Kommunikation.

ActivityPub ist ein Standard für das Fediverse. Früher hieß das Protokoll „ActivityPump“, aber der aktuelle Name bot sich laut diversen Meinungen an, um den dezentralen Aspekt des Protokolls zu betonen. Es hat einige Ähnlichkeit mit Vorgängerprotokollen wie OStatus. Im Januar 2018 gab das W3C den ActivityPub-Standard frei und empfiehlt ihn seither für dezentrales Teilen von Inhalten.

Damit Hubzilla auch mit Instanzen (und damit mit Nutzern) interagieren kann, die mittels ActivityPub arbeiten, muss das ActivityPub-Protokoll noch aktiviert werden. Dies erfolgt über das App-Menü. Hier ruft man ganz am Ende den Menüpunkt “+ Apps” auf.

ap01

In der linken Seitenleiste findet man zwei Einträge:

  • Installierte Apps
  • Verfügbare Apps

Unter den verfügbaren Apps findet man alle Apps, die auf der eigenen Instanz zur Verfügung stehen, unter den installierten Apps, all diejenigen, die man als Nutzer aus dem Pool “Verfügbare Apps” installiert hat.

Ist - bei einem frisch erstellten Kanal - die App “ActivityPub-Protokoll” noch nicht installiert, erscheint sie auch nicht unter den installierten Apps. Man muss die App zurächst unter “Verfügbare Apps” mittels eines Klicks auf den Button “Installieren” installieren.

ap02

Danach wechselt man zu “Installierte Apps” und klickt auf das Sternchen rechts bei ActivityPub-Protokoll. Es wird gelb und anschließend ist die App im App-Menü verfügbar.

ap03

Klickt man sie im App-Menü an, gelangt man zu den Einstellungen. Für die normale Nutzung muss man hier nichts verändern.

ap04

ap05

ActivityPub

ActivityPub is an open, decentralised protocol for social networks published in 2018 and managed by the W3C. It provides a client-to-server API for creating, uploading and deleting content as well as a server-to-server API for decentralised communication.

ActivityPub is a standard for the Fediverse. The protocol used to be called ‘ActivityPump’, but the current name was chosen to emphasise the decentralised aspect of the protocol. It has some similarities with predecessor protocols such as OStatus. In January 2018, the W3C released the ActivityPub standard and has since recommended it for decentralised content sharing.

To enable Hubzilla to interact with instances (and therefore users) that work with ActivityPub, the ActivityPub protocol still needs to be activated. This is done via the app menu. Here you call up the menu item ‘+ Apps’ at the very end.

ap01

There are two entries in the left sidebar:

  • Installed apps
  • Available apps

Under the available apps you will find all apps that are available on your own instance, under the installed apps, all those that you have installed as a user from the ‘Available apps’ pool.

If the ‘ActivityPub protocol’ app has not yet been installed on a newly created channel, it will not appear under the installed apps. You must first install the app under ‘Available apps’ by clicking on the ‘Install’ button.

ap02

Then go to ‘Installed apps’ and click on the asterisk on the right next to ActivityPub protocol. It turns yellow and the app is then available in the app menu.

ap03

Clicking on it in the app menu takes you to the settings. Nothing needs to be changed here for normal use.

ap04

ap05

Account anlegen

Um Hubzilla nutzen zu können, muss man sich bei einem Hubzilla-Hub (das sind die Server, auf denen die Hubzilla-Software installiert ist) registrieren.

Weshalb das so ist, und wie vorteilhaft, kann bei Join the fediverse nachgelesen werden (die Sprache kann auf Deutsch umgestellt werden).

Einen passenden Server zu finden, ist nicht so schwierig. Bei FediDB sind (Stand: 28. Okt. 2023) insgesamt 70 Instanzen gelistet. Die meisten erlauben eine Registrierung.

acca01

Oder man schaut beim Fediverse Observer rein. Auch hier gibt es die Filtermöglichkeit.

acca02

Interessant ist auch die Anzahl der Nutzer. Es empfiehlt sich nicht, unbedingt eine der größten (höchste Nutzerzahl) Instanzen zu wählen. Ein ordentlich betriebener kleinerer Server ist absolut nicht von Nachteil und in der Regel sehr gut ins Fediverse integriert.

Hat man sich dann für einen Server entschieden, braucht man nur eine Idee für einen Nutzernamen (Name für einen Kanal, der die eigene Identität im Fediverse darstellt) und ein Passwort, sowie ein funktionierende E-Mail Adresse (damit man die Aktivierungsmail erhalten kann).

Auf der Startseite einer Instanz, findet man rechts oben das sogenannte “App-Menü” (⋮) und in diesem Menü den Menüpunkt “Hilfe”. Als letzter Punkt in der Hilfe steht “About this hub”. Dieser Punkt führt (hoffentlich, hängt vom Betreiber ab und ist ein guter Anhaltspunkt bezüglich der Seriosität) zu eine Impressum, weiteren Informationen über den Hub und zu den Nutzungsbedingungen.

Nun klickt man auf der Startseite oben links auf “Register”.

acca03

Es erscheint ein Registrierungsformular, in welchem man die funktionierende E-Mail Adresse und das gewählte Passwort eingeben muss. Außerdem muss man per Schalter bestätigen, dass man das “Registrierungsalter” erreicht hat (i.d.R. 13 Jahre) und die Nutzungsbedingungen akzeptiert.

acca04

Ein Klick auf den Button Register schickt die eingegebenen Daten ab.

Nun muss man die Registrierung (und damit die eingegebene E-Mail Adresse) verifizieren.

acca05

Man erhält eine E-Mail mit einem Verifikations-Code, der in das Feld eingegeben werden muss. Hat man keine Mail erhalten, kann man den Code erneut mit dem Button “Resend email” anfordern. Hat man ihn eigegeben, sendet man ihn mit einem Klick auf “Submit” ab.

acca06

acca07

Als nächstes erscheint ein Formular, mit welchem man aufgefordert wird, seinen ersten Kanal anzulegen (es sind bei den meisten Hubs mehrere Kanäle pro Account möglich). Man kann hier auch einen existierenden Kanal (auf einem anderen Hub) importieren (näheres dazu: Nomadische Identität / Klonen), aber in der Regel hat man einen solchen als Einsteiger nicht. Also gibt man hier den gewünschten Namen ein, aus dem das Formular auch gleich einen Vorschlag für den Nicknamen generiert (das ist der Teil, welcher im Fediverse-Handle verwendet wird, also z.B. “beispielnutzer” für “beispielnutzer@hub.pericles.hu”).

acca08

Dann klickt man auf den Button “Create“und der Kanal ist angelegt. Willkommen bei Hubzilla, willkommen im Fediverse!

Ist der Kanal angelegt, wird man sofort eingeloggt und es wird einem das Formular für die Profildetails angezeigt.

acca09

Was auffällt: Alles ist in englischer Sprache. Das sollte man zuerst umstellen. Dazu klickt man auf das App-Menü ⋮ oben rechts. Nun werden die installierten Applikationen angezeigt. Hubzilla bietet sehr viele Funktionalitäten, die man nicht unbedingt alle benötigt. Aus diesem Grund kann man diese Funktionalitäten installieren und im Menü und/oder im Header sichtbar machen.

acca10

acca11

Standard für installierte Applikationen ist:

Unter den Applikationen gibt es noch einen Eintrag, um Apps zu installieren (“+ Apps). Damit installieren wir uns jetzt erst einmal die App für die Wahl der Sprache.

Hat man auf diesen Menüpunkt geklickt, sieht man in der linken Seitenleiste die Auswahl “Installierte Apps” und “Verfügbare Apps”, sowie einen Filter für App-Kategorien.

acca12

Da die Sprach-App noch nicht installiert ist, findet man sie unter “Verfügbaer Apps”. Die Bezeichnung lautet (noch sind wir englisch unterwegs) “Language”. Bei dieser App klickt man auf “Install”.

acca13

Nun ist die App installiert und taucht unter “Installierte Apps” auf. Damit sie auch im App-Menü erscheint, muss man sie noch aktivieren. Das erledigt man, indem man auf das Sternchen bei der installierten App klickt (klickt man da noch auf den Pin, so erscheint die App auch im Header. Bei der Sprachwahl kann man das lassen und den Header damit nicht überfrachten, denn die Sprache der Benutzeroberfläche wechselt man nun nicht alle Nase lang.

acca14

acca15

acca16

Jetzt taucht der Eintrag “Language” im App-Menü auf.

acca17

Klickt man darauf, kann man die Sprache für die Oberfläche auswählen.

acca18

Das Ergebnis ist sofort sichtbar: Die Benutzeroberfläche ist auf die gewünschte Sprache umgestellt.

acca19

Anschließend sollte man ein paar Grundlegende Einstellungen vornehmen und die ersten Kontakte knüpfen. Das wird unter Erste Schritte / Einstellungen hier in der KnowledgeDB erläutert.

Affinität

Der Verbindungsbearbeitungsbildschirm bietet einen Schieberegler, um einen Grad der Freundschaft mit der Verbindung auszuwählen (dieses Tool wird als App “Beziehungsgrad” aktiviert und kann mit dem entsprechenden EIntrag im App-Menü konfiguriert werden). Betrachten Sie dies als ein Maß dafür, wie sehr Sie sie mögen oder nicht mögen. 1 ist für Leute, die Sie mögen, deren Beiträge Sie die ganze Zeit sehen möchten. 99 ist für Leute, die Sie nicht interessieren und deren Beiträge Sie vielleicht nur gelegentlich anschauen möchten. Nachdem Sie hier einen Wert zugewiesen haben, können Sie das Affinitätstool auf der Matrixseite verwenden, um Inhalte basierend auf dieser Nummer zu filtern.

Der Schieberegler auf der Matrixseite hat sowohl einen minimalen als auch einen maximalen Wert. Beiträge werden nur von Personen angezeigt, die zwischen diesen Bereich fallen. Affinität hat keine Beziehung zu Berechtigungen und ist nur in Verbindung mit der Affinitätstool-Funktion nützlich.

aff01

Affinity - en

Affinity

The connection edit screen provides a slider to select a level of friendship with the connection (this tool is enabled as the ‘Affinity’ app and can be configured with the appropriate item in the app menu). Think of this as a measure of how much you like or dislike them. 1 is for people you like, whose posts you want to see all the time. 99 is for people you are not interested in and whose posts you may only want to see occasionally. Once you have assigned a value here, you can use the affinity tool on the matrix page to filter content based on this number. The slider on the matrix page has both a minimum and maximum value. Posts will only be displayed from people who fall between this range. Affinity has no relationship to permissions and is only useful in conjunction with the affinity tool function.

affin01

Alt-Text: Bildbeschreibungen… nicht ganz einfach

Bildbeschreibungen, also Alt-Text für Bilder sind eine wichtige Sache. Sie dienen z.B. dazu, Menschen mit Sehbeeinträchtigungen das Rezipieren von Postings mit Bildern zu erleichtern. Oftmals nutzen derart eingeschränkte Menschen Screenreader (Vorlese-Apps), welche den Text vorlesen. Gibt es dann einen Alt-Text zum Bild, wird dieser vorgelesen und der Nutzer bekommt eine Vorstellung davon, was auf dem Bild zu sehen wäre. Ein weiteres Beispiel wäre die Verwendung eines Alt-Text bei Bildern, die sich dem Betrachter inhaltlich, Bildlich oder sonst irgendwie nicht unbedingt auf den ersten Blick erschließen. Hier können Beschreibungen und/oder Erläuterungen zum Verständnis beitragen.

Nun stellt sich die Frage, wie man bei Hubzilla Bildbeschreibungen zu seinen Fotos zufügen kann.

Vorneweg: Beim Hochladen und Speichern in der eigenen Cloud von Hubzilla gibt es keine solche Möglichkeit. Man kann also ein Bild nicht schon am Speicherort mit einem Alt-Text versehen. Die Bildbeschreibung kommt erst beim Teilen dazu.

Hier ist Hubzilla derzeit wahrlich nicht besonders komfortabel. Es gibt nämlich keine Möglichkeit, eine Bildbeschreibung direkt bei der Auswahl aus dem Cloud-Speicher einzugeben.

Mit der App “Fotos” kann man Bilder zwar mit einem Titel versehen und auch einen Kommentar eingeben… diese Daten werden aber leider nicht für eine Bildbeschreibung vewendet.

Wählt man beim Verfassen eines Beitrags (Postings) das Icon zum Einfügen eines Bildes, so landet man in der Dateiverwaltung und nach einem Klick auf das gewünschte Bild, wird der Code in das Posting eingefügt. Bei Kommentaren gibt es diesen vereinfachten Weg nicht. Hier muss man mit bbCode (bevorzugt!), Markdown oder HTML arbeiten.

bbCode

Die einfachste Methode, ein Bild einzufügen ist die Nutzung der bbCode-Tags [img][/img]. Zwischen die beiden Tags wird die URL zum Bild eingetragen. Ist das Bild zugriffsbeschränkt, empfiehlt sich die Verwendung der hubzilla-spezifischen bbCode-Tags [zmg][/zmg]. Generell ist die Verwendung von “zmg” zu empfehlen.

So haben wir aber keine Bildbeschreibung. Um diese einzubauen verwendet man eine andere Syntax der bbCode-Tags:

[img=<URL_des_Bilds>]<Bildbeschreibung>[/img]

bzw.

[zmg=<URL_des_Bilds>]<Bildbeschreibung>[/zmg]

Nun verfügt das Bild über einen Alt-Text, der im Browser z.B. beim Überfahren mit dem Mauszeiger angezeigt und von gängigen Screenreadern vorgelesen wird.

Hat man das Bild in einen Beitrag über den Einfüge-Button eingefügt, muss man das Ergebnis im Editor-Fenster entsprechend abändern:

[zrl=<ZRL_des_Original-Bildes>][zmg=<Breite>x<Höhe>]<ZRL_der_skalierten_Version>[/zmg][/zrl]

Was hier auffällt: Bei dem Einfügen über den Button wird eine skalierte Version unseres Bilds eingefügt, die automatisch erstellt wird. “Eingerahmt” wird die Bild-Referenz von den bbCode-Tags [zrl=][/zrl], was dafür sorgt, dass das nunmehr skalierte Bild bei Klick als Original angezeigt wird.

Variante 1

Wir markieren die ZRL, die sich zwischen den Tags [zmg=][/zmg] und schneiden sie aus.

alttext01

Nun markieren wir die Skalierungsangabe <Breite>x<Höhe>und fügen dort die gerade ausgeschnittene ZRL ein.

alttext02

Jetzt geben wir unsere Bildbeschreibung zwischen den Tags [zmg=<ZRL_des_Bildes>][/zmg]ein.

alttext03

alttext04

Fertig!

Nun haben wir einen Alt-Text zum Bild…

alttext05

…und können das Bild mittels Klick auch in der Original-Version betrachten.

alttext06

Variante 2

Noch einfacher und schneller geht das Versehen von Bildern, die mit dem Einfüge-Button eins Postig eingefügt wurden, auf diese Weise:

Der Teil [zmg=<Breite>x<Höhe>]wird so abgeändert, dass die Skalierungs-Angaben erhalten bleiben und die Bildbeschreibung auch dort angegeben wird. Es muss also nur dieser Bereich verändert werden.

alttext13

Hier ändert man ihn, so dass er so aussieht: [zmg width="<Bildbreite>" height="<Bildhöhe>" title="<Bildbeschreibung"] (Beachte: Die Anführungszeichen sind erforderlich!)

alttext14

Erledigt! Weitere Änderungen sind nicht erforderlich. Die Bildbeschreibung ist drin.

Markdown

Wenn unser Hub vom Admin entsprechend konfiguriert ist, können wir auch die Markdown-Syntax zum Einfügen eines Bildes mit Bildbeschreibung nutzen.

![<Bildbeschreibung>](<URL_des_Bildes>)

alttext07

Hier haben wir aber keine Skalierungs-Möglichkeit. Bearbeiten wir den Beitrag später noch einmal, werden wir überdies feststellen, dass Hubzilla die Referenz in bbCode umgewandelt hat.

alttext08

alttext09

Wir merken das daran, dass das angezeigte Bild wiederum anklickbar ist und zum Original führt.

HTML

Die “Königs-Disziplin” ;-) ist das Einfügen des Bildes mit HTML-Syntax. Hier gibt es ja ohnehin das Attribut alt="", wo wir unsere Bildbeschreibung einfügen können.

alttext10

Wenn man möchte, kann man zur Skalierung auch noch das Attribut “width” in der Form

<img src="<URL_des_Bildes>" width="<Breite>">

anfügen (auch hier gehören die Aführungszeichen dazu).

Auch damit wird das Bild samt Bildbeschreibung angezeigt. Und… was sagt uns das Lupen-Symbol?

alttext11

Genau! Das Bild ist anklickbar und mit dem Original verlinkt. Das liegt auch in diesem Fall daran, dass der Code von Hubzilla zu bbCode konvertiert wird, was wir beim nachträglichen bearbeiten auch sehen können.

alttext12

Fazit

Es ist kein Problem, bei Hubzilla Bilder mit Bildbeschreibungen zu versehen. Es nur leider ein klein wenig umständlich. Vielleicht wird ja das Einfügen mit dem Button um ein entsprechendes Formular ergänzt (und bei der Gelegenheit auch gleich auch im Kommentar-Editor eingebaut).

Apps

Viele Funktionen von Hubzilla sind als sogenannte Apps realisiert. Es gibt einige Default-Apps, die immer installiert und aktiviert sind, weil sie für das Funktionieren des Systems erheblich sind. Sehr viele weitere Funktionalitäten hingegen sind durch vom Nutzer zu installierende und aktivierende Apps möglich.

Die Apps findet man im App-Menü.

Auch für das Installieren und Verwalten der Apps nutzt man das App-Menü. Am Ende der Einträge für die aktivierten Apps befindet sich die Auswahlmöglichkeit “+ Apps”.

apps01

Wählt man diesen Eintrag, so kommt man zur App-Verwaltung.

apps02

In der linken Seitenleiste findet man ein Menü mit zwei Einträgen:

  • Installierte Apps
  • Verfügbare Apps

Darunter findet sich eine Filter-Auswahl, um sich nur Apps einer bestimmten Kategorie anzeigen zu lassen (oder alle).

Nach Aufruf der App-Verwaltung werden die installierten Apps angezeigt. Um weitere Apps zu installieren, wechselt man zu “Verfügbare Apps”.

apps03

Nun werden die verfügbaren Apps angezeigt. Auch jene, die bereits installiert sind. Bei diesen Apps gibt es einen Button zum “Aktualisieren” der jeweiligen App.

In der Zeile einer App ist rechts ein Button “Installieren” vorhanden.Mit einem Klick darauf, wird die App installiert (sie wird dann auch bei “Installierte Apps” aufgeführt).

apps04

Wichtiger Hinweis: Für die Teilnahme am Fediverse ist die App “ActivityPub Protokoll” zwingend erforderlich. Diese App ist aber nicht als Standard installiert. Nach dem Anlegen eines neuen Kanals muss diese App unbedingt als erstes installiert werden.

Hat man nun die gewünschten Apps installiert, wechselt man wieder zur Übersicht der “Installierten Apps”.

Neben allen dort aufgeführten Apps befinden sich zwei oder drei Symbole:

  • ein Stern
  • ein Pin
  • ein Zahnrad (nicht bei allen Apps verfügbar)

apps05

apps06

Ein Klick auf den Stern aktiviert diesen (er wird gelb). Das führt dazu, dass die App im App-Menü aufgeführt wird.

Ein Klick auf den Pin aktiviert diesen (er wird gelb). Das führt dazu, dass die App (als Symbol) in der Navigationsleiste angepinnt wird.

Bei Apps, welche Einstellungsmöglichkeiten haben, wird ein Zahnrad angezeigt. Ein Klick darauf führt zu den Einstellungen für die jeweilige App.

Man kann im App-Menü die Apps nach Belieben per Drag-and-Drop sortieren.

Möchte man Apps deinstallieren, geschieht dies ebenfalls in der App-Verwaltung.

appdeinst01

Im Tab “Installierte Apps” findet man oben einen Button “Apps verwalten”.

appdeinst02

Nun werden wieder sämtliche installierten Apps angezeigt. Neben jeder App ist ein Mülleimer-Symbol zu sehen. Mit einem Klick auf dieses Symbol wird die App deinstalliert.

appdeinst03

Sofern es sich nicht um eine selbsterstellte App handelt, findet man die App nun wieder im Tab “Verfügbare Apps” von wo aus man sie ggf. bei Bedarf erneut installieren kann.

App-Menü

Das App-Menü ist ein Pulldown-Menü, in welchem sämtiche installierten und aktivierten Apps erreichbar sind. Über das App-Menü (ganz am Ende) kann man Apps verwalten, d.h. weitere Apps instalieren, updaten, z.T. konfigurieren, im Menü auflisten und an die Navigationsleiste anheften.

hamb01

Es befindet sich oben rechts in der Navigationsleiste.

hamb03

Es wurde in der Vergangenheit auch “Hamburger”-Menü genannt, weil das Symbol - mit etwas Fantasie - einem Hamburger ähnelte: ☰

Mit den aktuellen Versionen von Hubzilla (ab Version 9.4) wurde das Symbol ☰ zum Bootstrap-Icon Three dots vertical geändert: ⋮

Artikel

Der Artikel ist eine Macroblogging-Beitragsform bei Hubzilla und z.B. geeignet für echte Blogbeiträge. Im Gegensatz zu normalen Beiträgen, die im gesamten Netzwerk (inklusive Fediverse) verteilt werden, verbleiben Artikel beim eigenen Hub. Sie sind für Nutzer anderer Instanzen und Nutzer, die keinen Account im Fediverse haben also nur über ihre URL erreichbar. Die URL kann selbstverständlich geteilt werden, so dass der Artikel trotzdem im Fediverse bekannt wird und abgerufen werden kann.

Einen Artikel erstellt man über die App (App-Menü ⋮) “Artikel”. Ruft man diese auf, werden sämtliche erstellten Artikel angezeigt und man hat die Möglichkeit, einen neuen Artikel anzulegen (“Artikel hinzufügen”).

art01

Das Erstellen eines Artikels ähnelt dem Erstellen eines normalen Beitrags. Das Eingabe-Formular weist aber zwei zusätzliche Felder auf: “Summary (optional)” und “Link zur Seite”.

art02

Das Summary ist eine kurze Zusammenfassung des Inhalts, die beim Aufrufen des Artikels zunächst angezeigt wird.

art03

art04

Mit dem Link zum Artikel kann man die URL festlegen, über welche man den Artikel erreichen kann (z.B. zum Teilen). Gibt man dort z.B. “ein-testartikel” ein, so lautet die URL:

<URL des Hubzilla-Hub>/articles/<Benutzername>/ein-testartikel

Den Link kann man aber z.B. auch einfach kopieren, indem man den Artikel über das Kontextmenü (︙) “Link zur Quelle“aufruft und den Link zum Artikel aus dem Adressfeld des Browsers verwendet.

art05

Tipp: Artikel werden in der Gesamtübersicht, aber auch in den Kategorie-Übersichten immer chronologisch nach der letzten Änderung sortiert dargestellt. Das kann ungünstig sein. Wenn man z.B. an einem älteren Artikel eine kleine Änderung vollzieht, landet der Artikel, obwohl er alt ist, ganz vorne in der Liste.

Eine Möglichkeit, das zu ändern, ist das Umstellen auf die Sortierung nach Erstellungsdatum. Dazu muss man mit Admin-Rechten die Datei addon/articles/Mod_Articles.php anpassen.

In Zeile 209 muss man aus

$items = conv_sort($items, 'updated');

durch Ändern des Wortes updated die Zeile

$items = conv_sort($items, 'created');

machen.

Nun werden Artikel chronologisch nach dem Erstellungsdatum sortiert aufgelistet.

Danke an Chris für den Tipp!

Authentifizierung

Authentifizierung

Entfernte Authentifizierung

Ist man in seinem Browser aktuell bei seinem Hub eingeloggt,

auth00

so ist es möglich, sich auch bei einem Hub zu authentifizieren, bei welchem man über keinen Account verfügt.

Die erfolgt über die Seite “Anmelden” / “Login” des fremden Zielhubs.

auth01

auth02

Ganz unten im Dialogfenster befindet sich ein Button “Entfernte Authentifizierung”. Klickt man auf diesen Button, erscheint ein Dialog mit einem Eingabefeld, in welches man das Kanal-Handle des Kanals eingibt, mit welchem man gerade in dem Browser auf seinem eigenen Hub angemeldet ist.

auth03

Nach Klick auf “Authentifizieren” ist man bei dem fremden Hub authentifiziert und kann dort das tun, was einem von dem Hub eingeräumt wird.

Hat man z.B. den Link eines Nutzers des fremden Hubs bekommen, der auf einen Inhalt (z.B. eine Datei oder ein Wiki…) verweist, welchen dieser für uns freigegeben hat, können wird nun über diesen Link auf diesen Inhalt zugreifen.

Magische Authentifizierung

Ist man in seinem Browser aktuell bei seinem Hub eingeloggt, so kann man auf beschränkte Inhalte eines Nutzers auf einem anderen Hubs zugreifen, welche dieser für einen selbst explizit freigegeben hat (in den Berechtigungs-Einstellungen), ohne sich extra anmelden zu müssen (z.B. durch die o.g. “Entfernte Authentifizierung”). Dafür muss man von dem Nutzer den Link zum Inhalt unter Nutzung der [zrl][/zrl] bzw. [zrl=][/zrl] Tags bekommen. Klickt man nun auf einen solchen Link, wird man beim Ziel-Hub automatisch (“automagisch”) authentifiziert und man kann direkt auf die Ressource zugreifen.

Diese beiden Mechanismen sind eine Besonderheit von Nomad und funktionieren deshalb auch nur innerhalb des Hubzilla-Netzwerks (Grid).

Nutzer anderer Fediverse-Dienste “gucken in die Röhre”. Wenn wir es solchen Nutzern ermöglichen möchten, auf Inhalte in unserem Kanal zuzugreifen, müssen wir ihnen einen Gastzugang einrichten.

Authentication - en

Authentication

Remote authentication

If you are currently logged in to your hub in your browser,

authent01

It is also possible to authenticate yourself at a hub where you do not have an account. This is done via the ‘Register’ / ‘Login’ page of the external target hub.

authent02

authent03

There is a ‘Remote authentication’ button at the bottom of the dialogue window. If you click on this button, a dialogue box appears with an input field in which you enter the channel handle of the channel with which you are currently logged into the browser on your own hub.

authent04

After clicking on ‘Authenticate’, you are authenticated with the external hub and can do what the hub authorises you to do.

For example, if you have received a link from a user of the external hub that refers to content (e.g. a file or a wiki…) that they have shared with us, you can now access this content via this link.

Magic authentication

If you are currently logged in to your hub in your browser, you can access restricted content of a user on another hub that the user has explicitly shared with you (in the authorisation settings) without having to log in separately (e.g. using the ‘Remote authentication’ function mentioned above). To do this, you must receive the link to the content from the user using the [zrl][/zrl] or [zrl=][/zrl] tags. If you now click on such a link, you are automatically authenticated (‘automagically’) at the target hub and you can access the resource directly.

These two mechanisms are a special feature of Nomad and therefore only work within the Hubzilla network (grid).

Users of other Fediverse services are left out in the cold. If we want to enable such users to access content in our channel, we have to set up guest access for them.

Eine Hubzilla-App

Auch wenn es für Hubzilla keine native App gibt, kann man den Komfort einer App z.B. auf mobilen Geräten genießen. Das Zauberwort lautet “Progressive Web App” (PWA).

Zunächst einmal ein paar Erläuterungen, weshalb es keine native Hubzilla-App gibt und es wohl auch in absehbarer Zeit keine geben wird:


Hubzilla wird immer als die “eierlegende Wollmilchsau” unter den Social Networking (Media) Systemen bezeichnet. Und das nicht ohne Grund. Man kann Hubzilla, ohne Spezialwissen ganz normal wie jedes andere Fediverse-System verwenden. Es bietet ein etliche Vorteile gegenüber anderen Fediverse-Diensten (kein Zeichenlimit, Textformatierung, eingebundene Bilder, Zitate…), die mit einer App durchaus abbildbar sind.

Allerdings bietet es noch viel mehr. Es wird deshalb oft auch als Social Networking CMS bezeichnet. Webseiten, Artikel zum Bloggen, Karten, Lesezeichen, Kalender, Adressbuch, Wiki, Cloudspeicher und vieles mehr wird von Hubzilla angeboten. Und für all diese Funktionen müsste eine App extra Funktionen anbieten. Und Hubzilla ist durch Addons (theoretisch unbegrenzt) erweiterbar. Zumindest für alle Standard-Addons der Software müsste die Apps Funktionen und Bedienungsmöglichkeiten anbieten. Addons durch Drittanbieter und auch kommende müssten dann auch noch irgendwie eingebaut werden. Im Endeffekt würde das Erstellen einer nativen App einen kompletten Rewrite der Client-Software für Android und iOS erfordern. Das ist eine enorme Aufgabe, die nicht wirklich zu leisten ist.


Nun aber zur PWA und zur Installation!

Eine PWA ist eine Website, die zahlreiche Merkmale besitzt, die nativen Apps entsprechen. Sie ist quasi eine Webseite, die wie eine native App erscheint. Grundvoraussetzung dafür ist ein gutes responsives Design der Webseite. Im Endeffekt wird die Webseite vom Webbrowser dargestellt, wobei die Menüs und Bedienelemente des Browsers weggelassen werden.

Hubzilla erfüllt genau diese Voraussetzungen, um als PWA genutzt zu werden.

Ich beschreibe jetzt hier die wenigen Schritte, die notwendig sind, eine Hubzilla-App auf dem Android-Smartphone zu installieren (mit iOS ist das auf Apple-Geräten ebenfalls möglich und funktioniert vergleichbar z.B. mit Safari).

Am Anfang steht die Wahl des Webbrowsers. Ich beschreibe es jetzt hier unter Nutzung von Chrome (das ich ansonsten meide, wie der Teufel das Weihwasser), weil dieser Browser in der Regel auf jedem Android-Gerät vorhanden ist.

Um die Hubzilla-App auf den Screen zu bekommen (und Hubzilla so mit einfachem Tippen aufzurufen), startet man also den Webbrowser, ruft die URL des Hubs auf und loggt sich ein (ich setze voraus, dass man einen Account hat… falls nicht, bitte einen erstellen: Account anlegen und Einfacher Einstieg).

hpwa01

hpwa02

Nachdem man eingeloggt ist, wir der eigene Kanal normal im Webbrowser angezeigt. Man erkennt, dass man im Browser unterwegs ist, weil die Bedienelemente des Browsers (z.B. auch das Adressfeld mit der URL) sichtbar sind.

hpwa03

Jetzt öffnet man das Menü des Chrome-Browsers…

hpwa03a

…und wählt “Zum Startbildschirm hinzufügen”.

Bei Chrome hat man die Auswahl, die Seite entweder als App (=PWA) zu installieren oder lediglich als Verknüpfung auf dem Bildschirm abzulegen. Hier wählt man am besten “Installieren”.

hpwa04

hpwa05

Wenn man nun auf “Installieren” tippt, wird die PWA installiert und ein Icon auf dem Bildschirm abgelegt, über welches man nun die Hubzilla-App starten kann (ohne die Bedienelemente des Webbrowsers).

Diese App kann man über die App-Verwaltung des Geräts auch wieder deinstallieren, wenn man denn mag.

hpwa06

Nutzt man z.B. Fennec als Browser, funktioniert das entsprechend, wobei da keine Installation der App angeboten wird, sondern nur das Ablegen auf dem Bildschirm. Das Ergebnis ist aber verleichbar. Nach Auswahl des Icons wird Hubzilla in Fennec als PWA (ohne Bedienelemente des Webbrowsers) aufgerufen. Diese Verknüpfung kann man ganz einfach vom Bildschirm löschen, wenn man die PWA wieder loswerden möchte.

hpwa07

Mit anderen Webbrowsern funktioniert das in der Regel entsprechend.


Auf iOS kann man PWAs über Safari installieren, indem man die „Teilen“-Schaltfläche verwendet und die Option „Zum Home-Bildschirm“ auswählt. Dadurch wird ein Icon auf dem Home-Bildschirm erstellt, das die PWA wie eine native App öffnet.

A Hubzilla app

Even if there is no native app for Hubzilla, you can still enjoy the convenience of an app on mobile devices, for example. The magic word is ‘Progressive Web App’ (PWA).

First of all, a few explanations as to why there is no native Hubzilla app and why there probably won’t be one in the foreseeable future:


Hubzilla is always referred to as the ‘eierlegende Wollmilchsau‘ (‘jack of all trades’) among social networking (media) systems. And not without reason. You can use Hubzilla just like any other Fediverse system without any specialised knowledge. It offers a number of advantages over other Fediverse services (no character limit, text formatting, embedded images, quotes…), which can certainly be mapped with an app. However, it offers much more. It is therefore often referred to as a social networking CMS. Hubzilla offers websites, articles for blogging, maps, bookmarks, a calendar, address book, wiki, cloud storage and much more. And an app would have to offer extra functions for all these features. And Hubzilla is (theoretically unlimited) expandable with add-ons. The apps should at least offer functions and operating options for all standard software add-ons. Third-party add-ons and future add-ons would also have to be integrated somehow. Ultimately, creating a native app would require a complete rewrite of the client software for Android and iOS. This is an enormous task that cannot really be accomplished.


But now to the PWA and the installation!

A PWA is a website that has numerous features that correspond to native apps. It is essentially a website that appears like a native app. The basic prerequisite for this is a good responsive design of the website. In effect, the website is displayed by the web browser, with the browser’s menus and controls being omitted.

Hubzilla fulfils exactly these requirements to be used as a PWA.

I will now describe the few steps required to install a Hubzilla app on an Android smartphone (with iOS, this is also possible on Apple devices and works in a similar way to Safari, for example).

The first step is to choose a web browser. I will describe it here using Chrome (which I otherwise avoid like the devil avoids holy water) because this browser is usually available on every Android device.

To get the Hubzilla app on the screen (and to call up Hubzilla with a simple tap), you start the web browser, call up the URL of the Hub and log in (I assume that you have an account… if not, please create one: Create account - en).

hpwa01

hpwa02

Once you are logged in, your own channel is displayed normally in the web browser. You can recognise that you are in the browser because the browser controls (e.g. the address field with the URL) are visible.

hpwa03

Now open the Chrome browser menu…

hpwa03a

…and select ‘Add to home screen’. Chrome gives you the choice of either installing the page as an app (=PWA) or simply placing it as a shortcut on the screen. It is best to select ‘Install’ here.

hpwa04

hpwa05

If you now tap on ‘Install’, the PWA is installed and an icon is placed on the screen, which you can now use to start the Hubzilla app (without the web browser controls). This app can also be uninstalled again via the device’s app management if you wish.

hpwa06

If you use Fennec as a browser, for example, this works accordingly, although no installation of the app is offered, only dropping it on the screen. However, the result is comparable. After selecting the icon, Hubzilla is called up in Fennec as a PWA (without web browser controls). You can easily delete this shortcut from the screen if you want to get rid of the PWA.

hpwa07

This usually works accordingly with other web browsers.


On iOS, you can install PWAs via Safari by using the ‘Share’ button and selecting the ‘Add to Home Screen’ option. This creates an icon on the home screen that opens the PWA like a native app.

B

bbCode

BBCode (Bulletin Board Code) ist eine vereinfachte Auszeichnungssprache, die bevorzugt für die Erstellung von Beiträgen in Webforen eingesetzt wird. BBCode ist nicht offiziell reglementiert, stellt aber wegen seiner hohen Verbreitung einen Quasi-Standard dar.

TagEffektBeispielAnzeige
[b]…[/b]Fett[b]Hallo[/b]Hallo
[i]…[/i]Kursiv[i]Hallo[/i]Hallo
[u]…[/u]Unterstrichen[u]Hallo[/u]Hallo
[s]…[/s]Durchgestrichen[s]Hallo[/s]Hallo
[color=…]…[/color]Textfarbe[color=black]Hallo[/color]Hallo
[size=…]…[/size]Textgröße[size=11]Hallo[/size]Hallo
[font=…]…[/font]Schriftart[font=Arial]Hallo[/font]Hallo
[url]…[/url]Link[url]https://pepecyb.hu[/url]https://pepecyb.hu
[url=…]…[/url]Linktext[url=https://pepecyb.hu]PepeCyBsWelt [/url]PepeCyBs Welt
[img]…[/img]Bild[img]https://pepecyb.hu/logo.png[/img](bild)
[quote]…[/quote]Zitat[quote]Hallo[/quote](quote)
[code]…[/code]Creates a code box[code]Hallo[/code](code)
[list]…[/list]Unsortierte Liste[list][]Item 1[]Item 2[/list](list)
[list type=decimal]…[/list]Sortierte Liste[list type=decimal][li]Item 1[/li][/list](list)
[list type=lower-alpha]…[/list]Sortierte Liste (Buchstaben)[list type=lower-alpha][li]Item 1[/li][/list](list)
[list type=lower-roman]…[/list]Sortierte Liste (Römische Zahlen)[list type=lower-roman][li]Item 1[/li][/list](list)
[li]…[/li]Listeneintrags.o.s.o.
[center]…[/center]Zentrieren[center]Hallo[/center]Hallo
[left]…[/left]Linksbündig[left]Hallo[/left]Hallo
[right]…[/right]Rechtsbündig[right]Hallo[/right]Hallo
[spoiler]…[/spoiler]Spoiler[spoiler]Hallo[/spoiler](versteckt)
[spoiler=…]…[/spoiler]Spoiler mit Titel[spoiler=Titel]Hallo[/spoiler](versteckt)

Beitrag / Post

Beiträge (Posts) sind die einzige Veröffentlichungsmethode, die

  1. aktiv an die Hubs der Kanäle geliefert werden, die mit dem Veröffentlichungskanal verbunden sind (und natürlich die entsprechenden „feinen“ Berechtigungen aktiviert haben) und
  2. in offenen Kommunikationsplattformen eingebunden werden können, die von den Föderations-Plugins unterstützt werden, einschließlich “ActivityPub”, „diaspora“, „pubcrawl“, „gnusoc“, „pubsubhubub“.

Einen Beitrag zu verfassen ist einfach. Aus der Stream-Ansicht kann man einen Beitrag erstellen, indem man in das, am Anfang des Streams befindliche, Feld “Teilen” klickt. Tut man dies, öffnet sich der Beitragseditor.

Aus dem HQ heraus kann man das Icon unter der linken Seitenleiste nutzen oder man wählt “Beitrag erstellen” aus dem App-Menü (⋮) oder (falls angepinnt) aus der Navigationsleiste.

beitr01

beitr02

Ein Beitrag kann optional einen Titel haben und verschiedenen Kategorien zugeordnet werden.

beitr03

Wie der Beitragseditor letztlich aussieht und welche Gestaltungsmöglichkeiten er bietet, hängt davon ab, wie der eigene Hub vom Administrator konfiguriert ist und wie man selbst den Editor konfiguriert hat. Hat man die App “WYSIWYG-Status” installiert, so kann man den Text sofort mit einer Voransicht gestalten. Ist Markdown für den Editor erlaubt, kann man den Text mit BBcode und Markdown formatieren.

Unten rechts gibt es ein Icon (Auge), mit welchem man sich eine Vorschau des Beitrags anzeigen lassen kann, sowie ein Icon (Vorhangschloss), mit dem man die Berechtigungen für die Sichtbarkeit des Beitrags festlegen kann. Klickt man auf den Button “Teilen”, wird der Beitrag veröffentlicht.

beitr04

Beiträge (Posts)? Artikel? Webseiten? Wikis? Hubzilla Publishing erklärt.

Neue Nutzer von Hubzilla können durch die verschiedenen Funktionen verwirrt werden, insbesondere wenn es um die Veröffentlichung von Inhalten geht. Andere Software-Plattformen konzentrieren sich typischerweise auf eine einzige Methode, wie zum Beispiel „Microblogging“, aber Hubzilla bietet verschiedene Optionen, die du für verschiedene Zwecke nutzen kannst. Scheinbar versteckt in den Kanaleinstellungen findest du folgendes:

  • Webseiten – Stelle verwaltete Webseiten in deinem Kanal bereit
  • Wiki – Stelle ein Wiki für deinen Kanal bereit
  • Karten – Erstelle persönliche Planungskarten
  • Artikel – Erstelle interaktive Artikel

Dies sind alle Möglichkeiten, Inhalte zusätzlich zur primären Veröffentlichungsmethode Beitrag (Post) zu veröffentlichen.

Worin ähneln sie sich?

Ein wichtiger Punkt ist, dass alle diese Methoden die gleiche dezentrale Zugriffskontrolle verwenden, die den Kern von Hubzilla bildet. Das bedeutet, dass du für alles, was du veröffentlichst, dies entweder öffentlich tun kannst, oder du kannst den Zugriff auf diejenigen beschränken, die du ausdrücklich in der ACL (Zugriffssteuerungsliste) der Veröffentlichung zulässt. Die Kanäle (d. h. Personen, Foren, Gruppen) auf dieser Liste haben möglicherweise Konten auf Ihrem Hub oder sie können auf völlig unabhängigen Servern gehostet werden. Ein anderer Bereich, in dem alle Veröffentlichungsmethoden ähnlich sind, ist, wie sie zwischen Klonen ihres Kanals synchronisieren. Eine der wichtigsten Neuerungen von Hubzilla ist das nomadische Identitätssystem, das es Kanälen ermöglicht, „Klone“ zu besitzen, die Konten auf unabhängigen Servern gehören. Jeder dieser Klone repräsentiert die gleiche Identität und hat den gleichen Zugriff auf den Inhalt, unabhängig davon, von welchem Server der Kanal Daten anfordert. Daten, die einem Kanal gehören, werden zwischen seinen Klonen synchronisiert, um Redundanz und Widerstandsfähigkeit gegenüber Netzwerkfehlern oder Zensur zu unterstützen. Artikel, Wikis, Karten, Webseiten und Posts werden alle zwischen Klonen synchronisiert.

Worin unterscheiden sie sich?

Beiträge (Posts) sind die einzigeVeröffentlichungsmethode, die

  1. aktiv an die Hubs der Kanäle geliefert werden, die mit dem Veröffentlichungskanal verbunden sind (und natürlich die entsprechenden „feinen“ Berechtigungen aktiviert haben) und
  2. in offenen Kommunikationsplattformen eingebunden werden können, die von den Föderations-Plugins unterstützt werden, einschließlich „diaspora“, „pubcrawl“, „gnusoc“, „pubsubhubub“.

Die anderen Veröffentlichungsmethoden speichern Inhalte nur auf dem eigenen Hub und müssen auf herkömmliche Weise mit einer statischen URL aufgerufen werden. Anders als bei Posts können bei den anderen Veröffentlichungsmethoden die ACLs so oft geändert werden, wie du möchtest. Du könntest einen Artikel beispielsweise zusammenstellen und überarbeiten, wobei die Zugriffssteuerungsliste so eingestellt ist, dass nur Du selbst darauf zugreifen kannst. Wenn du den Artikel fertig bearbeitet hast, kannst du die ACL öffnen, um eine größere Zielgruppe einzubeziehen.

Also welchen benutzt du?

Die Antwort hängt davon ab, was du tun willst. Im Folgenden findest du einige Anwendungsfälle, die veranschaulichen, warum du möglicherweise eine im Vergleich zu einer anderen verwenden solltest.


Wiki

Du arbeitest mit einer Gruppe von Personen zusammen, um eine Dokumentation für euer Softwareprojekt zu erstellen. Du möchtest eine Sammlung unabhängiger Inhaltsseiten haben, in denen du sehen kannst, wer welche Änderungen an den einzelnen Seiten vorgenommen hat. Du möchtest Änderungen leicht rückgängig machen können, wenn ihr zusammenarbeitet, um die Dokumentation zu vervollständigen.


Artikel

Du bist ein Blogger, der gerne detaillierte Analysen aktueller Ereignisse oder detaillierte Erklärungen zu technischen Problemen gibt und gerne Feedback von deinen Lesern erhalten möchte. Bei den meisten Artikeln ermöglichst du Kommentare, um die Interaktion mit deinen Inhalten zu verbessern. Für andere Artikel deaktivierst du Kommentare vollständig zu, um Ablenkungen für andere Leser zu vermeiden.


Webseite

Du erstellst die Zielseite für deine Organisation im öffentlichen Web und möchtest die vollständige Kontrolle über das Erscheinungsbild haben, einschließlich der HTML-, CSS- und Javascript-Funktionen für die Seite. Webseiten bieten die Flexibilität, die du benötigst, um die von dir benötigte Art von Webseite zu erstellen.


Karten

Dein Team plant eine Veranstaltung und du musst die verschiedenen Aufgaben detailliert beschreiben, die du durchführen musst, um dies zu erreichen. Du möchtest über die Kommentare von Teammitgliedern aktuelle Konversationen führen, während ihr zusammenarbeitet, um die einzelnen Aufgaben zu definieren und durchzuarbeiten. Wenn du sie mit Freiform-Labels kategorisierst, kannst du die Aufgaben flüssig in Gruppen organisieren, die für deine Ziele sinnvoll sind.


Der beste Weg zu entscheiden, was du verwenden solltest, ist zu experimentieren! Probiere sie alle aus und sehe, wie sie für dich arbeiten können. Während du dich erkundest, wirst du anfangen, deine eigenen kreativen Wege zu finden, um dieses mächtige Werkzeugset zu benutzen.


Inoffizielle Übersetzung des Artikels „Posts? Articles? Webpages? Wikis? Hubzilla Publishing Explained.“ von Andrew Manning

Berechtigungen

Berechtigungen sind ein Kernelement von Hubzilla. Sie erlauben sehr fein abgestufte Möglichkeiten, Inhalte zugänglich zu machen, zu verbergen oder in der Nutzung zu beschränken. So dienen sie auch dazu, Direktnachrichten möglich zu machen, indem über Berechtigungen festgelegt wird, wer den Beitrag (nichts anderes sind Direktnachrichten) sehen kann, und wer nicht.

Der Zugriff auf die Berechtigungen eines Inhalts erfolgt über das Icon mit dem Vorhangschloss (🔒 bzw. 🔓).

ber01

Beachte: Berechtigungen von Beiträgen können nicht nachträglich geändert werden! Die Berechtigungen anderer Inhalte (zum Beispiel Dateien etc.) hingegen können auch nachträglich angepasst werden.

Ein offenes Vorhangschloss symbolisiert, dass der Inhalt öffentlich verfügbar ist, also “ungeschützt”. Legt man hingegen andere Berechtigungen fest, wird eine geschlossenes Vorhangschloss gezeigt.

Mit Klick auf das Symbol gelangt man in die Berechtigungs-Auswahl. Diese unterscheidet sich, je nachdem, ob man Berechtigungen für einen Beitrag oder einen anderen Inhalt einstellt.

ber02

Man hat bei den Berechtigungen die Wahl zwischen

  • Öffentlich
  • Nur ich
  • Privacy Gruppen
  • Fortgeschritten (“Benutzerdefinierte Auswahl”)

ber03

Bei den Berechtigungen für Beiträge gibt es noch einen weiteren Eintrag, nämlich “Foren”, um Beiträge direkt in Foren zu posten (o.g. Unterschied).

ber04

Öffentlich

Der Beitrag bzw. der Inhalt kann von jedem gesehen werden.

Nur ich

Das ist selbsterklärend. Dieser Beitrag bzw. Inhalt steht nur dem Nutzer selbst zur Verfügung.

Privacy Gruppen

Unter Privacy Gruppen werden die verschiedenen angelegten Privacy Gruppen zur Wahl gestellt. Die Beiträge bzw. Inhalte stehen allen zur Verfügung, die den entsprechenden Privacy Gruppen zugeordent sind.

Foren

Erstellt man einen Beitrag, kann man für die Berechtigung auch ein Forum wählen, sofern man mit einem Community Forum (Kanal-Typ) verbunden ist.

Fortgeschritten (“Benutzerdefinierte Auswahl”)

Dies ist die feinste Einstellmöglichkeit für die Berechtigungen. Hier kann man für alle möglichen einzelnen Nutzer, Privacy Gruppen und Foren festlegen, ob Inhalt bzw. Beitrag gesehen werden kann (“Erlauben”, “Verweigern”).

ber05

Die sonstigen Berechtigungen, also Möglichkeiten, mit einem Inhalt bzw. Beitrag umzugehen, wird durch die Kanal-Rolle festgelegt. Je nach gewählter Kanal-Rolle sind verschiedene Nutzungsmöglichkeiten für Inhalte erlaubt bzw. verboten:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mir die Beiträge aus seinem Kanal schicken
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann in meine Datei- und Bilderordner hochladen/ändern
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen
  • Kann Webseiten in meinem Kanal erstellen/ändern
  • Kann meine Wiki-Seiten bearbeiten
  • Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
  • Kann mir direkte Nachrichten schicken
  • Kann Profile und Profilsachen mögen/nicht mögen
  • Kann mit mir chatten
  • Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln
  • Kann meinen Kanal administrieren
  • Gruppe Akteur - Erlauben Sie diesem Kanal, als Forum zu fungieren

Klickt man schließlich auf “Absenden”, so sind die berechtigungen für den Inhalt festgelegt.

Berechtigungssystem von Hubzilla verstehen

Berechtigungssystem von Hubzilla verstehen

Hubzilla verfügt über ein Berechtigungssystem, welches für Einsteiger zunächst unüberschaubar wirkt. Wenn man sich aber ein paar Grundprinzipien verdeutlicht, dann ist es letztlich doch verständlich und nachvollziehbar.

Identität = Kanal

Bei Hubzilla benötigt man einen Account bei einem Hub (Hubzilla-Instanz/Hubzilla-Server). Dieser Account ist aber, im Gegensatz zu den meisten anderen Fediverse-Diensten nicht die eigene Identität. Während man z.B. bei Mastodon mit seinem Account auch gleichzeitig die Fediverse-Identität, mit welcher man im Fediverse auftritt, erzeugt, bietet der Account bei Hubzilla lediglich die Berechtigung, sich bei dem entsprechenden Hub einzuloggen. Hat man einen Account neu registriert, verfügt man aber noch über keine Identität im Fediverse, man kann nicht am Fediverse teilnehmen.

Die Identität bei Hubzilla wird Kanal genannt. Verfügt man über einen Account bei einem Hub, so kann man einen solchen Kanal erstellen. Und mit dieser Identität, also dem Kanal kann man dann auch am Fediverse teilnehmen.

bersys01

Eine Besonderheit von Hubzilla ist, dass man sich beliebig viele Kanäle erstellen kann. Man benötigt dafür jedoch lediglich den einen Account. Verschiedene Kanäle kann man nun für verschiedene Zwecke verwenden. So kann man eine “klassische” Fediverse-Identität als Kanal einrichten, wie man sie auch bei anderen Diensten nutzt. Man kann aber z.B. zusätzlich einen weiteren Kanal erstellen, der nicht so öffentlich ist, wie der “klassische” Kanal. Den kann man z.B. nutzen, um nur mit bestimmten Personen zu interagieren. Oder man wählt als Kanal, ein Community-Forum einrichten. Ein solcher Kanal verhält sich in etwa so, wie ein klassisches Forum und bietet eine Art Gemeinschaftsseite, auf welcher sich die Mitglieder (Verbindungen zum Kanal) austauschen können.

Die Möglichkeiten sind vielfältig. Für jeden Zweck kann man sich einen Kanal anlegen und damit eine weitere Identität.

Wichtig: Das Prinzip der Whitelist

Das Berechtigungssystem von Hubzilla beruht auf einer Art Whitelist-System. Grundsätzlich ist zunächst anderen Personen (Fediverse-Nutzer oder sogar reine Internet-Nutzer ohne Fediverse-Account) alles verboten.

! Info !
Eine Whitelist (weiße Liste), auch Positiv-, Ausnahme- oder Erlaubnisliste genannt, ist eine Liste, welche Ausnahmen von einem generellen Verbot enthält.

Berechtigung und Zugriff

Was in diesem Artikel generell als “Berechtigung” bezeichnet ist, kann noch weiter unterschieden werden: Berechtigungs- und Zugriffssystem. Zugriffsberechtigungen, kurz Zugriff, regelt, auf welche Inhalte andere Personen zugreifen können, was sie zu sehen bekommen, sie beziehen sich also auf das Objekt/den Inhalt. Die Berechtigungen regeln, was andere in und mit unserem Kanal und unseren Inhalten tun können (also z.B. kommentieren, wiederholen, teilen, liken etc., ggf. auch bearbeiten, modifizieren oder sogar Inhalte hinzufügen) und was sie grundsätzlich sehen können.

Die erste Stufe des Berechtigungssystems: die Kanalrolle

Beim Anlegen eines Kanals muss man die sogenannte Kanalrolle auswählen. Man hat die Wahl zwischen “Öffentlich”, “Persönlich”, “Community Forum” und “Benutzerdefiniert”.

bersys02

Damit man mit seinem Kanal auch ,mit anderen Menschen interagieren kann, müssen diesen bestimmte Berechtigungen eingeräumt werden (es sei denn man will Hubzilla als wirklich vollkommen privaten Raum ohne jeglichen Kontakt zur Außenwelt nutzen… auch das ist möglich).

Hubzilla stellt bei Kanalerstellung drei Kanalrollen mit einem Satz bestimmter Berechtigungen zur Auswahl:

  1. Öffentlich: Diese Kanalrolle entspricht im Prinzip am ehesten dem “klassischen” Social-Network-Profil, wie man es von anderen Diensten kennt. Es ist ein weites Spektrum an Interaktionen möglich.
  2. Persönlich: Auch diese Kanalrolle ist noch nahe am “klassischen” Social-Network-Profil dran. Es schränkt aber bestimmte persönliche Interaktionen zunächst ein (sie befinden sich quasi nicht auf der Whitelist).
  3. Community Forum: Diese Kanalrolle stellt eine Besonderheit dar. Die Berechtigungen sind denen der Kanalrolle “Persönlich” recht ähnlich. Es wird aber zusätzlich die Fähigkeit aktiviert, sich wie ein Forum zu verhalten. Das bedeutet, dass Mitglieder (also Verbindungen) dieses Foren-Kanals unmittelbar in die “Wall” des Forums posten können, was dazu führt, dass ein solches Posting im Stream des Kanals landet und von allen anderen Mitgliedern (Verbindungen) gesehen werden kann und diese auch darüber benachrichtigt werden. Zusätzlich zur Kanalrolle “Persönlich” wird Nutzern hier das Recht eingeräumt, die Verbindungen des Kanals (also quasi die Mitgliederliste) anzuschauen.

Die vierte Auswahlmöglichkeit ist “Benutzerdefiniert”. Hier kann man nach Kanalerstellung die Berechtigungen für jeden einzelnen Fall selbst festlegen. Die Einstellungen für die Berechtigungen findet man aber nicht bei den Kanal-Einstellungen, wo man die Kanalrolle auswählt, sondern bei den Privacy-Einstellungen. Hier gibt es dann einen zusätzlichen Button “Benutzerdefinierte Konfiguration der Channel Role”, mit welchem man zum Editor für die Berechtigungen der Kanalrolle gelangt. Beim Aufruf dieses Editors wird man zunächst gewarnt: “Mit Vorsicht vorgehen - Das Ändern von erweiterten Konfigurationseinstellungen kann sich auf die Funktionalität und Sicherheit Ihrer Kanäle und der Ihrer Kontakte auswirken.

bersys03

bersys04

Entschließt man sich, das “Risiko” zu akzeptieren, klickt man auf den entsprechenden Button und gelangt nun endlich zu den Berechtigungseinstellungen für den Kanal.

bersys05

Der Warnhinweis mag manchen ein wenig erschrecken. Es klingt auch fast schon bedrohlich. Aber wer diesen Artikel hier gelesen und verstanden hat, für den besteht kaum ein Risiko, sich einen “unbenutzbaren” Kanal zu erstellen. Außerdem kann man, wenn der Kanal nicht so funktioniert, wie erwartet, zur Not nachträglich die Kanalrolle wieder auf eine der drei voreingestellten Varianten umstellen und hat damit den entsprechend funktionierenden Kanal.

Hier nun die Berechtigungen der Kanalrollen:

BerechtigungÖffentlichPersönlichCommunity ForumBenutzerdefiniert
Kann meinen Kanal-Stream und meine Beiträge sehenXXX
Kann mir die Beiträge aus seinem Kanal schicken
Kann mein Standardprofil sehenXXX
Kann meine Verbindungen sehenXX
Kann meine Datei- und Bilderordner sehenXXX
Kann in meine Datei- und Bilderordner hochladen/ändern
Kann die Webseiten meines Kanals sehenXXX
Kann meine Wiki-Seiten sehenXXX
Kann Webseiten in meinem Kanal erstellen/ändern
Kann meine Wiki-Seiten bearbeiten
Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
Darf meine Beiträge kommentieren und mögen/nicht mögenX
Kann mir direkte Nachrichten schickenX
Kann Profile und Profilsachen mögen/nicht mögenX
Kann mit mir chattenX
Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln
Kann meinen Kanal administrieren

Die hier aufgeführten Berechtigungen der drei voreingestellten Rollen können nicht geändert werden.

Bei den benutzerdefinierten Berechtigungen hat man im Editor die Möglichkeit zwischen

  • Nur ich
  • Nur die, denen Du es explizit erlaubst
  • Angenommene Verbindungen
  • Beliebige Verbindungen
  • Jeder auf dieser Webseite
  • Alle Hubzilla-Mitglieder
  • Jeder authentifizierte
  • Jeder im Internet

Die zweite Stufe des Berechtigungssystems: die Kontaktrollen

Die Kanalrollen gelten für jeden, der unseren Kanal besucht. Also auch für Gäste ohne Fediverse-Account und Nutzer anderer Fediverse-Dienste (aber auch für Hubzilla-Nutzer), mit denen wir nicht verbunden sind.

Und natürlich gelten sie für Nutzer, mit welchen wir verbunden sind.

Wir haben aber nun mit der zweiten Stufe des Berechtigungssystems, den Kontaktrollen, die Möglichkeit, bestimmten Verbindungen weitere Rechte einzuräumen.

Bitte hier auf die Formulierung achten: “weitere Rechte einzuräumen”!

Mit den Kontaktrollen können wir Benutzern Möglichkeiten einräumen, die in der Kanalrolle nicht eingeräumt werden. Wir können aber Berechtigungen, die durch die Kanalrolle eingeräumt wurden, nicht wieder wegnehmen. Auch die Kontaktrollen sind eine Positivliste. Eine weitere Positivliste, welche die Positivliste der Kanalrolle ggf. ergänzt und erweitert.

Es gibt eine “Standard” Kontaktrolle, welche die Berechtigungen der vordefinierten Kanalrollen sinnvoll erweitert. Diese Standardrolle führt dazu, dass sich der Kanal tatsächlich wie ein “klassischer” Social-Network-Account verhält:

BerechtigungStandard
Kann meinen Kanal-Stream und meine Beiträge sehenX
Kann mir die Beiträge aus seinem Kanal schickenX
Kann mein Standardprofil sehenX
Kann meine Verbindungen sehenX
Kann meine Datei- und Bilderordner sehenX
Kann in meine Datei- und Bilderordner hochladen/ändern
Kann die Webseiten meines Kanals sehenX
Kann meine Wiki-Seiten sehenX
Kann Webseiten in meinem Kanal erstellen/ändern
Kann meine Wiki-Seiten bearbeiten
Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichenX
Darf meine Beiträge kommentieren und mögen/nicht mögenX
Kann mir direkte Nachrichten schickenX
Kann Profile und Profilsachen mögen/nicht mögenX
Kann mit mir chattenX
Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegelnX
Kann meinen Kanal administrieren

Diese Standardrolle wird allen neuen Kontakten als Default zugewiesen. Wenn wir unseren Kanal unter Privacy-Einstellungen nicht so konfiguriert haben, dass alle Kontaktanfragen automatisch genehmigt werden, können wir die Kontaktrolle aber auch direkt beim Genehmigen der Verbindung ändern (sofern es noch andere Kanalrollen gibt). Im Nachhinein lässt sich die Kontaktrolle einer jeden Verbindung ändern.

Mit der App “Contact Roles” können wir uns die Berechtigungen der Standard Kontaktrolle anschauen (die Standardrolle kann nicht verändert werden) und neue eigene Kontaktrollen anlegen.

Die Kanalrolle des eigenen Kanals hat, wie bereits erwähnt, oberste Priorität. Jede Kontaktrolle erbt die Berechtigungen, welche von der Kanalrolle vorgegeben wurden. Man kann diese Berechtigungen in der Kontaktrolle nicht wieder entziehen.Man kann lediglich weitere Berechtigungen hinzufügen.

bersys06

In der App “Contact Roles” werden die geerbten Berechtigungen in rot angezeigt.

Die hier neu angelegten Kontaktrollen können neuen und bestehenden Kontakten nun zugewiesen werden. Wir können beim Erstellen einer Kontaktrolle auch festlegen, dass diese Rolle künftig neuen Kontakten als Standard zugewiesen wird. Das funktioniert natürlich nur für eine Rolle.

Berechtigung

cursor-fill KLICK für Großansicht

Die dritte Stufe des Berechtigungssystems: Berechtigungs-Einstellungen (Zugriff / Zugriffs-Berechtigung)

Während die Kanalrolle und die Kontaktrollen die grundsätzlichen Berechtigungen festlegen, bieten die Berechtigungs-Einstellungen für einzelne Inhalte die Möglichkeit, den Zugriff explizit festzulegen. Hier befinden wir uns in der Schicht des Zugriffs- (Zugriffsberechtigungs-) System. Mit diesem System wird grundsätzlich festgelegt, ob ein Nutzer unsere Inhalte sehen kann.

Die Berechtigungs-Einstellungen erreicht man über einen Button mit einem Vorhangschloss-Symbol im Zusammenhang mit dem jeweiligen Inhalt (Posting, Dateien und Dateiordner, Termine, Artikel, Webseiten etc.). Mit diesen Zugriffs-Berechtigungen kann man, zusätzlich von den eingeräumten Berechtigungen durch Kanalrollen und Kontaktrollen, festlegen, wer den Inhalt sehen kann.

Man hat die Wahl zwischen

  • Öffentlich
  • Nur ich
  • Privacy Gruppen
  • Benutzerdefinierte Auswahl

bersys07

Mit der benutzerdefinierten Auswahl haben wir die Möglichkeit, jedem einzelnen Kontakt, jeder Benutzergruppe und jedem Gastzugang die Erlaubnis zu erteilen, den Inhalt zu sehen.

bersys08

Mit den Einstellungen für die Zugriffs-Berechtigung kann man in gewisser Weise die Berechtigungen, die man mit den Kanal- und Kontaktrollen gewährt hat, außer Kraft setzen. Wählt man beiden Zugriffs-Berechtigungen “Öffentlich”, so bleiben die Regeln für den Kanal und die für Kontakte unberührt und der Zugriff auf den Inhalt / das Objekt wird so gewährt, wie es diese Berechtigungen vorsehen.

Wählt man “Nur ich”, dann gelten die vergebenen Berechtigungen für den Inhalt / das Objekt nicht mehr. Der Inhalt wird nur dem Kanalinhaber zur Verfügung gestellt. Der kann seine eigenen Inhalte ohnehin immer sehen.

Wählt man eine Privacy Gruppe oder einzelne Kontakte und Gruppen aus dem Bereich “Benutzerdefiniert”, so werden die gewährten Berechtigungen der Kanalrollen und Kontaktrollen auch nicht mehr unmittelbar beachtet, sondern nur für die Kontakte und/oder Kontaktgruppen, denen wir den Zugriff auf das Objekt/den Inhalt gewähren. Man kann also Kontakten, denen man bestimmte Berechtigungen gewährt hat, denen man also die Fähigkeit gegeben hat, grundsätzlich z.B. Objekte / Inhalte zu sehen, mit den Zugriffs-Berechtigungen dieses Recht für ein bestimmtes Objekt /einen bestimmten Inhalt einräumen, während es allen anderen in diesem Einzelfall verwehrt wird. Wichtig dabei ist, sich zu verdeutlichen, dass mit diesem Mechanismus aber keine Zugriffs-Berechtigungen gewährt werden können, wenn diese über Kanalrolle oder Kontaktrolle nicht gewährt wurden. Ist z.B. in der Kanalrolle nicht erlaubt, Webseiten des Kanals zu sehen, und wird auch mittels einer Kontaktrolle dies nicht erlaubt, so kann man dem Kontakt auch mit den Berechtigungs-Einstellungen (Zugriff) nicht ermöglichen, die Webseite zu sehen.

Räumt man Nutzern, welche keinen Account auf dem eigenen Hub haben, sondern auf einem fremden Hubzilla-Hub, Rechte an Inhalten / Objekten ein, müssen sich diese am eigenen Hub authentifizieren. Am besten man sendet ihen den Link zum Inhalt unter Nutzung der Tags [zrl][/zrl] oder [zrl=][/zrl], weil sie damit automatisch authentifiziert werden. Näheres dazu im Artikel Authentifizierung.

Fediverse-Nutzer, die mit anderen Diensten im Fediverse unterwegs sind, können mit einer entsprechenden Zugriffs-Berechtigung Beiträge sehen, weil diese föderiert und an den Stream / die Timeline verteilt werden und so für den Adressaten sichtbar sind. Andere Inhalte / Objekte, wie z.B. Dateien oder Dateiordner, oder auch Artikel, Webseiten etc. werden nicht föderiert und verbleiben ausschließlich auf dem Hub des Eigentümers. Man kann nun z.B. einen Link auf solche einen Inhalt teilen. Damit erhält der Empfänger den Link in seiner Timeline. Ein Klick darauf führt dann aber zum Ausgangs-Hub. Ist das Objekt hinter dem Link aber zugriffsbeschränkt, kann er es nicht sehen, selbst wenn er als Berechtigter in den Zugriffs-Berechtigungen angegeben wurde. Das funktioniert nur innerhalb des Hubzilla-Netzwerks (Grid), weil sich nur ein Hubzilla-Kanal über eine “magische Authentifizierung” beim Ziel-Hub fern-anmeldet. Diese Fähigkeit ist eine Spezialität des Nomad-Protokolls und steht bei ActivityPub nicht zur Verfügung. Um Nutzern anderer Dienste oder Nutzern ohne jeden Fediverse-Account solche Inhalte / Objekte zugänglich zu machen, muss man den Mechanismus des Gastzugangs verwenden.

Die Nutzung der Berechtigungs-Einstellungen ermöglicht auch das Versenden von Direktnachrichten. Wenn wir einen oder mehrere Kontakte auswählen, so wird ein Posting nur an diese Kontakte verteilt. Das Posting erscheint bei diesen auch im Filter für Direktnachrichten. Solche Beiträge können nicht weitergesagt oder geteilt werden. Kommentare, also Antworten auf diese Direktnachrichten werden ebenfalls wieder nur an diejenigen Kontakte verteilt, die im Ursprungs-Posting als Berechtigte angegeben wurden.

Die Auswahl einzelner Kontakte für solche Direktnachrichten kann auch unter Umgehung der Berechtigungs-Einstellung mittels privater Erwähnung erfolgen (@!<HANDLE>).

drei_ebenen_ber_tn

cursor-fill KLICK für Großansicht

Eine weitere Art Berechtigungssystem: Privacy Gruppen

Die App “Privacy Gruppen” ermöglicht es, Kontakte Privacy Gruppen zuzuweisen. Solche Gruppen sind also Sammlungen von Kontakten und dienen einserseits der Filterung des Streams, aber auch der einfachen Kommunikation, die auf bestimmte Kontakte beschränkt ist.

Mit der App kann man Privacy Gruppen erstellen. Man vergibt einen Namen für die Gruppe und legt fest, ob die Mitglieder der Gruppe für andere Kanäle sichtbar sind, ob standardmäßig in diese Gruppe gepostet werden soll und ob neue Kontakte standardmäßig dieser Gruppe zugeordnet werden sollen.

bersys09

Die Option “Standardmäßig in diese Gruppe posten” sorgt dafür, dass die Berechtigungen in den Berechtigungs-Einstellungen (Vorhangschloss neben dem Button “Absenden”) eines Inhalts auf die entsprechende Privacy Gruppe voreingestellt sind. Diese Einstellung kann für einzelne Inhalte explizit mit den Berechtigungs-Einstellungen überschrieben werden. Die Option wirkt sich also nicht nur auf das Posten von Beiträgen, sondern auch auf die Sichtbarkeit anderer Inhalte, wie Dateien und Ordner, Artikel, Web- und Wikiseiten etc. aus.

Haben wir eine solche Privacy Gruppe erstellt und rufen wir sie nun in der App “Privacy Gruppen” auf, werden die o.g. Einstellungen abermals gezeigt. Darunter finden wir zwei Spalten:

  • Nicht in dieser Gruppe Hier werden alle Verbindungen angezeigt, die der Gruppe nicht zugewiesen wurden
  • Gruppenmitglieder Hier werden alle Verbindungen aufgeführt, welche der Gruppe bereits zugeordnet wurden.

Durch Klicken auf eine der Verbindungen, wird diese in die andere Spalte verschoben. Damit Können wir also Kontakte einer Gruppe zuweisen und Kontakte aus einer Gruppe entfernen.

Es ist aber auch möglich in der App “Verbindungen” einen Kontakt zu bearbeiten und diesen dort einer Privacy Gruppe zuzuweisen.

Privacy Gruppen erfüllen zwei Grundlegende Aufgaben. Einmal dienen sie als Filter für den Stream. Das hat mit “Berechtigungen” nichts zu tun. Wählt man in der Stream-Ansicht in der Seitenleiste eine bestimmte Privacy Gruppe, so werden im Stream ausschließlich Inhalte der Gruppenmitglieder angezeigt.

Und dann dienen sie zusätzlich der Gruppen-Kommunikation in Form von Direktnachrichten.

Wählt man beim Verfassen eines eines Beitrags in den Berechtigungs-Einstellungen eine Privacy Gruppe, so wird das Posting ausschließlich an die Mitglieder der Gruppe verteilt.

Außerdem kann man in der App “Kontaktrollen” einer Privacy Gruppe eine bestimmte Kontaktrolle zuweisen. Das bedeutet, dass allen Gruppenmitgliedern die entsprechende Kontaktrolle zugewiesen wird. Allerdings erfolgt die Zuweisung nur n diesem Moment. Kontakte, welche der Gruppe später zugefügt werden, erben diese Zuweisung nicht, sondern behalten die Standard-Kontaktrolle.

Eine weitere Art Berechtigungssystem: OCAP Access

Eine wichtige Einstellung für die Zugangskontrolle ist der OCAP Access. OPAC steht für “Object-capability model” und ermöglicht es bei Hubzilla, dass im allgemeinen Zugriff eingeschränkte Bilder für andere in Beiträgen, für welche ein Zugriff erlaubt ist, sichtbar sind.

Sieht man also Bilder in bestimmten Beiträgen oder Kommentaren nicht, so sollte kontrolliert werden, ob die Option “Enable OCAP access” unter Einstellungen → Privacy-Einstellungen aktiviert ist.

Gibt es eine Privacy Gruppe, in welche als Standard gepostet wird, oder ist der Lesezugriff auf die Cloud eingeschränkt, sind im Kommentar-Editor die Icons für das Hochladen und das Einfügen bereits in der Cloud existierender Medien nur vorhanden, wenn OCAP Access aktiviert ist.

Eine weitere Art Berechtigungssystem: Profile

Der Kanal, also unsere Identität im Fediverse verfügt über ein Standard-Profil. In diesem Profil können wir Details über uns selbst bekanntgeben. So ist es möglich, ein Profilfoto und ein Titelbild festzulegen, einen Kananamen festzulegen, Informationen zum Kanal selbst und zu anderen, teils persönlichen Verhältnissen bekanntzugeben.

Wir haben aber die Möglichkeit, mehrere Profile für einen Kanal anzulegen… mit unterschiedlichen Informationen und Daten. Und für jedes Profil können wir festlegen, welchen Kontakten es gezeigt wird.

bersys10

Damit ist es möglich, verschiedenen Kontakten auch verschiedene Informationen über uns selbst preiszugeben und damit festzulegen, welche Informationen welcher Kontakt erhält.

Überlegungen zu den Berechtigungen - Was ist sinnvoll? Was ist nicht sinnvoll?

Wer Hubzilla einfach nur als Social-Media-System, wie eines von vielen anderen, nutzen möchte, der muss sich keine allzu großen Gedanken über das Berechtigungssystem machen. Er wählt einfach eine sinnvolle Kanalrolle (meist “Öffentlich”) und damit ist die Sache erledigt. Direktnachrichten erledigt er über Tagging oder über die Berechtigungs-Einstellungen… das war es dann aber auch schon mit dem Berechtigungssystem.

Wer ab und an einmal Inhalte nur für bestimmte Kontakte zugänglich machen möchte, kann das auch mit den Berechtigungs-Einstellungen verwirklichen.

Wer etwas weniger öffentliche Interaktion wünscht, wählt die Kanalrolle “Privat”.

Wer aber grundsätzlich festlegen möchte, wer was im Kanal tun und sehen darf, der geht anders vor und wählt eine sehr private und damit eingeschränkte Kanalrolle. Hier bietet sich “Benutzerdefiniert” an. Bei den Einstellungen sollte man sich wirklich Gedanken darüber machen, was Freigaben bzw. Einschränkungen in der Praxis bewirken und welche Grundfunktionalität man möchte. Und dann erteilt man nur die Berechtigungen, die man auch wirklich in jedem Fall erteilen will.

Wir erinnern uns: Die Berechtigungen in Hubzilla folgen dem Prinzip einer Whitelist. Und die Kanalrollen haben die höchste Priorität. Was dort erlaubt ist, kann in der Kontaktrolle nicht wieder verboten werden.

Wichtig ist auch, sich vor Augen zu führen, dass die Kanalrollen wirklich für jeden(!) gelten. Also auch für Gäste ohne Fediverse-Account (“Jeder im Internet”) und für Nutzer, zu denen wir keine Verbindung haben.

Mit diesen Funktionen kann man auch eine folgen/nicht folgen Funktionalität verwirklichen.

Wenn wir in der Kanalrolle festlegen, dass man uns keine Beiträge schicken kann und keine Kommentare zu unseren Beiträgen abgeben kann, dann könnten wir z.B. Kontaktrollen erstellen, welche es bestimmetn Kontakten dennoch erlaubt. Erhalten wir eine Verbindungsanfrage, möchten aber keine Beiträge von diesem Kontakt sehen, diesem aber trotzdem ermöglichen uns zu “folgen”, also unsere Inhalte in seinen Stream zu erhalten, erzeugen wir eine Kontaktrolle, die ihm das senden von Beiträgen in unseren Stream und das Kommentieren unserer Beiträge weiterhin untersagt, es ihm aber ermöglicht unsere Beiträge und Kommentare zu sehen. Und wir erzeugen eine weitere Kontaktrolle, in welcher das Senden von Beiträgen in unseren Stream und das Abgeben von Kommentaren erlaubt. Diese Kontaktrolle weisen wir dann allen Kontakten zu, mit denen wir in beide Richtungen interagieren möchten.

Entsprechende Überlegungen machen wir uns auch zu anderen möglichen Interaktionen und erzeugen dafür passende Kontaktrollen, die wir dann den entsprechenden Kontakten zuweisen.

Damit ist es möglich, ganz genau zu definieren, was wir wem erlauben und wir können unseren Stream von unerwünschten Inhalten frei halten. Die Möglichkeiten sind wirklich vielfältig.

Wenn wir aus unterschiedlichen Gründen oder mit unterschiedlichen Interessen im Fediverse unterwegs sein wollen, bietet es sich an, mehrere Kanäle dafür anzulegen. Geht es uns aber nur darum, unterschiedlichen Nutzern unterschiedliche Informationen preiszugeben, so genügt es, für einen Kanal mehrere Profile anzulegen und entsprechend zuzuweisen. Dabei sollte man bedenken, dass - sofern man es mit der Kanalrolle nicht generell verbietet - jeder im Internet das Standardprofil sehen kann. Hier sollte man dann nur die wirklich notwendigen Informationen eintragen und für Freunde, Kollegen oder sonstige Kontakte Profile mit weitergehenden oder anderen Informationen anzulegen.

tl;dr

Das Berechtigungs-System von Hubzilla ist sehr feingranular und aufgrund seiner mehrschichtigen Form wirklich gut geeignet, zu bestimmen, wie man mit wem im Internet interagieren möchte. Es mag zunächst verwirrend erscheinen, ist aber, wenn man sich mit der Systematik ein wenig vertraut gemacht hat, gut zu verstehen.

Die äußerste Grenze für unser “Ich” bei Hubzilla ist die Kanalrolle. Sie legt fest, was generell in Bezug auf den eigenen Kanal für andere erlaubt ist. Diese Erlaubnisse können grundsätzlich auch nicht in tieferen Schichten wieder weggenommen werden. Die in der Kanalrolle festgelegten Berechtigungen, etwas zu tun oder zu sehen, gelten für jeden, unabhängig mit welchem Status (Gast, Fediversenutzer…) er auf unseren Kanal stößt. Deshalb ist es wichtig, sich über die Kanalrollen für den eigenen Kanal Gedanken zu machen und genau zu überlegen, was man selbst völlig Fremden Internet-Nutzern zugestehen möchte.

Das Fediverse lebt von Interaktion und davon, Verbindungen einzugehen (bei anderen Diensten also “Follower” zu haben oder “gefolgt” zu werden). Hat man eine recht restriktive Kanalrolle erstellt oder gewählt, um völlig Fremden nicht zu viel Möglichkeiten zu erlauben, kann man nun mit der nächsten Grenze, den Kontaktrollen, Kontakten weitergehende Berechtigungen zuweisen. Diese ergänzen die Berechtigungen, welche von der Kanalrolle vorgegeben sind, können die Berechtigungen, welche durch die Kanalrolle erteilt werden, aber nicht zurücknehmen.

Jeder Kanal kann genau eine Kanalrolle haben, aber beliebig viele Kontaktrollen. Damit ist es möglich, verschiedenen Kontakten auch verschiedene Berechtigungen zu erteilen.

Unabhängig von den Kontaktrollen, kann man als Benutzer aber auch bei Erstellen von Inhalten (Postings, Bilder und Dateien, Termine im Kalender etc.) den Zugriff einschränken. Die Regeln der Kontaktrolle gelten zwar weiterhin, aber mit der Zugriffs-Berechtigungen können wir für einzelne Inhalte/Objekte den Zugriff auf ausgewählte Kontakte beschränken. Dafür nutzt man die Berechtigungs-Einstellungen für den Inhalt, mit denen man festlegen kann, wer genau Zugriff auf den Inhalt haben soll.

Jeder Kanal kann außerdem über mehrere Profile verfügen. Profile dienen dazu, Internet-Nutzern Informationen über den Kanal (durchaus auch persönliche Informationen) zur Verfügung zu stellen.

Hat man eine Kanalrolle gewählt oder erstellt, welche es jedem im Internet erlaubt, das Kanalprofil zu sehen, sollte man genau überlegen, wie viele Informationen man im Standard-Profil, über welches jeder Kanal verfügt, zur Verfügung stellen möchte. Hier sollte man “sparsam” sein, aber trotzdem genügend Informationen anbieten, um ggf. Interesse für den Kanal zu erregen, damit sich womöglich Fediverse-Nutzer mit dem eigenen Kanal verbinden (oder ihm “folgen”).

Um nun bestimmten Kontakten weitergehende Informationen anzuzeigen, legt man dann weitere Profile mit unterschiedlichen Informationen an und weist diese den entsprechenden Kontakten zu. Damit können diese Kontakte dann die anderen, erweiterten Informationen einsehen. Informationen anderer Profile bleiben ihnen jedoch verborgen.

Um einerseits die Möglichkeit zu haben, den eigenen Stream nach Inhalten von bestimmten Nutzern zu filtern und andere Inhalte auszublenden, aber auch um eine auf bestimmte Verbindungen begrenzte Kommunikation zu ermöglichen, kann man sich Privacy Gruppen erstellen. Wählt man sie in der Stream-Ansicht im Filterbereich aus, so werden nur Inhalte angezeigt, welche von den in der Gruppe befindlichen Nutzern stammen. Legt man bei einem Posting oder dem Teilen von Daten (Bilder, Webseiten, Artikel etc.) mit den Berechtigungs-Einstellungen als Empfänger eine solche Privacy Gruppe fest, so bekommen auch nur die Mitglieder dieser Gruppe den Inhalt zu sehen.

Berechtigungssystem von Hubzilla verstehen - RELOADED

Begriffe / Begriffsbestimmungen

Wer?

Hubzilla ermöglicht es verschiedenen Nutzern unterschiedliche Dinge zu tun, auf unterschiedliche Art und Weise mit unserem Kanal zu interagieren. Aber wer sind denn diese Nutzer, wie werden sie unterschieden?

Es gibt acht Nutzerarten, die von Hubzilla unterschieden werden:

  1. Jeder im Internet: Das ist die Gesamtheit aller, die mit irgendeinem Client-Programm im Internet unterwegs sind. In der Regel sind dies Webbrowser, man kann aber auch mit anderen Anwendungen auf Inhalte im Internet zugreifen, bis hin zum grundlegenden Zugriff mittels Kommandozeilentools wie z.B. wget oder curl. Das bedeutet, dass es wirklich jedem im Internet erlaubt ist, auf Ressourcen unseres Kanals zuzugreifen. Er muss über keinen Fediverse-Account verfügen, sondern kann unsere Ressource auch direkt über die Eingabe einer URL abrufen, z.B. indem er unsere Kanalansicht channel/\<kanalname\> aufruft und die öffentlichen Postings unseres Kanals präsentiert bekommt.

  2. Jeder authentifizierte: Hiermit sind alle erfasst, welche über einen Fediverse-Account verfügen, in ihrem Dienst eingeloggt sind und nun aus ihrem Stream / ihrer Timeline auf unsere Inhalte zugreifen möchten.

  3. Alle Hubzilla-Mitglieder: Dies ist eine Einschränkung gegenüber Nr. 2. Der Zugriff ist nur mit einem Hubzilla-Kanal möglich. Wer also über einen Account bei einem Hub verfügt und über einen eigenen Kanal, kann, wenn er eingeloggt ist, auf Inhalte aus seinem Stream heraus zugreifen. An dieser Stelle greift dann auch Open WebAuth (OWA) und, wenn die Inhalte entsprechend veröffentlicht wurden, sogar Magic Auth (die automatische Berechtigungserteilung über Token). Die Beschränkung bezieht sich auf das Protokoll. Deshalb fallen auch (streams) Kanäle darunter, weil diese mittels Nomad/Zot6 mit Hubzilla kommunizieren.

  4. Jeder auf dieser Webseite: Hier nun eine Einschränkung gegenüber Nr. 3. Während bei Nr. 3 jeder Hubzilla-Nutzer (Account-/Kanal-Inhaber) auf unsere Inhalte zugreifen kann, wird der Kreis der Berechtigten weiter eingeschränkt, nämlich auf Hubzilla-Nutzer, die einen Account und Kanal nutzen, der auf dem selben Hub liegt, wie unserer.

  5. Beliebige Verbindungen: Dies ist eine weitere Einschränkung gegenüber Nr. 2. Es genügt nicht, über einen beliebigen Fediversedienst, nicht über einen beliebigen Hubzilla-Kanal, ja nicht einmal über einen Hubzilla-Kanal auf dem eigenen Hub zu verfügen. Der Zugriff ist auf alle beschränkt, zu denen eine Verbindung besteht. Dabei ist es unerheblich, ob der Nutzer über einen Hubzilla-Account verfügt, oder über einen Account bei einem anderen beliebigen Fediverse-Dienst. Erheblich ist, dass eine Verbindung zu dem Account/Kanal besteht.

    Achtung: Bei Hubzilla basieren Verbindungen grundsätzlich auf Gegenseitigkeit. Es gibt zunächst einmal nicht die Unterscheidung in Follower und Followed. Eine Verbindung ist zunächst einmal beides. Man folgt einem anderen und dieser folgt einem ebenfalls. Die Nutzergruppe „Beliebige Verbindungen“ gilt aber auch schon für noch nicht angenommene Verbindungen, solange diese nicht gelöscht wurden.

  6. Angenommene Verbindungen: Hier besteht nun eine Einschränkung gegenüber Nr. 5. Diese Berechtigung gilt nur für "echte" Verbindungen im Sinne von Hubzilla, also um wechselseitige Verbindungen (Follower und Followed).

  7. Nur die, denen Du es explizit erlaubst: Dies ist die restriktivste Berechtigung. Sie ist auf "echte" Verbindungen, also auf angenommene Verbindungen beschränkt und erfordert eine explizite Berechtigung über die jeweilige Kontaktrolle, welche man der Verbindung zugeordnet hat, oder eine explizite Berechtigungserteilung über die Berechtigungs-Einstellungen des jeweiligen Inhalts. Wir müssen den Zugriff also explizit erlauben.

  8. Nur ich: Bei der letzten Berechtigung handelt es sich letztlich gar nicht wirklich um eine Berechtigung, denn kein weiterer ist berechtigt, auf die Ressource zuzugreifen. Es ist nur uns persönlich gestattet und möglich.

Open WebAuth / MagicAuth

Teilt man Inhalte mit eingeschränkter Zugriffsberechtigung, muss sich der Empfänger für den Zugriff authentifizieren. Dies geschieht in Hubzilla mit der Open WebAuth (OWA) Funktionalität, und zwar überwiegend mittels MagicAuth. Dabei wird automatisch ein Authentifizierungs-Token mitgeschickt, welches die Berechtigung bestätigt.

Open WebAuth funktioniert auch im Zusammenspiel mit Tootik, Friendica, (streams) und Forte.

Was?

Hubzilla ermöglicht es verschiedenen Nutzern unterschiedliche Dinge zu tun, auf unterschiedliche Art und Weise mit unserem Kanal zu interagieren. Wer die Nutzer sind, haben wir gerade erfahren. Aber was sind die Dinge, welche diese Nutzer tun können, welche Interaktionen sind ihnen möglich?

  1. Kann meinen Kanal-Stream und meine Beiträge sehen: Dies ermöglicht es, dass andere Nutzer unseren Kanalstream betrachten können und unsere öffentlichen Beiträge sehen und in der eigenen Timeline / dem eigenen Stream angezeigt bekommen.
  2. Kann mir die Beiträge aus seinem Kanal schicken: Damit nehmen wir Postings des anderen Nutzers in unseren Stream auf. Seine Beiträge werden uns angezeigt.
  3. Kann mein Standardprofil sehen
  4. Kann meine Verbindungen sehen
  5. Kann meine Datei- und Bilderordner sehen: Diese Berechtigung ist erforderlich, damit andere Nutzer unsere Cloud sehen können und auch Dateien aus der Cloud, auf welche wir in unseren Beiträgen verweisen bzw. welche wir in unsere Beiträge einbetten (Bilder, Videos...). Ggf. kann diese Berechtigung mittels OCAP (siehe Teil 2) überschrieben werden. Verzeichnisse und Dateien dürfen vom Ersteller sogar dort gelöscht werden.
  6. Kann in meine Datei- und Bilderordner hochladen/ändern: Damit erlauben wir es dem Nutzer, Dateien in unsere Cloud hochzuladen, sowie vorhandene Dateien zu ändern. Das ist eine Berechtigung, die mit Bedacht nur an vertrauenswürdige Verbindungen vergeben werden sollte. (Benötigt OWA)
  7. Kann die Webseiten meines Kanals sehen Achtung: Das gilt auch für Artikel und Karten. Hier steht dann in den Berechtigungs-Einstellungen auch „Öffentlich“ nicht zur Wahl.
  8. Kann meine Wiki-Seiten sehen
  9. Kann Webseiten in meinem Kanal erstellen/ändern: Ähnlich wie bei den Cloud-inhalten, erteilen wir damit die Berechtigung, Webseiten in unserem Kanal zu erstellen, zu verändern oder zu löschen. Auch hier sollte man wieder gut überlegen, ob, und wenn ja, wem man diese Berechtigung erteilt. (Benötigt OWA) Achtung: Das gilt auch für Artikel und Karten.
  10. Kann meine Wiki-Seiten bearbeiten: Damit ermöglichen wir eine echte Wiki-Arbeit, also eine gemeinschaftliche Bearbeitung der Wiki-Inhalte.
  11. Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen (Benötigt OWA) Siehe hierzu die Erläuterungen aus dem dritten Hubzilla Workshop.
  12. Darf meine Beiträge kommentieren und mögen/nicht mögen (Grundlegende Antwortenkontrolle)
  13. Kann mir direkte Nachrichten schicken
  14. Kann Profile und Profilsachen mögen/nicht mögen (Benötigt OWA)
  15. Kann mit mir chatten
  16. Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln: Damit werden Kontakte dazu berechtigt, den eigenen Kanal als Kanalquelle zu verwenden und damit die eigenen Beiträge automatisiert weiterzuleiten.
  17. Kann meinen Kanal administrieren: ACHTUNG! Überlegt Euch gut, was Ihr tut und wem Ihr dieses Recht zugesteht.

Die Stufen des Berechtigungssystems / das Whitelist-Prinzip

Das Berechtigungssystem von Hubzilla beruht auf einer Art Whitelist-System (auch Positivliste genannt). Grundsätzlich ist zunächst anderen Personen (Fediverse-Nutzer oder sogar reine Internet-Nutzer ohne Fediverse-Account) alles verboten. Mittels zweier Whitelist-Stufen können wir dann bestimmten Benutzern oder Benutzerkreisen Berechtigungen erteilen.

Es gibt zwei Positiv-Listen bei Hubzilla: die Kanalrolle und die Kontaktrolle.

Die Kanalrolle ist die grundlegende Whitelist unseres Kanal, wie der Name schon nahelegt, und somit die erste Stufe des Berechtigungssystems. Die durch die Kanalrolle erteilten Berechtigungen werden an alle Kontaktrollen vererbt. Alles, was wir in der Kanalrolle erlauben, kann durch Kontaktrollen nicht wieder verboten werden. Es ist lediglich möglich, bestimmten Nutzern weitere Erlaubnisse zu erteilen. Dies geschieht dann mit den Kontaktrollen, der zweiten Stufe des Berechtigungssystems.

Die dritte Stufe des Berechtigungssystems sind schließlich die Berechtigungs-Einstellungen (/ ) für einzelne Inhalte. Man könnte meinen, dass man hiermit das Prinzip der Positivliste überschreibt, es ist aber, wenn man es genauer betrachtet nicht so. Einerseits gilt es nur für einzelne Inhalte (oder Inhalts-Hierarchien) und andererseits setzt man damit keine einzelnen Berechtigungen der beiden ersten Stufen außer Kraft, sondern sämtliche. Wählt man in den Berechtigungs-Einstellungen statt "Öffentlich" oder der Standard-Privacy-Gruppe (diejenige, in welche automatisch gepostet wird und die bei allen Kanälen als "Freunde" vorhanden ist, selbst wenn die App Privacy Groups gar nicht explizit installiert wurde), andere Berechtigungen für den Zugriff, wird der Zugriff zunächst für alle (außer einem selbst) verboten. Durch die Auswahl von Gruppen oder einzelnen Verbindungen (die Berechtigungs-Einstellungen funktionieren nur mit "angenommenen Verbindungen") gestattet man es dann bestimmten Verbindungen, auf den Inhalt zugreifen zu können. Man erstellt eine individuelle Whitelist für den bestimmten Inhalt bzw. die bestimmte Inhaltshierarchie.

Die Kanalrolle

Die Basis des Berechtigungssystems eines Kanals ist die Kanalrolle. Jeder Kanal verfügt über eine solche Rolle. Man muss sich beim Erstellen eines Kanals auf eine entsprechende Kanalrolle festlegen.

Kanalrolle: "Öffentlich"

Die Kanalrolle "Öffentlich" ist eine vom System vorkonfigurierte Kanalrolle, die ein weitestgehend öffentliches Agieren in Grid und Fediverse ermöglicht.

Hinweis: Die vorkonfigurierten Kanalrollen "Öffentlich", "Persönlich" und "Community Forum" erlauben es nicht, einzelne Berechtigungen zu verändern. Es besteht keine Möglichkeit, diese (das "Was?") zu editieren (das "Wie?" zu ändern).

Die von der Kanalrolle "Öffentlich" vergebenen Berechtigungen werden an "Jeder im Internet" vergeben. Es sind:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen
  • Darf meine Beiträge kommentieren und mögen/nicht mögen
  • Kann mir direkte Nachrichten schicken
  • Kann Profile und Profilsachen mögen/nicht mögen
  • Kann mit mir chatten

Kanalrolle: "Persönlich"

Die Kanalrolle "Persönlich" ist eine vom System vorkonfigurierte Kanalrolle, die ein etwas beschränkteres Agieren in Grid und Fediverse ermöglicht.

Die von der Kanalrolle "Persönlich" vergebenen Berechtigungen werden an "Jeder im Internet" vergeben. Es sind:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mein Standardprofil sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen

Kanalrolle: Community Forum

Die Kanalrolle "Community Forum" ist eine vom System vorkonfigurierte Kanalrolle, die einen Kanal zu einer Art Internet-Forum bzw. zu einer Kommunikations-Gruppe macht. Beiträge, die in den Foren-Kanal geschrieben werden, werden an alle Verbindungen des Kanals verteilt.

Die von der Kanalrolle "Community Forum" vergebenen Berechtigungen werden an "Jeder im Internet" vergeben. Es sind:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen

Kanalrolle: Benutzerdefiniert

Die Kanalrolle "Benutzerdefiniert" ist eine vom System vorkonfigurierte Kanalrolle, bei welcher die Möglichkeit besteht, jede einzelne Berechtigung zu verändern. Man kann die Berechtigungen in den Privacy-EinstellungenBenutzerdefinierte Konfiguration der Channel Role bearbeiten.

Die von der Kanalrolle "Benutzerdefiniert" vergebenen Berechtigungen werden an "Jeder im Internet" vergeben. Es sind:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen

Alle anderen Berechtigungen sind auf "Nur die, denen Du es explizit erlaubst" gesetzt.

Die Kontaktrollen

Die zweite Stufe des Berechtigungssystems sind die Kontaktrollen. Für jede Kanalrolle gibt es eine eigene, speziell konfigurierte Kontaktrolle: Standard. Diese ist zunächst auch so konfiguriert, dass sie allen neu hinzugefügten Verbindungen automatisch zugewiesen wird (dieses Verhalten lässt sich auch nur ändern, wenn man die App "Contact Roles" über die App-Verwaltung im App-Menü verfügbar macht). Sie räumt Verbindungen weitere Berechtigungen ein, die über die von der Kanalrolle an "Alle im Internet" vergebenen Berechtigungen hinausgehen.

Standard-Kontaktrolle für die Kanalrolle "Öffentlich"

Für die Kanalrolle "Öffentlich" sieht die Kontaktrolle vor, dass zusätzlich zu den ohnehin eingeräumten Berechtigungen für alle, Kontakte auch noch folgende Berechtigungen erhalten:

  • Kann mir die Beiträge aus seinem Kanal schicken
  • Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
  • Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln

Das führt zu einem Verhalten, welches am ehesten von einem öffentlichen Social-Network Account erwartet wird.

Standard-Kontaktrolle für die Kanalrolle "Persönlich"

Für die Kanalrolle "Persönlich" sieht die Kontaktrolle vor, dass zusätzlich zu den ohnehin eingeräumten Berechtigungen für alle, Kontakte auch noch folgende Berechtigungen erhalten:

  • Kann mir die Beiträge aus seinem Kanal schicken

Dies ist eine etwas restriktivere Variante und verbessert die Selbstbestimmung gegenüber einem typischen öffentlichen Social-Network Account.

Standard-Kontaktrolle für die Kanalrolle "Community Forum"

Für die Kanalrolle "Community Forum" sieht die Kontaktrolle vor, dass zusätzlich zu den ohnehin eingeräumten Berechtigungen für alle, Kontakte auch noch folgende Berechtigungen erhalten:

  • Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen

Dies ermöglicht erst die Foren-Funktionalität, weil das Veröffentlichen von Beiträgen über die Wall-to-Wall Posting Funktion erfolgt.

Standard-Kontaktrolle für die Kanalrolle "Benutzerdefiniert"

Für die Kanalrolle "Benutzerdefiniert" sieht die Kontaktrolle vor, dass zusätzlich zu den ohnehin eingeräumten Berechtigungen für alle, Kontakte auch noch folgende Berechtigungen erhalten:

  • Kann mir die Beiträge aus seinem Kanal schicken

Das entspricht der Standard-Kontaktrolle für die Kanalrolle "Persönlich".

Kontaktrollen verwalten und benutzen

Um weitere, eigene Kontaktrollen zu erstellen bzw. zu editieren oder zu löschen, muss man die automatisch bei Kanalerstellung installierte App "Contact Roles" im App-Menü zugänglich machen. Das erledigt man, indem man über "+ Apps" im App-Menü in der Gruppe der installierten Apps das Sternchen bei der App "Contact Roles" aktiviert. Anschließend kann man die App im App-Menü aufrufen.

Es wird zunächst das leere Formular für das Erstellen einer neuen Kontaktrolle angezeigt. Dabei fällt auf, dass es für einige Berechtigungen zwei Auswahlkästchen gibt. Zusätzlich zum normalen Kästchen eines in roter Schrift:

Dies sind die Berechtigungen, welche von der Kanalrolle vorgegeben sind. Hier zeigt sich, dass man die Berechtigungen von dieser Positivliste in einer Kanalrolle nicht wieder entziehen kann. Sie sind in jeder Kontaktrolle als "Erbe" vorgegeben.

Die schwarzen Auswahlkästchen erlauben es nun, zusätzliche Berechtigungen für Verbindungen einzuräumen, indem man ein Häkchen setzt.

In der Seitenleiste werden die vorhandenen Kontaktrollen aufgelistet. Die Kontaktrolle "Standard" existiert immer und diese kann auch weder gelöscht, noch verändert werden.

Wählt man diese Rolle in der Seitenleiste aus, so werden die Berechtigungen für die Standard-Rolle angezeigt:

Diese Kontaktrolle kann, wie gesagt, nicht bearbeitet werden.

Wählt man in der Seitenleiste den Menüpunkt "+ Neue Rolle hinzufügen", wird wieder das leere Formular angezeigt. Hier kann man nun eine eigene Kontaktrolle erstellen. Zum Beispiel eine, die noch weitergehende Berechtigungen für bestimmte Kontakte erteilt. Man muss einen Namen vergeben. Außerdem kann man festlegen, dass diese Rolle automatisch neuen Verbindungen zugewiesen wird. Wählt man diese Option, so wird sie, sofern sie in einer anderen Kontaktrolle bisher eingeschaltet war, in dieser ausgeschaltet. Die Option kann nur in einer einzigen Kontaktrolle aktiv sein.

Was macht man nun damit?

Nun stellt sich die Frage der konkreten Nutzung dieser Mechanismen. Was macht man damit, was kann man damit machen, wie weit geht die Steuerung der Berechtigungen, was macht das System so besonders?

Einfache Nutzung

Wer Hubzilla nur als ganz normalen Zugang zum Fediverse (oder zum Grid) nutzen möchte, ist mit den beiden Standard-Kanalrollen "Öffentlich" und "Persönlich" schon gut bedient, ohne etwas machen zu müssen.

Mit der Kanalrolle "Öffentlich" ist man am nächsten dran an einem "klassischen" Sozialen Netzwerk. Alles, was man postet oder teilt ist öffentlich und kann von jedem, der im Internet unterwegs ist, gesehen werden. Außerdem wird der Inhalt an alle Verbindungen verteilt, in deren Timeline/Stream er auch landet und dort auch teilen (Zitat-Posting) oder wiederholen (Boost), sowie Kommentare verfassen und ihn mögen bzw. nicht mögen.

Um das zu nutzen, muss der Einsteiger weder die Kontaktrollen-App "Contact Roles", noch die App "Privacy Gruppen" installieren/aktivieren bzw. benutzen. Der Kanal funktioniert wie erwartet.

Die Kanalrolle "Persönlich" ist ähnlich gut zu nutzen, hat aber ein paar Einschränkungen, die dem Kanal mehr Privatsphäre gibt. Auch ihn kann man verwenden, ohne "Contact Roles" oder "Privacy Gruppen" zu bemühen. Erster und entscheidender Unterschied ist, dass man Inhalte als Standard zunächst einmal nicht-öffentlich teilt. Alles wird nur an die eigenen Verbindungen verteilt. Der Inhalt ist auch nur für die Verbindungen zu sehen, obwohl die Kontaktrolle eigentlich sagt "Kann meinen Kanal-Stream und meine Beiträge sehen" = "Jeder im Internet". Das hängt mit den Privacy Gruppen zusammen und wird später in diesem Thema erläutert.

Teilen und Wiederholen durch Fremde aber auch Verbindungen sind, wie auch das Wall-to-Wall Posten nicht möglich.

Die Kontaktrollen kommen ins Spiel

Möchten wir weitere Berechtigungen unter einer Kanalrolle "Öffentlich" oder "Privat" einräumen, dann benötigen wir Zugriff zur App "Contact Roles". Es existiert immer eine Standard-Rolle, die bereits Berechtigungen erteilt, welche über die Berechtigungen aus der Kanalrolle hinausgehen. Sie kann aber nicht bearbeitet werden. Wir müssen dafür eine neue Kontaktrolle anlegen, welche – zusätzlich zu den generellen Berechtigungen aus der Kanalrolle – für Verbindungen die gewünschten Berechtigungen erteilt.

Eine Kontaktrolle ist immer diejenige, welche an alle neuen Kontakten vergeben wird. Neue Kontakte! Das bedeutet, wenn wir uns eine eigene Kontaktrolle erstellen und diese so konfigurieren, dass sie allen neuen Kontakten zugewiesen wird, so gilt das nur für künftige Verbindungen. Die bereits bestehenden Verbindungen behalten die alte Kontaktrolle. Um diesen, oder ggf. nur einem Teil der bereits bestehenden Verbindungen die neue Kontaktrolle zuzuweisen, muss man diese in der App "Verbindungen" zum Bearbeiten öffnen, wo dann diese Zuweisung möglich ist.

Hat man noch keine Privacy Gruppe eingerichtet und die App noch nicht zugänglich gemacht, existiert trotzdem eine Standard Privacy Gruppe mit dem Titel "Freunde". Dieser Gruppe werden alle Verbindungen automatisch zugefügt. Erstellen wir also eine neue Kontaktrolle und wollen diese zum Standard für alle Verbindungen machen, so schalten wir dort die Option, künftigen Kontakten diese automatisch zuzuweisen, an und weisen die neue Kontaktrolle einfach der Privacy Gruppe "Freunde" zu, in welcher ja alle bereits vorhandenen Verbindungen enthalten sind. Das erspart die Einzelzuweisung zu allen Verbindungen.

Kanalrolle "Benutzerdefiniert" als genaueste Berechtigungseinstellung

Wählt man die Kanalrolle "Benutzerdefiniert", hat man die Möglichkeit, jede einzelne Berechtigung für unterschiedliche Zielgruppen festzulegen. Mit unterschiedlichen Kontaktrollen, die ihrerseits unterschiedliche zusätzliche Berechtigungen erteilen, kann man für jede einzelne Verbindung genau die Berechtigungen festlegen.

Deshalb ist es bereits unmittelbar nach Einrichtung des Kanals sinnvoll, die einzelnen Berechtigungen einzustellen. Je nach Präferenz sollte man dabei möglichst zurückhaltend sein. Weitergehende Berechtigungen kann man dann individuell mit den Kontaktrollen erteilen.

Alles, was man nicht generell erlauben möchte, aber ggf. einzelnen oder Gruppen von Kontakten, setzt man dann auf "Nur die, denen Du es explizit erlaubst".

Privacy Gruppen: Helfer und Teil des Berechtigungssystems

Die Privacy Gruppen, die im ersten Teil schon mehrfach angesprochen wurden, haben eine Dreifachfunktion. Einmal kann man sie als eigenständigen Bestandteil des Berechtigungssystems sehen, dann dienen sie als Helfer für die Nutzung der Kontaktrollen und schließlich fungieren sie als Filter für den Stream.

Die App "Privacy Gruppen"

Die Funktionalität für Privacy Gruppen existiert in Hubzilla auch schon, ohne dass die App installiert ist. Wie bereits erwähnt, verfügt jeder neue Kanal über eine Privacy Gruppe mit dem Namen "Freunde".

Dass dem so ist, erkennt man aber nur daran, dass eine Privacy Gruppe in den Berechtigungs-Einstellungen (/ ) zu Inhalten auftaucht: "Privacy Gruppen  Freunde".

Installiert man die App "Privacy Gruppen", so wird damit letztlich nur die App zur Verwaltung von Privacy Gruppen installiert und zugänglich gemacht. Ohne die App hat man keine Möglichkeit, die eine Gruppe "Freunde" zu betrachten oder Mitglieder hinzuzufügen (ist unerheblich, weil jede neue Verbindung von Anfang an ohnehin automatisch der Gruppe "Freunde" zugewiesen wird) bzw. zu entfernen.

Ruft man die App nach der Installation auf, erscheint die Eingabemaske für das Erstellen einer neuen Privacy Gruppe.

In der Seitenleiste werden die existierenden Privacy Gruppen aufgelistet. Bei einem ganz neuen Kanal ist das, wie gesagt, die Gruppe "Freunde". Wählt man eine Gruppe aus, so werden die Parameter der Gruppe angezeigt und darunter die Verbindungen in zwei Spalten. In der linken Spalte alle Verbindungen, die nicht in der Gruppe enthalten sind. In der rechten Spalte alle Verbindungen, die Mitglied der Gruppe sind.

Bei einem Kanal der Rolle "Öffentlich" ist lediglich die Option "Neue Kontakte standardmäßig zu dieser Gruppe hinzufügen" bei der Standard-Gruppe "Freunde" aktiviert. Bei einem Kanal der Rolle "Persönlich" zusätzlich die Option "Standardmäßig in diese Gruppe posten". Das ist dafür verantwortlich, dass man bei einem persönlichen Kanal grundsätzlich nicht-öffentlich postet, sondern nur an alle seine Verbindungen. Möchte man mit einem persönlichen Kanal etwas öffentlich posten, muss man dies mit den Berechtigungs-Einstellungen ändern.

Um eine Verbindung, die noch nicht in der Gruppe enthalten ist, dieser hinzuzufügen, muss man lediglich auf die Verbindung in der linken Spalte klicken.

Anschließend ist die Verbindung aus der linken Spalte verschwunden

und in der rechten vorhanden

Um eine Verbindung aus einer Gruppe zu entfernen, verfährt man analog. Man klickt auf die zu entfernende Verbindung in der rechten Spalte, worauf diese dort verschwindet und wieder in der linken Spalte erscheint.

Privacy Gruppen als Bestandteil des Berechtigungssystems / Berechtigungs-Einstellungen

Privacy Gruppen sind Bestandteil der dritten Ebene des Berechtigungssystems, der Berechtigungs-Einstellungen. Die Berechtigungs-Einstellungen, die man bei den Editoren für Inhalte findet, ermöglichen das Teilen des Inhalts an bestimmte Kontakte, aber auch an bestimmte Privacy Gruppen.

Wählt man in den Berechtigungs-Einstellungen direkt eine Gruppe als Ziel, wird der Inhalt nur mit den Mitgliedern der Gruppe geteilt. Ein Posting wird zu einer Direktnachricht, an welcher sämtliche Mitglieder der Privacy Gruppe beteiligt sind. Die Konversation ist damit nicht-öffentlich und ein solches Posting kann auch nicht weitergesagt oder geteilt werden. Dateien sind nur durch die Verbindungen in der Privacy Gruppe verfügbar.

Möchte man an mehr als nur die Mitglieder einer einzelnen Privacy Gruppe teilen, benötigt man aber eine Mehrfach-Auswahl. Diese findet man unter "Benutzerdefinierte Auswahl". Hier tauchen alle Verbindungen auf und man kann für jede einzelne Verbindung festlegen, dass der Inhalt mit ihr geteilt wird.

Oberhalb der einzelnen Verbindungen werden außerdem auch die vorhandenen Privacy Gruppen aufgeführt. Damit kann man dann die Berechtigung für den Inhalt auf eine oder Mehrere Gruppen festlegen.

Mit den Berechtigungs-Einstellungen ist es also möglich, Inhalte mit bestimmten Verbindungen zu teilen und man kann die Privacy Gruppen für eine sinnvolle Gruppierung von berechtigten Verbindungen nutzen.

Privacy Gruppen als Helfer für die Kontaktrollen

Eine weitere Funktion von Privacy Gruppen ist die Hilfs-Funktion für die Kontaktrollen.

Hat man eine Kontaktrolle erzeugt, so kann man diese natürlich allen gewünschten Verbindungen einzeln zuweisen. Manchmal möchte man aber eine bestimmte Kontaktrolle für eine größere Anzahl von Kontakten am liebsten auf einen Rutsch zuweisen. Dafür erstellt man einfach eine entsprechende Privacy Gruppe, welche genau diese Verbindungen enthält. Nun kann man in der App "Contact Roles" die Kontaktrolle öffnen und im Auswahlfeld "Weisen Sie diese Rolle folgender Privacy Gruppe zu" einer ganzen Gruppe die Kontaktrolle zuweisen.

Beachte: Jeder Verbindung kann nur eine einzige Kontaktrolle zugewiesen werden. Weist man einer Verbindung über eine Privacy Gruppe eine Kontaktrolle zu, so wird diese zur aktuellen Kontaktrolle für die Verbindung. Dies gilt außerdem nicht rückwirkend. Die Kontaktrolle wird nur den Verbindungen zugewiesen, die zu diesem Zeitpunkt Mitglied der Privacy Gruppe waren. Fügt man später weitere Verbindungen zu der Gruppe hinzu, erhalten diese nicht automatisch die gerade zugewiesene Kontaktrolle, sondern diejenige, welche als Standard für neue Verbindungen eingestellt ist. Man muss also ggf. die Zuweisung, wenn mehrere Verbindungen der Privacy Gruppe zugefügt wurden, erneut durchführen, damit wieder alle auf dem selben Stand sind.

Privacy Gruppen als Filter für den Stream

Diese Funktion der Privacy Gruppen gehört streng genommen nicht zum Berechtigungssystem, weil damit lediglich die Stream-Ansicht gefiltert wird.

In der Stream-Ansicht findet man in der Seitenleiste die Karte "Stream filtern". Dort befindet sich auch ein Eintrag "Privacy Gruppen". Wählt man dort nun eine Privacy Gruppe aus, so werden ausschließlich die Inhalte der Verbindungen, welche in dieser Privacy Gruppe enthalten sind, im Stream angezeigt.

Berechtigungs-Einstellungen - die dritte Schicht des Berechtigungssystems

Die Berechtigungs-Einstellungen (/ ), welche man in den verschiedenen Inhalts-Editoren findet (meistens unmittelbar neben dem Button "Absenden" / "Bearbeiten" oder neben Datei- und Verzeichnisnamen in der Cloud), ermöglichen die Steuerung der Berechtigung für den Zugriff auf den jeweiligen Inhalt.

Wie bereits erläutert, lassen sich Zugriffs-Berechtigungen auf Inhalte mit den Berechtigungs-Einstellungen steuern. Zugriffsparameter:

  • Nur ich
  • Öffentlich (entsprechend der Kanalrolle)
  • Privacy Gruppe
  • Forum
  • Benutzerdefiniert

Der Zugriff kann – entsprechend der Kanalrolle – öffentlich erlaubt werden, auf einen selbst beschränkt sein oder auf eine Privacy Gruppe oder ein Community Forum beschränkt bleiben.

Die Auswahl "Benutzerdefiniert" erlaubt eine genau abgestimmte Zuteilung von Berechtigungen. Es stehen hier alle Privacy Gruppen und alle Verbindungen zur Auswahl. Im Modus "Benutzerdefiniert" ist allerdings auch eine Mehrfachauswahl möglich. So können mehrere Privacy Gruppen und mehrere Einzelverbindungen die Genehmigung erhalten, den Inhalt zu sehen und ggf. damit zu interagieren.

Zu jedem Eintrag gibt es zwei Buttons: "Erlauben" und "Verweigern". Mit dem selektieren des Buttons "Erlauben" wird der Verbindung bzw. sämtlichen Mitgliedern der Privacy Gruppe die Berechtigung erteilt. Mit dem selektieren des Buttons "Verweigern" wird der Verbindung bzw. sämtlichen Mitgliedern der Privacy Gruppe die Berechtigung entzogen. Letzteres kann dazu dienen, bestimmte Verbindungen von einem Zugriff auszuschließen, die normalerweise Zugriff auf den Inhalt hätten.

Helfer: Privacy-Einstellungen

Grundsätzliche Einstellungen zur Privatsphäre werden unter Einstellungen → Privacy-Einstellungen vorgenommen.

Es sind folgende Einstellungen möglich:

  • Indizierung durch Suchmaschinen deaktivieren
  • Neue Kontakte automatisch genehmigen
  • Accept all messages which mention you (This setting bypasses normal permissions) Alle Nachrichten akzeptieren, in denen Sie erwähnt werden (Diese Einstellung umgeht die normalen Berechtigungen.)
  • Accept unsolicited comments for moderation (Otherwise they will be silently dropped) Unaufgeforderte Kommentare zur Moderation akzeptieren (Andernfalls werden sie stillschweigend verworfen.)
  • Enable OCAP access (Grant limited posts the right to access linked private media) OCAP-Zugriff aktivieren (Gewährt bestimmten Beiträgen das Recht auf Zugriff auf verlinkte private Medien)

"Accept unsolicited comments for moderation" erlaubt es Nutzern, die eigentlich nicht kommentieren dürfen, einen Kommentar zu einem Beitrag abzugeben. Der Kommentar wird dem Kanalinhaber dann vorgelegt und dieser kann moderierend entscheiden, ob der Kommentar zugelassen oder er verworfen wird. Diese Option ist mit Vorsicht einzusetzen. Sie kann zu höherem Spam-Aufkommen führen. Dabei erscheinen die Kommentare zwar nicht in der Konversation, der Administrator muss aber unter Umständen sehr viele Kommentare moderieren.

Die Option “Enable OCAP access” ermöglicht den Zugriff zu verlinkten privaten Medien. OCAP steht für Object-capability model. Diese Option ist sinnvoll, insbesondere wenn man Postings in seinem Stream findet, bei welchen eingebettete Bilder nicht angezeigt werden, weil sie vom Eigentümer mit eingeschränkten Zugriffsberechtigungen veröffentlicht wurden. Dies ist insbesondere für reine ActivityPub-Dienste von Belang, weil diese keine Entsprechung zum Hubzilla-Berechtigungssystem kennen (OWA/Token).

Kommentar-Steuerung

Hat man den Beitrags-Editor entsprechend konfiguriert, kann man für einzelne Beiträge das Kommentieren verbieten oder erlauben.

Die Editor-Einstellungen erreicht man unter settings/features → Editor, oder indem man im Beitrags-Editor auf das kleine Zahnrad () oben rechts im Nachrichtenfeld klickt.

In diesen Einstellungen findet man die Option "Kommentare deaktivieren (Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten)". Schaltet man diese Option ein, gibt es in der Toolbar des Beitrags-Editors das Symbol "". Die Sprechblase mit den drei Punkten signalisiert, dass Kommentare – der Kanalrolle und der Kontaktrolle folgend – grundsätzlich erlaubt sind. Klickt man auf das Symbol, verschwinden die drei Punkte (). Nun sind Kommentare für diesen Beitrag komplett deaktiviert.

Nicht wirklich Berechtigungssystem, aber trotzdem Privatsphäre-Features

Neben den hier aufgeführten Komponenten des Berechtigungssystems von Hubzilla gibt es noch einige weitere Funktionen, welche die Privatsphäre schützen bzw. unerwünschte Inhalte verbergen.

Inhaltsfilter auf Kanalebene

Inhaltsfilter auf Kanalebene ermöglichen es, bestimmte Inhalte aus dem eigenen Stream auszufiltern bzw. nur bestimmte Inhalte überhaupt in den Stream aufzunehmen. Konfiguriert werden diese unter Einstellungen → Kanal-Einstellungen in den Filterfeldern "Beiträge mit diesem Text nicht importieren" bzw. "Nur Beiträge mit diesem Text importieren".

Inhaltsfilter auf Kontaktebene

Inhaltsfilter auf Kontaktebene erlauben es, bestimmte Inhalte, die eine bestimmte Verbindung veröffentlicht, auszufiltern bzw. nur bestimmte Inhalte, die eine bestimmte Verbindung veröffentlicht, in den eigenen Stream aufzunehmen. Sie werden im Verbindungseditor im Reiter "Filter für den Inhalt" konfiguriert.

Weitergehende Informationen zu den Inhaltsfiltern findet Ihr in den Dokumenten und der Aufzeichnung des ersten Hubzilla-Workshops vom 17. September 2025, bei dem es um genau dieses Thema ging.

NSFW

Die App "NSFW" ist ebenfalls eine Filter-Variante für den eigenen Stream. Mit NSFW kann man bestimmte Inhalte im eigenen Stream ausblenden, also hinter einer Schaltfläche verstecken, so dass der eigentliche Inhalt erst nach Klick auf diesen Button erscheint. In der App kann man eine Reihe von Wörtern (auch reguläre Ausdrücke sind möglich und das Filtern nach Sprache des Beitrags) angeben. Tauchen diese nun in einem Beitrag auf, wird der Inhalt des Beitrags zunächst verborgen und kann durch Klick auf die entsprechende Schaltfläche angezeigt werden.

Superblock

Mit der App "Superblock" ist es möglich, auch fremde Nutzer (also Fediverse-Nutzer, zu denen man selbst keine Verbindung hat) im Stream zu blocken. Während der normale Block nur bei Verbindungen funktioniert, kann man mit Superblock auch Nutzer aus dem eigenen Stream aussperren, mit denen man nicht verbunden ist. Postings solcher Nutzer können im Stream erscheinen, wenn diese z.B. einen Kommentar zu einem Posting einer Verbindung abgegeben haben oder wenn ihre Beiträge durch eine eigene Verbindung wiederholt werden.

Im Avatarbild des Kanals gibt es ein kleines weißes Dreieck. Klickt man darauf und hat man die App Superblock installiert, gibt es im sich daraufhin öffnenden Menü den Eintrag "Vollständig blockieren", mit welchem man den Nutzer auf die Superblock-Liste bringt. Beiträge dieses Kanals erscheinen nun überhaupt nicht mehr im Stream.

Ruft man die App selbst auf, wird die gesamte Superblock-Liste angezeigt. Hier kann man auch bei Bedarf einzelne Kanäle wieder aus der Liste entfernen und den Block damit aufheben.

Profil / Profile

Obwohl nicht sofort offensichtlich, sind auch die Profile Teil des Berechtigungssystems. Das Profil eines Kanals ist sozusagen die Visitenkarte der Identität. Im Profil kann man Informationen zum Kanal (womöglich auch zur Person, die hinter dem Kanal steht) preisgeben. Wer auf Interaktion hofft und Verbindungen wünscht, sollte hier zumindest die Grundlegenden Informationen anbieten. Dieses Thema wurde bereits im zweiten Hubzilla Workshop besprochen (ab Minute 11:19).

Mit der Berechtigung “Kann mein Standardprofil sehen” legen wir fest, wer dieses Profil einsehen kann und damit die Informationen erhält. Dafür können wir aus den Berechtigungen auswählen, die zur Verfügung stehen. Mit “Jeder im Internet” machen wir unsere Profilinformationen vollkommen öffentlich. Dies ist die Voreinstellung bei allen Kanalrollen. Um dies einzuschränken, müssen wir die Kanalrolle “Benutzerdefiniert” verwenden. Mit den Einschränkungen können wir den Kreis derer, die unser Profil sehen können, begrenzen. Hubzilla erlaubt es aber, mehrere Profile für einen Kanal zu erstellen. So kann man, wenn Bedarf besteht, weitere Profile, also quasi weitere “Visitenkarten”, erstellen, die andere oder mehr Informationen bieten, und diese dann bestimmten Verbindungen anzeigen.

Um weitere Profile anzulegen und ihre Sichtbarkeit festzulegen, wählt man im Hauptmenü “Profile bearbeiten”. Dort werden dann alle vorhandenen Profile angezeigt (bei neuen Kanälen lediglich das Standardprofil).

Nun kann man über den Button “+ Neu anlegen” ein neues Profil erzeugen, das man dann mit den gewünschten Informationen befüllt.

Jetzt muss man nur noch festlegen, welche Verbindungen dieses spezielle Profil präsentiert bekommen. Dies erfolgt, indem man oben rechts aus dem Menü “Profilwerkzeuge” den Menüpunkt “Sichtbarkeit bearbeiten” auswählt.

Es wird nun eine Ansicht mit zwei untereinander liegenden Blöcken von Verbindungen geöffnet, wobei der obere Block diejenigen Verbindungen enthält, welchen das neue Profil gezeigt werden soll, und der untere alle Kontakte, die lediglich (bei entsprechender Berechtigung) das Standardprofil.

Hier kann man nun mit einem einfachen Klick auf das Profilbild der Verbindung diese zwischen beiden Blöcken hin und her schieben.

Ruft nun jemand das Profil auf, der nicht zu der speziellen Gruppe gehört, oder der (bei öffentlicher Berechtigung) gar nicht authentifiziert ist, wird diesem das Standardprofil angezeigt.

Den zugewiesenen Verbindungen hingegen wird nun das neue Profil angezeigt (sie haben die Berechtigung dafür - also ist das auch Teil des Berechtigungssystems).

Was alles möglich ist

Was kann man mit diesem Berechtigungssystem nun aber eigentlich anfangen?

Die Antwort ist: ALLES!

08/15

Wenn man sich keinen Kopf über Berechtigungen machen möchte und Hubzilla einfach nur als Zugang für das Soziale Netzwerk des Fediverse verwenden möchte, kann man dies out of the box tun, indem man die Kanalrolle "Öffentlich" bei Kanalerstellung auswählt. Man muss nicht unbedingt noch an irgendetwas rühren.

Möchte man sofort oder später einige Dinge weitergehend regeln, wie z.B. die Anzeige von Medien Fremder, schaltet man OCAP Access ein und um Kommentare für bestimmte Beiträge zu sperren, muss man auch noch die entsprechende Editor-Option aktivieren. Wenn man unabhängig vom Verbindungsstatus blocken möchte, muss noch Superblock hinzukommen und zur Eigenschutz bietet sich auch noch NSFW an.

Wenn man es einfacher haben möchte, Konversationen auch an geschlossene Nutzerkreise zu steuern, installiert man Privacy Gruppen.

Mehr muss aber nicht.

4711

Wer Social Media möchte, aber etwas mehr Wert auf Privatsphäre legt, der wählt als Kanalrolle "Persönlich". Damit sind zwar einige Funktionen im Vergleich zu "Öffentlich" nicht mehr vorhanden, es sind aber solche, die man ja eben auch vielleicht einschränken möchte. Vor allem aber muss man sich im Klaren sein, dass man fortan nun nicht mehr öffentlich teilt, sondern nur an seine Verbindungen (es sei denn, man ändert dies für einzelne Inhalte explizit über die Berechtigung-Einstellungen).

Spätestens ab dieser Kanalrolle empfiehlt es sich, sowohl die Kontaktrollen-App und die Privacy-Gruppen-App zu installieren, um seine Kontakte ggf. nach unterschiedlichen Berechtigungen zu kategorisieren. Muss aber auch nicht.

foobar

Möchte man eine Gruppen-Konversation, angelehnt an ein Internet-Forum anbieten, wählt man die Kanalrolle "Community Forum". Hier gibt es die selben Berechtigungen und Einschränkungen wie bei der Kanalrolle "Persönlich". Das Wall-to-Wall Posting ist Verbindungen erlaubt, denn diese Art des Postens ermöglicht erst die forenartige Kommunikation. Die Alternative, das Posten im DN-Stil ("@!"), bewirkt bei einem Community Forum das selbe, wie das Wall-to-Wall Posten. Teilen oder Wiederholen von Postings ist hingegen nicht erlaubt, weil die Kommunikation in einem solchen Forum den Verbindungen vorbehalten ist.

Ans Eingemachte

Die Kanalrolle "Benutzerdefiniert" ist das Schweizer Taschenmesser unter den Rollen. Man kann damit die vordefinierten Kanalrollen 1:1 nachbilden, man kann die Standardrollen quasi als Vorlage nutzen und einzelne Berechtigungen schon auf Kanalebene anders regeln oder man baut sich von Grund auf eine eigene Berechtigungs-Hierarchie für seinen Kanal.

So kann man z.B. eine wirklich geschlossene Community erzeugen oder ein echtes nicht-öffentliches Forum. Grundlage jeder Konfiguration sollte sein, sich eine Liste zu erstellen, was mit dem Kanal alles möglich sein soll und wie andere mit unserem Kanal interagieren können sollen. Anhand dieser Vorgaben konfiguriert man nun die einzelnen Berechtigungen der Kanalrolle. "Jeder im Internet" ist dabei das offene Scheunentor. "Nur die, denen Du es explizit erlaubst" ist das abgeschlossene Scheunentor zu welchem man ausgewählten Kontakten mit der Kontaktrolle den Schlüssel zur Verfügung stellt. Die Verwaltung der Schlüssel zum Tor kann man zusätzlich sehr gut mit Privacy Gruppen erledigen.

Es ist übrigens auch nicht verkehrt, ein Community Forum auf diese Art und Weise zu erstellen, wenn man ein eher geschlossenes Forum erzeugen möchte.

Auch völlig nicht-öffentliche Foren sind so möglich und erlaube eine wirklich private Zusammenarbeit.

So arbeiten z.B. wir als Hubzilla-Workshop-Team mit einem solchen Forum. Und weil wir vertrauensvoll in unserem kleinen Team arbeiten, hat jedes Mitglied auch sehr weitreichende Berechtigungen.

Vorneweg: Unser Arbeitsforum existiert ausschließlich im Grid. Logisch, denn als Hubzilla-Workshop-Team verfügen wir alle ja über mindestens einen Hubzilla-Kanal. Die Beschränkung stellt sicher, dass jeder auch wirklich das im Foren-Kanal tun kann, was mit Hubzilla möglich ist.

Jetzt einmal kurz zur Konfiguration unseres Arbeitsforums:

Die Kanalrolle ist natürlich "Benutzerdefiniert". In den Privacy-Einstellungen haben wir die Indizierung durch Suchmaschinen" präventiv noch abgeschaltet, obwohl eine solche Indizierung schon aufgrund der Konfiguration der Rolle unmöglich wäre. OCAP-Access ist ebenfalls aktiviert, falls eines der Mitglieder einmal ein Bild aus der eigenen Cloud einbindet, welches ggf. nicht völlig öffentlich ist.

In den Profileinstellungen wurde die Option "Schlage mich neuen Mitgliedern als möglichen Kontakt vor" deaktiviert. In den Profil-Einstellungen wurde außerdem die Option "Mein Standardprofil im Netzwerkverzeichnis und in Followerlisten veröffentlichen" ebenfalls deaktiviert (damit taucht das Forum nicht mehr in Verzeichnissen auf). Danach wurde in den benutzerdefinierten Berechtigungen (Einstellungen ➔ Privacy-Einstellungen  Benutzerdefinierte Konfiguration der Channel Role) jede Berechtigung auf "Nur die, denen Du es explizit erlaubst" gesetzt.

Um nun den Mitgliedern des Forums (Verbindungen werden nicht automatisch angenommen) die passenden Rechte einzuräumen wurde eine Kontaktrolle angelegt, welche alle Berechtigungen bis auf "Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln" erteilt (geerbte Berechtigungen gibt es bei dieser Kanalrollen-Konfiguration ja ohnehin nicht). Wir arbeiten als Team vertrauensvoll und gleichberechtigt im Forum und dürfen damit alles im Forenkanal tun und diesen auch administrieren.

Diese Kontaktrolle haben wir dann allen Forenmitgliedern zugewiesen und hatten damit ein nicht-öffentliches Forum, welches nicht in irgendwelchen Verzeichnissen auftaucht und dessen Inhalte niemand außer uns selbst sehen oder damit interagieren kann.

Wer ein nicht-öffentliches Forum erstellen möchte, aber seinen Mitgliedern bestimmte Rechte nicht einräumen will, lässt diese in der Kanalrolle halt weg.

Auch wenn die Kanalrolle "Benutzerdefiniert" zunächst sehr speziell und kompliziert erscheint, ist sie aber eigentlich diejenige, welche das Besondere an Hubzilla ist und ich würde sie früher oder später jedem empfehlen, der von Hubzilla mehr erwartet, als nur ein 08/15-Fediverse-Dienst zu sein.

Ein Blog mit Hubzilla

Du willst bloggen? Du möchtest Dein eigenes Blog? Du möchtest aber auch, dass Dein Blog ins Fediverse integriert ist? Du möchtest aber (aus welchen Gründen auch immer) weder WordPress (mit den AP-Plugins) noch Ghost verwenden?

Nun… häufig ist die Empfehlung: “Nimm Plume oder WriteFreely.”

Und das ist jetzt erstmal auch nicht falsch. Allerdings handelt es sich da um wirklich puristisches Blogging ohne echte Unterstützung für die Artikel-Gestaltung. Wer nur Texte verfassen und veröffentlichen mag, puren Lesestoff… für den mag es taugen. WriteFreely bietet Formatierung mittels Markdown und HTML… aber der Editor bietet dafür keinerlei Unterstützung an. Und sobald man Bilder einbinden möchte, ist man auf einen externen Dienst angewiesen, bei welchem man die Bilder hostet… und die man dann “zu Fuß” z.B. per Markdown-Tags einbindet.

Auch bei Plume bietet der Editor keine Unterstützung für die Formatierung an (Plume verwendet ebenfalls Markdown). Zumindest gibt es eine Galerie, in welche man Bilder hochladen und sich den Markdown-Code für das Einfügen des Bildes in den Text anzeigen lassen (und kopieren) kann.

Wie gesagt, für reines Text-Blogging ohne Komfort mag das ausreichend sein. Möchte man aber mehr Komfort, mehr Möglichkeiten und ein Blog, das so aussieht, wie ein klassisches Blog, dann taugen die beiden Dienste nicht wirklich.

Deshalb empfehle ich Hubzilla!

Denn Hubzilla ist ein Social Networking CMS… ein Content Management System, wie es WordPress z.B. auch ist. Und es bietet von Hause aus schon die passenden Formate, die man für das Blogging benötigt. An erster Stelle: Artikel.

Die Gestaltung von Artikeln geschieht mit Markdown, bbCode oder HTML… gerne auch bunt gemischt…

blg01

blg02

Der Artikel-Editor bietet auch Unterstützung bei der Formatierung (in diesem Fall bbCode):

blg03

Wichtig und elementar ist auch das Verwenden von Kategorien. Damit ist es einfach, das Blog thematisch zu strukturieren und dem Leser die Möglichkeit zu geben, Artikel nach Themengebiet auszuwählen.

Außerdem verfügt ein Hubzilla-Kanal auch über einen Cloud-Speicher (inklusive Bilder-Galerie), den man zum bequemen Hochladen und einfügen von Bildern nutzen kann. Und das Kommentieren von Artikel ist natürlich auch möglich.

Zu einem “ausgewachsenen” und komfortablen Blog gehören aber auch noch weitere Dinge. In der Regel (zumindest wenn das Blog in Deutschland order für den deutschsprachigen Raum angeboten wird) gehört ein Impressum dazu, einige notwendige rechtliche Informationen und eine Datenschutzerklärung. Oder Seiten mit z.B. einer Selbstbeschreibung des Blogs, Seiten zu anderen Themen, Seiten, auf denen die Kontaktmöglichkeiten etc. aufgeführt werden. Also nicht nur Artikel, sondern auch Seiten werden benötigt.

Und Hubzilla bietet auch das. Über das Erstellen von Webseiten habe ich ja bereits einen Artikel geschrieben.

Und genau diese Funktionalität ermöglicht es auch, ein Navigations-Menü für das eigene Blog zu erstellen. Geschieht das als Block, so kann man dieses Menü auch auf alle Seiten des Blogs mittels des PDL-Editors einbauen, so dass es nicht nur auf den selbst erstellten Seiten erscheint, sondern auch z.B. bei der Profilansicht, Beim Kanal-Stream oder bei der Artikel-Ansicht.

Mein eher einfaches und kleines (ehemals WordPress-, später dann statisches mit Publii-) Blog “PepeCyBs Welt” habe ich kürzlich auf diese Art und Weise zu Hubzilla migriert. Und nun habe ich begonnen, mein größtes und ältestes Blog, die “Dampfdruck-Presse” zumindes vorerst parallel in Hubzilla zu verwirklichen. Künftig erscheinen alle Artikel sowohl im WordPress-Blog, als auch im Hubzilla-Blog. Dass ich es nicht sofort komplett umstelle, hat auch einen Grund… es ist schlicht über zehn Jahre alt und es haben sich (neben weiteren Serien) über 1.000 Artikel angesammelt. Die erstellt man nicht im Handumdrehen mal nebenbei bei Hubzilla. Ich werde beginnen, sukzessive die alten Artikel auch im Hubzilla-Blog einzugeben… aber das wird eine Aufgabe von Monaten.

Anhand Der Dampfdruck-Presse erläutere ich hier jetzt, wie man ein aufwendigeres Blog mit Hubzilla verwirklicht.

Zunächst einmal… Derzeit sieht die Dampfdruck-Presse (DDP) so aus:

DDP_hu_orig

Oder live… so: Die Dampfdruck-Presse

Na ja. Ich bin im Augenblick nicht ganz glücklich mehr damit. Sie ist schon etwas überladen (das ist über die Jahre so gewachsen). Und außerdem macht mir das Theme (ein Gutenberg-Block-Theme) ein wenig Ärger (einiges funktioniert da seit irgendeinem Theme-Update nicht mehr richtig… so habe ich im Nackend keinen Zugriff mehr auf die rechte Seitenleiste). Obendrein nervt mich WP seit geraumer Zeit mit dem berühmt-berüchtigten Die-Aktualisierung-ist-fehlgeschlagen-Die-Antwort-ist-keine-gültige-JSON-Antwort-Fehler.

Es funktioniert zwar alles… auch das Abspeichern von erstellten oder bearbeiteten Inhalten, aber so eine Meldung geht mir gegen den Strich. Vermutlich liegt es an einem Plugin… oder dem Theme… oder dem Theme in Verbindung mit einem Plugin… oder… was weiß ich?

Jedenfalls plane ich ohnehin, die DDP unter WP “abzuspecken”, ein anderes, schlichteres Theme zu verwenden und im Zuge der Verschlankung etliche Plugins rauszuwerfen.

Nun… das was ich ohnehin über Bord werfen möchte, brauche ich dann nicht erst umständlich im Hubzilla-Blog krampfhaft zu verwirklichen versuchen.

Zuerst ein Konzept erstellen

Es ist sinnvoll sich vor dem Start der Umsetzung, ein Konzept zu skizzieren. Dort sollte man all das vermerken, was man sich von seinem Blog an Funktionen, Seite, Inhalten und der Darstellung und Zugänglichkeit vorstellt. Hier mein Konzept für die DDP (das ich bei Gelegenheit beim Hausputz im WordPess auch so umsetzen werde).

  • Klar… man braucht einen Blog-Bereich. Also eine Seite, auf welcher die Artikel aufgelistet werden und wo man sie lesen kann. Eine Filterung nach Kategorien ist in der Regel auch erwünscht. Vielleicht noch eine Tag-Cloud?

    Für diese Funktionalität brauchen wir an Hubzilla nicht großartig herumzubiegen… das bietet es bereits mit der Artikel-App (bis auf die Tag-Cloud… dazu später mehr).

  • Einige statische Seiten. Wie bereits erwähnt eine Seite mit Impressum und Haftungsausschlüssen, sowie Copyright-Hinweisen. Dann eine mit der Datenschutzerklärung. Eine “About-Seite”, also eine Seite auf welcher ein wenig über das Blog erzählt wird. Und schließlich eine Seite mit Kontaktinformationen. Zusätzlich möchte ich noch eine Seite anbieten, die nützliche, oder in meinen Augen interessante Links, auflistet… in der Art, wie es im Original in der rechten Seitenleiste zu sehen ist. Aber halt als separate Seite, um die Hauptansicht nicht zu überfrachten.

  • Ein Haupt-Navigations-Menü und einen Menü-Block für die “Formalitäten”(Impressum, Datenschutz, Kontakt).

  • Da die DDP auch einige Tutorials und Informationsseiten beinhaltet, die aber keine Artikel im eigentlichen Sinne sind, müssen diese auch als Seiten angeboten werden… und zusätzlich eine über das Hauptmenü erreichbare Übersichtsseite, von welcher aus man sie erreichen kann.

  • Schließlich gibt es bei der DDP einen Download-Bereich mit einigen eBooks und einem Tool. Das muss natürlich auch bleiben.

  • Was über die Original-DDP hinausgeht, sind einige Features, die Hubzilla und seine Fediverse-Funktionalität bieten. Zum Blog dazu - und damit über das Hauptmenü erreichbar - sollen der Kanal-Stream und die Profilseite gehören.

Jetzt hier etwas zu der erwähnten Tag-Cloud. Die soll ja in der Artikelansicht (quasi der Hauptseite des Blogs) erscheinen. Nun ist es leider so, dass Hashtags in Artikeln (die ja nicht föderieren) relativ nutzlos sind. Und aus diesem Grund gibt es auch kein Tag-Cloud-Widget für die Artikel (und auch kein entsprechendes ITEM im MODUL “Artikel”).

Ich persönlich behelfe mir mit dem Kanal-Stream. Wenn ich einen Artikel veröffentliche, dann poste ich dazu einen Beitrag im Stream, der auf den Artikel verlinkt und ein kurzes Zitat des Artikelbeginns beinhaltet. Und dort bringe ich die passenden Hashtags unter. Nichts allgemeines, sondern genau zum Artikel passend. Diese Vorgehensweise hat den Vorteil, dass Kommentare im Stream und nicht an den Artikeln stattfinden und dass eine Filterung nach Hashtags möglich ist. Außerdem landen diese Beiträge im Fediverse… sie werden föderiert und werden auch für alle Verbindungen (auch reine “Follower”) in deren Stream/Timeline gespült.

Durch das Verschlagworten der Beiträge im Stream ist es nun möglich auch eine sinnvolle Tag-Cloud in der Artikel-Ansicht anzubieten. Der PDL-Editor bietet dieses Widged zwar nicht unter ITEMS an, es lässt sich aber über die Quelltextbearbeitung (SOURCE) einfach einfügen: [widget=tagcloud_wall][var=limit]24[/var][/widget]

Und nun frisch ans Werk!

Kanal erstellen

Zuerst natürlich wieder: Einen Kanal anlegen.

Ein frischer, “jungfräulicher” Kanal ist die beste Idee. Außerdem sollte man sich ein vernünftiges Profilbild (“Avatar-Bild”) und ebenfalls ein Titelbild erstellen.

In meinem Beispiel habe ich mir einen Kanal mit dem Titel “Die Dampfdruck-Presse” und dem Kanalnamen dampfdruckpresse auf meinem Hub Whoville erstellt. Das Kanal-Handle lautet also dampfdruckpresse@hub.hubzilla.hu.

Als Profilbild und für das Titelbild habe ich bereits vorhandene Grafiken verwenden. Mein Blog soll ja auch am neuen (derzeit zusätzlichen) Ort wiedererkennbar sein.

Als Kanal-Rolle, für möglichst vielfältige Interaktion, habe ich “Öffentlich” gewählt. Nei den Privacy-Einstallungen habe ich “Neue Kontakte automatisch genehmigen” eingeschaltet, denn ich möchte ja, dass mir jeder “folgen” kann.

Für den Kanal haben ich dann die Apps “ActivityPub”, “Artikel”, “NSFW”, “PDL-Editor”, “Superblock”, “Webseiten” und “Wiki” installiert.

Weil die DDP möglicht “klassisch” daherkommen soll, habe ich bei den Anzeige-Einstellungen und den erweiterten “Benutzerdefinierten Design-Einstellungen” eine generelle Themenfarbe (“Primary theme color”) nach meinem Geschmack gewählt und die Hintergrundfarbe auf ein helles Grau gestellt.

Profil befüllen

Ein wichtiger Punkt ist das Befüllen des Profils.

Ein kurze Beschreibung des Kanals sollte auf jeden Fall eingegeben werden. Ich habe dort “Die Dampfdruck-Presse (DDP) ist ein Blog rund um das Thema E-Dampfen.” eingegeben.

Unter “Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden” sollte man dann Schlüsselwörter eingeben, die zum Thema des Blogs passen. So kann es leichter gefunden werden.

Menüs erstellen

Um die Übersicht zu behalten und an möglichst alles zu denken, was ich realisieren möchte, habe ich deshalb zunächst die beiden angedachten Menüs erstellt.

Einmal das Navigationsmenü, das in horizontaler Ausrichtung auf allen Seiten am oberen Rand des Inhaltsbereichs erscheinen soll. Und dann ein vertikal ausgerichtetes einfaches Menü für die Links zu dne “formellen” Seiten, welches natürlich auch auf allen relevanten Seiten erreichbar sein soll… allerdings in der Seitenleiste.

Beide Menüs habe ich nicht mit dem Webseiten-Gestaltungswerkzeug “Menüs” gemacht, sondern als Blöcke erstellt:

navmenu

sidemenu

Inhaltstyp für beide Blöcke ist HTML, weil HTML-Links verhindern, dass ggf. Verweise in neuen Tabs oder Fenstern geöffnet werden.

“Home” soll auf die App “Artikel” und damit auf die Artikel-Ansicht verweisen und quasi die Startseite des Blogs darstellen. “Kanal” verweist auf die Kanalseite und “Profil” auf die Profilansicht des Kanals.

menubar:

<a href="https://hub.hubzilla.hu/articles/dampfdruckpresse">Home</a> ★ <a href="https://hub.hubzilla.hu/channel/dampfdruckpresse">Kanal</a> ★ Do it yourself ★ Wissenswertes ★ Über die DDP ★ Links ★ <a href="https://hub.hubzilla.hu/profile/dampfdruckpresse">Profil</a>

plinks:

<p>★ <a href="https://hub.hubzilla.hu/page/dampfdruckpresse/impressum">Impressum</a></p>
<p>★ <a href="https://hub.hubzilla.hu/page/dampfdruckpresse/datenschutz">Datenschutz</a></p>
<p>★ <a href="https://hub.hubzilla.hu/page/dampfdruckpresse/kontakt">Kontakt</a></p>

Menüs in die Hubzilla-Seiten einbauen (PDL-Editor)

Damit Besucher des Blogs auf den hubzilla-eigenen Seiten “Artikel”, “Kanal” und “Profil” auch die Möglichkeit haben, zu den anderen Seiten (die noch erstellt werden) zu gelangen, müssen die beiden Menüblöcke auf diesen Seiten eingebaut werden. Dafür verwendet man den PDL-Editor.

Ich habe nacheinander die MODULE für die drei Seiten aufgerufen und das ITEM “menubar” (für das horizontale Navigations-Menü) an die oberste Stelle des Inhaltsbereichs geschoben und das ITEM “plinks” (für das vertikale Menü) in die rechte Seitenleiste.

Wie erwähnt, soll auf der Seite “Artikel” auch noch die Schlagwortwolke der Beiträge der Kanalseite erscheinen. im MODUL “articles” steht das Widget aber ja leider nicht zur Verfügung (weil es keine Schlagwortwolke für Artikel gibt). Hier muss man den Umweg über die Quelltext-Bearbeitung des Layouts der Artikel-Ansicht gegangen werden. Man klickt im Menü des PDL-Editors auf SOURCE und fügt dort das Widget mit den o.g. Tags und Parametern ein.

[widget=tagcloud_wall][var=limit]24[/var][/widget]

🖣

[region=aside]
[widget=profile][/widget]
[widget=articles_categories][/widget]
[block]plinks[/block]
[widget=tagcloud_wall][var=limit]24[/var][/widget]
[block]statement[/block]

[/region]
[region=content]
[block]menubar[/block]
$content

[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]

[/region]

Immer dran denken, die Änderungen mit einen Klick auf “APPLY” zu spreichern.

Wenn man nun die drei internen Seiten anklickt, sieht man beide Menüs an den gewünschten Orten.

Basis-Layout für die selbst erstellten Seiten

Damit alle selbst erstellten Seiten des Blogs einen ähnlichen Aufbau haben, erstellt man sich nun ein Standard-Layout für das Blog.

Hier empfiehlt es sich, die Profilkarte, die Verbindungen und auf jeden Fall das Menü für die Seitenleiste in genau dieser unterzubringen. In den Inhaltsbereich gehört das Navigationsmenü an erste Stelle und danach folgt die Variable $content, damit der Inhalt der Seiten darunter dargestellt wird.

Bei mir sieht das Layout mit dem Namen “ddpbaselayout” nun so aus:

[region=banner]
[widget=cover_photo][/widget]
[/region]
[region=aside]
[widget=fullprofile][/widget]
[widget=common_friends][/widget]
[block]plinks[/block]
[block]statement[/block]

[/region]
[region=content]
[block]menubar[/block]
$content

[/region]
[region=right_aside]

[/region]

Dieses Layout nutzt man dann konsequent für alle Seiten (es sei denn, man benötigt für ganz bestimmte Seiten ein abweichendes Layout).

Ja und nun… nun erstellt man halt alle Seiten (unter Verwendung des Basis-Layouts).

Sonstige Seiten

Ich habe zu den Menü-Einträgen “Do it yourself” und “Wissenswertes” Unterseiten erstellt, in denen dann die Links zu den einzelnen Kapiteln eingetragen sind. Sie fungieren also als Menü-Seiten für tiefere Verzweigungen.

Im Original der DDP habe ich in der echten Seitenleiste ein paar Banner untergebracht. Das wollte ich ja im neuen Blog vermeiden. Die Banner habe ich auf einer eigenen Seite untergebracht, die im Navigations-Menü unter dem Punkt “Links” untergebracht.

wlinks

Außerdem habe ich aus guter alter Tradition eine Block mit einem Statement einer ehemaligen Mitstreiterin erstellt, der nun auch auf allen Seiten in der Seitenleiste prangt.

Hier kann jeder seiner Kreativität freien Lauf lassen.

Und jetzt komme ich auf einen zentralen Punkt des Blogs zu sprechen…

Die Hauptseite des Blogs: Artikel-Ansicht

Zentrales Element eines Blogs sind die Artikel. Diese erstellt man sinnvoller Weise mit der App “Artikel”. Nun muss man sich entscheiden, ob man Kommentare, ggf. ganze Threads direkt unter den Artikel haben möchte. Diese werden bis zu einer gewissen Grenze (darüber hinaus werden weitere Kommentare ausgeblendet, können aber wieder eingeblendet werden) immer direkt unter dem Artikel angezeigt. Das kann die Übersicht, gerade wenn viel und ausgiebig kommentiert wird, ganz schön “versauen”.

Man hat aber die Möglichkeit, Kommentare bei Artikeln jeweils zu sperren (no-comment).

Damit nimmt man seinem Blog aber eine wesentliche (vielleicht ja nicht immer, aber doch häufig gewünschte) Funktionalität.

Aber wir verwenden ja Hubzilla… und können trotz der Sperrung von Kommentaren bei den Artikeln ausnutzen, dass Hubzilla (mit eingeschaltetem ActivityPub) Teil des Fediverse ist.

Die Verfahrensweise mach vielleicht ein wenig zusätzliche Arbeit, bringt aber auch viele Vorteile.

Wenn man in einem Blog einen Artikel verfasst hat, dann möchte man natürlich auch, dass er gelesen wird. Es gibt sicher Leser, die unser Blog ohnehin regelmäßig aufrufen… die sehen dann natürlich, wenn etwas neues veröffentlicht wurde. Und vielleicht bietet ja der Blogger, der eine andere Blog-Software verwendet, einen RSS-Feed an und hofft auf zahlreiche Abonnenten, die damit über neue Artikel informiert werden. Auch Newsletter sind ein Mittel, das verwendet wird, wobei diese Methode immer mehr an Bedeutung verliert. Na und schließlich teilt man womöglich die Links zu seinen neuen Artikeln an den verschiedensten Orten. Für die DDP mache ich das traditionell in den großen Community-Foren (klassische Web-Foren). Und natürlich in den Sozialen Netzwerken. Ich selbst natürlich nicht bei TwiXtter, Facebook, Threads, Bluesky Instagram und wie sie alle heißen mögen, sondern nur im Fediverse.

Wenn ich nun einen Artikel im Hubzilla-Blog veröffentliche, dann erstelle ich im Anschluss auch gleich einen Beitrag, den ich im Stream veröffentliche. Der Beitrag bekommt den Titel des Artikels. Ich selbst weise den Beitrag auch einer Kategorie zu (derzeit “Blog” und “Pfrunzlers Weekly”). Im Inhaltsbereich wird dann als erstes der Link zum Artikel selbst (ich formatiere ihn fett), darunter das Beitragsbild (sofern im Artikel vorhanden), darunter dann der Anfang des Artikels (so um die, oder ungefähr maximal 250 Zeichen) als Kommentar formatiert und schließlich darunter noch einmal der Link zum eigentlichen Artikel hinter dem Label “..:: WEITERLESEN ::..”. Außerdem versehe ich den Beitrag mit wenigen, aber passenden(!) Hashtags. Die tauchen dann auch in der Schlagwörter-Wolke auf.

Das ist, wie gesagt, ein wenig mehr Aufwand, aber der Verweis ist damit im Fediverse geteilt. Und bei den Beiträgen im Stream lässt man natürlich auch das Kommentieren zu. Damit ist die “Diskussions-Kultur” gerettet. 😉

RSS-Feed inklusive

Ein weiterer Vorteil: Mit dem sofortigen Teilen (hier bleiben die Beiträge auch chronologisch in der Reihenfolge) stellt man auch gleich einen RSS-Feed zur Verfügung. Wer den abonnieren möchte, der nutzt die Feed-Adresse nach diesem Schema: <hub>/feed/<kanal>. Damit können sich auch Leser, die keinen Fediverse-Zugang haben, auf dem Laufenden halten.

Startseite

Die Startseite des Blogs ist bei diesem Konzept <hub>/articles/<blogkanal>, also für die DDP: https://hub.hubzilla.hu/articles/dampfdruckpresse.

Ich hatte, was die Dampfdruck-Presse betrifft, noch eine Domain “übrig”. Ursprünglich war die DDP unter der .de-Domain dampfdruck-presse.de zu erreichen. Vor etlichen Jahren, als ich dann, weil ich ja eh in Ungarn lebe, zu einem ungarischen Webhoster wechselte, besorgte ich mir die Domain dampfdruck-presse.hu und ließ das Blog seit dem unter der .hu-Domain laufen. Lange Zeit hatte ich noch eine temporäre Umleitung von der .de-Domain zur .hu-Domain eingerichtet… aber die “.de-Zeiten” sind jetzt schon lange Geschichte.

Also war die .de-Domain “übrig”.

Und jetzt habe ich für diese eine permanente Umleitung auf die Artikelseite des Blogs bei Hubzilla eingerichtet. Damit ist die “neue” (parallel zum Original betriebenen) Dampfdruck-Presse auch komfortabel über https://dampfdruck-presse.de erreichbar. Und so sieht sie aus:

DDP_de_hubz

Als nächstes werde ich das Menü um einen Eintrag zu einer Download-Seite ergänzen. Über die Seite biete ich dann die eBooks an, wobei ich das dann über den Cloud-Zugriff realisiere, in der ich die Dateien in verschiedenen Ordnern vorhalte.

So… ich hoffe, ich konnte hier verständlich darstellen, wie man mit Hubzilla, mit geringem Aufwand, ein Blog auf die Beine Stellen kann. Da ist natürlich auch noch mehr möglich. Hier ging es aber um die Grundlagen und darum, wie ich es persönlich gemacht habe.

Das Hubzilla-Blog verfeinert

Das Hubzilla-Blog verfeinert

So sah die erste Version meines Blogs Dampfdruck-Presse mit Hubzilla aus:

DDP_de_hubz

Inzwischen sie das Blog so aus:

blg-II-02

Da hat sich also so einiges getan und ich möchte hier zeigen, wie man ein Blog mit den CMS-Fähigkeiten von Hubzilla so konfigurieren kann, dass der Unterbau, nämlich Hubzilla, vor den Besuchern insofern verborgen wird, dass sie keinen direkten Zugriff auf die Hubzilla-Oberfläche bekommen.

Der erste Punkt ist die Menüleiste. Diese war zuvor als einfaches horizontales HTML-Menü erstellt worden.

Nun ist es so, dass Hubzilla selbst in seiner Darstellung auf dem HTML-Framework Bootstrap5 basiert. Dieses ist also schon für jeden Kanal vorhanden und sorgt für die Gestaltung der Seiten von Hubzilla. Und so bietet es sich an, Bootstrap5 auch für die Gestaltung des Blogs zu nutzen.

Also habe ich die bisherige Menüleiste durch eine Bootstrap-Navigationsleiste ersetzt:

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <div class="container-fluid">
    <a class="navbar-brand" href="https://hub.hubzilla.hu/hq">
      <img src="https://hub.hubzilla.hu/cloud/dampfdruckpresse/misc/navlogo.png" alt="Avatar Logo"> 
    </a>
  </div>
  <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/articles/dampfdruckpresse">Home</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/channel/dampfdruckpresse">Kanal</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/page/dampfdruckpresse/diys">DIY</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/page/dampfdruckpresse/wissenswert">Wissenswertes</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/page/dampfdruckpresse/aboutddp">Über</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/page/dampfdruckpresse/wlinks">Links</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="https://hub.hubzilla.hu/profile/dampfdruckpresse">Profil</a>
      </li>
    </ul>

</nav>

blg-II-01

Diese Navigationsleiste nun einfach über dem Inhaltsbereich einzubauen sieht aber auch nicht besonders schick aus und es bleibt dann trotzdem die Hubzilla-Navigationsleiste ganz oben vorhanden, über welche Besucher auch System-Apps nutzen können.

Die eigene Navigationsleiste wäre besser untergebracht, wenn sie die hubzilla-eigene ersetzen könnte.

Und das ist auch einfach zu realisieren.

Im Layout für die Webseiten des Blog muss der Block mit der Navigationsleiste in die Region “nav” eingefügt werden:

[region=banner]
[widget=cover_photo][/widget]
[/region]
[region=nav]
[block]menubar[/block]
[/region]
[region=aside]
[widget=fullprofile][/widget]
[widget=common_friends][/widget]
[block]plinks[/block]
[block]statement[/block]

[/region]
[region=content]
$content
[block]footer1[/block]
[/region]
[region=right_aside]

[/region]

Damit wird die Navigationsleiste von Hubzilla auf allen eigenen Webseiten (Impressum, Datenschutz, Wissenswertes etc.) durch die eigene ersetzt.

Der Kern des Blogs ist aber die App “Artikel”. Und auf System-Apps wirkt sich unser Webseiten-Layout nicht aus. Betroffen sind bei der Dampfdruck-Presse die Module “Artikel”, “Kanal” und “Profil”, die über die Navigationsleiste für Besucher erreichbar sind.

Um in diesen Modulen die Navigationsleiste durch die eigene zu ersetzen, muss man den PDL-Editor bemühen. Dort wählt man das entsprechende Modul und muss dort die Quelltext-Ansicht öffnen.

Ich habe für die Dampfdruck-Presse dort einfach ganz oben im Quelltext

[region=nav]
[block]menubar[/block]
[/region]

eingetragen und das jeweils mit “APPLY” übernommen.

Nun erscheint auch bei den Hubzilla-Apps nur noch die eigene Navigationsleiste und der Unterbau bleibt dem Besucher damit verborgen.

Für mich als Betreiber ergibt sich aber ein kleiner Nachteil. Sobald ich z.B. die App “Artikel” aufrufe, um einen neuen Artikel zu erstellen, wird natürlich auch bei mir nur die neue Navigationsleiste angezeigt und ich kann nicht ohne weiteres zu anderen Hubzilla-Anwendungen zurückkehren. Ich bin durch die Leiste quasi auch “gefangen”.

Dafür gibt es aber auch eine Lösung. Ich habe das DDP-Logo in der Navbar einfach mit dem Link zum HQ hinterlegt (ist oben im Quelltext auch schon zu sehen). Damit gelange ich über einen quasi “unsichtbaren” Link wieder zu einer App, welche die Navigationsleiste von Hubzilla ausweist. Besucher hingegen, die zufällig auf das Logo klicken, landen auf einer leeren Hubzilla-Seite mit der Möglichkeit sich einzuloggen oder über das App-Menü die System-Apps auszuwählen. Die HQ Ansicht seht halt nur eingeloggten Nutzern zur Verfügung.

Das Blog wirkt jetzt mehr wie aus einem Guß und dass der Motor “Hubzilla” heißt, ist nur noch aus dem selbst erstellten Footer ersichtlich:

blg-II-03

Feintuning extrem - Berechtigungen unter Hubzilla

Feintuning extrem - Berechtigungen unter Hubzilla

Immer wieder “prahle” ich, wie feingranular denn das Berechtigungssystem von Hubzilla ist und wie genau man festlegen kann, wer was sehen und wer was womit machen kann.

Nutzt man die Kanalrollen “Persönlich” oder “Öffentlich”, so ist auch schon sehr viel möglich. Viel mehr als bei den meisten Fediverse-Diensten. Aber trotzdem bleiben es noch “Berechtigungen mit Hammer und Meißel”. Wer aber mit dem spitzen Bleistift feine Berechtigungsmuster zeichnen möchte, der muss etwas tiefer in das Berechtigungssystem von Hubzilla eintauchen und – das ergibt sich aus dem Wunsch – ein wenig mehr Aufwand betreiben.

Ausgangspunkt für einen solchen Kanal ist die Kanalrolle. Und hier müssen wir nun “Benutzerdefiniert” auswählen, weil die vorgegebenen Rollen zu viele Rechte einräumen.

Die benutzerdefinierte Kanalrolle entspricht nach Kanalerstellung der Rolle “Persönlich”. Wir können aber, im Gegensatz zu den vorkonfigurierten Rollen, jegliche Berechtigung selbst festlegen. Dies geschieht über Einstellungen ➔ Privacy-Einstellungen ➔ Benutzerdefinierte Konfiguration der Channel Role.

fine01

Wählt man diesen Punkt, wird man zunächst gewarnt, dass man sich damit seinen Kanal durchaus “kaputt konfigurieren” kann. Na ja… dauerhaft kaputt macht man ihn sich damit auch nicht, weil man ja alles “zurückdrehen” kann. Es kann nur passieren, dass gewisse Dinge womöglich nicht mehr funktionieren, sofern man bei bestimmten Berechtigungen die falsche Einstellung wählt.

fine02

“Feintunig extrem” heißt dieser Beitrag… und “extrem” ist hier ziemlich wörtlich gemeint.

Grundsätzlich möchte man ja trotzdem, wenn man ein Soziales Netzwerk nutzt, mit anderen Nutzern in Interaktion treten. Das sollte man im Hinterkopf behalten, insbesondere bevor man bei einer Berechtigung die Auswahl “Nur ich” anwendet.

Für mein Beispiel setze ich jede(!) Berechtigung auf “Nur die, denen Du es explizit erlaubst”. Damit ist der erste Schritt getan. Ab sofort muss ich alles, was ich anderen zugestehen möchte, explizit für jeden auch erlauben.

Nun kommen die Kontaktrollen ins Spiel. Es gibt immer die Rolle “Standard”, welche allen Verbindungen das erlaubt, was auch mit der Kanalrolle “Persönlich” erlaubt ist. Und jede neue Verbindung erhält zunächst die Kontaktrolle “Standard”. Damit wäre also erstmal kaum etwas gewonnen. An dieser Stelle ist es also erforderlich (bei einem neuen Kanal am besten, bevor man die erste Verbindung überhaupt eingeht), weitere Kontaktrollen zu erstellen. Das geschieht mit der App “Contact Roles” (findet Ihr die nicht im App-Menü, müsst ihr in der App-Verwaltung das “Sternchen” erst noch aktivieren).

Dort sieht man in einer Liste die bisher einzige vorhandene Kontaktrolle “Standard” und ein leeres Formular zur Erstellung einer neuen Rolle. Die ist nun im vorliegenden Fall im Bereich der Berechtigungen ohne auch nur ein einziges abgehaktes Kästchen und es gibt auch keine positiven Berechtigungen, die von der Kanalrolle geerbt wurden. Und genau diese Rolle nehmen wir jetzt auch mit sämtlich leeren Kästchen als eine neue Kontaktrolle. Das ist die Rolle, die auch Verbindungen nichts erlaubt. So mal rein gar nichts.

fine03

Sie muss einen Namen bekommen. Ich habe meine “nüscht” genannt. Wichtig (nicht zwingend, dazu später mehr) für unser Vorhaben ist die Option “Neuen Kontakten automatisch diese Rolle zuweisen”. Die sollte aktiviert werden. Das sorgt dafür, dass jede neu eingegangene Verbindung grundsätzlich erst einmal diese Rolle bekommt… und letztlich “nüscht” darf. Die Verbindung bekommt nicht einmal von uns geteilte Inhalte auch nur zu sehen. Und wir selbst sehen von dieser Verbindung damit auch erstmal genau “nüscht”.

Das ist nun aber eher sinnfrei. Die Rolle und die Festlegung, jedem Kontakt dieser Rolle zuzuweisen, sofern man keine andere auswählt, dient nur der Sicherheit, dass neue Verbindungen unbeabsichtigt Berechtigungen bekommen, die wir ihnen eigentlich nicht zugestehen wollen.

So, und nun können wir ans Feintuning gehen. Wir legen uns weitere Kontaktrollen an, die ganz genau auf unsere Bedürfnisse abgestimmt sind.

Die vorhandene (und nicht bearbeitbare) Standard-Rolle können wir natürlich auch für Verbindungen nutzen. Nämlich für genau diejenigen, mit denen wir wie in einem Sozialen Netzwerk ganz normal interagieren möchten.

Nun mag es vielleicht sein, dass wir das typische Social-Network-Verhalten nur für eine bestimmte Zahl unserer Verbindungen haben wollen, die meisten aber sollen die Funktionen nur etwas eingeschränkt nutzen können. Angenommen, die normalen Kontakte sollen unsere Postings sehen können, wir selbst wollen deren Postings auch sehen, sie sollen auch unsere Dateien und Bilder sehen können, ebenso unsere Webseiten und Wikiseiten. Überdies sollen sie liken und disliken können und unsere Beiträge kommentieren… ach und Direktnachrichten sollen sie uns auch schicken können. Die Rolle, ich nenne sie einfach mal “normal” würde dann so aussehen:

fine04

Nun mag es sein, dass wir Kontaktanfragen bekommen, wir dem Antragsteller auch durchaus erlauben wollen, unsere Beiträge zu verfolgen, wir selbst wollen aber seine Beiträge nicht sehen und er soll auch keine Reaktionen oder Kommentare machen können… er wäre also das, was bei anderen Diensten der “Follower” ist, dem wir selbst aber nicht folgen, dann können wir eine weitere Rolle anlegen (und z.B. “Follower” nennen). Die sähe dann so aus:

fine05

Wir erlauben dem “Follower” also, alles zu sehen, aber selbst nicht in unserem Stream in Erscheinung zu treten.

Und nach diesem Schema können wir uns beliebig viele Kontaktrollen für jede denkbare Verbindung erstellen und dann bestimmten Verbindungen zuweisen.

Das Zuweisen erfolgt entweder, wenn wir selbst eine Verbindung eingehen im dann erscheinenden Verbindungs-Editor. Hier können wir im Auswahlmenü “Wählen Sie eine Rolle für diesen Kontakt” die gewünschte Kontaktrolle auswählen.

fine06

Bereits bestehenden Verbindungen können wir auch andere Kontaktrollen zuordenen, indem wir den Verbindungs-Editor in der App “Verbindungen” nutzen.

fine07

Bekommen wir eine Verbindungs-Anfrage, landen wir auch wieder im Verbindungs-Editor und legen dort auch gleich die Rolle fest.

fine08

Bei einer übersichtlichen Zahl von Verbindungen funktioniert das. Werden es wesentlich mehr Verbindungen, dann kann man sich auch mit der Privacy Gruppen das Leben etwas einfacher machen (auch wenn man die Berechtigungen später einmal umfassend für seine Verbindungen umstrukturieren möchte).

Die App “Privacy Gruppen“muss, sofern noch nicht geschehen, erst einmal installiert werden (obwohl ihre Grundfunktionalität ohnehin schon vorhanden ist… man kann halt ohne die App nicht dran rumschrauben).

Legt man sich für verschiedene Berechtigungs-Rollen nun verschiedene Privacy Gruppen an und schiebt seine Kontakte in diese Gruppen, so kann man in der App “Contact Roles” bei jeder Rolle festlegen, dass diese allen Mitgliedern einer bestimmten Privacy Gruppe zugewiesen werden.

Achtung, Fußangel: Ordnet Ihr einzelne Verbindungen gleichzeitig mehreren Privacy Gruppen zu, so gilt für diese Verbindungen natürlich die Kontaktrolle, die Ihr zuletzt einer Gruppe zugewiesen habt.

Ist also Kontakt A gleichzeitig in den Gruppen B und C und Ihr weist die Kontaktrolle D allen Mitgliedern der Gruppe B zu und danach allen Mitgliedern der Gruppe C die Rolle E, dann verfügt Kontakt A über die Berechtigungen der Rolle D, weil ihm zuletzt als Gruppenmitglied der Gruppe C die Rolle E zugewiesen hat.

Aaaargh… wenn Ihr jetzt einen Knoten im Gehirn habt, Beschwerden bitte nach /dev/null verschieben. 😉😂 War jetzt suboptimal, das Beispiel…

Also kurz: Die zuletzt einer Privacy Gruppe zugewiesene Kontaktrolle gilt dann für alle Gruppenmitglieder, die sich zu dem Zeitpunkt in dieser Gruppe befunden haben. Andere Kontaktrollen, die sie vorher hatten, werden überschrieben.

Soviel zum Berechtigungs-Feintuning. Mit Hubzilla ist echt sehr viel möglich. Und das, was ich hier beschrieben habe, ist tatsächlich, wenn man es auf die Spitze treibt, etwas für Berechtigungsverteilungsfanatiker (nicht nur die Ungarn können lange Wörter). Man muss die richtige Balance finden.

Das Beispiel, das ich mit den paar Rollen hier beschrieben habe, ist aber durchaus alltagstauglich und kann helfen, den Stream hygienisch zu halten.

Die Rolle “nüscht” könnt Ihr Euch auch klemmen, wenn Ihr wollt (vor allem die automatische Zuweisung für neue Kontakte). Ihr müsst dann halt nur darauf achten, beim Eingehen einer Verbindung auch wirklich die korrekte Kontaktrolle zuzuweisen. Ist quasi nur ein zusätzliches Sicherungsseil. Dann wäre es aber sinnvoll, neuen Kontakten als Standard die Rolle “Normal” zuzuweisen.

C

Cards - an underestimated feature - en

Cards - an underestimated feature

If the admin has activated the ‘Cards’ add-on, users can install the ‘Cards’ app and make it available in the app menu and/or the navigation bar.

But what are cards? What are they good for?

The description of the add-on doesn’t really give much away:

Create personalised planning cards

Aha…

If you’re looking for information about the addons, you won’t really find much in the help either:

Cards provide a permanent collaboration space that is separate from the social stream. They are slightly lighter than websites and wikis for quickly organising information and have the advantage of allowing collaboration and commenting. They are well suited for organising complex tasks that require frequent updates and feedback.

And an old article by Andrew Manning (no longer available on the web) states:

Your team is planning an event and you need to detail the different tasks you need to complete to achieve this. You’ll want to have topical conversations about team members’ comments as you work together to define and work through each task. By categorising them, you can fluidly organise the tasks into groups that make sense for your goals.

Nice. So you can somehow organise individual project tasks, enable others to participate in them… and they are not federated, so they remain on your own hub.

Do I need something like that?

I haven’t had any use for it myself. So far… because cards are definitely more versatile (not necessarily in the original sense).

On the occasion of a question in the Hubzilla support forum about whether Hubzilla also has something like ‘bookmarks’, the cards were brought into play with a related use of hosh. The question about bookmarks was not aimed at Hubzilla’s bookmarks, because it is about actual URLs that can be saved, but about a feature that is called ‘bookmark’ in other Fediverse services: Storing posts in a collection of links… preferably also categorised.

Hubzilla offers storage in folders for this purpose. This does exactly what the questioner expected in principle.

Hosh replied in the thread that he organises his post bookmarks using cards. He also linked to his card collection. In fact, organising content that you want to remember with cards is a really great thing. Cards can be categorised, which are then listed in the ‘Cards’ app in the left-hand sidebar. Cards are contributions which, as mentioned, are not federated, are not as complex as articles and are organised differently and more streamlined than wiki pages or websites.

Ultimately, cards can also be used very well as a quasi-categorised note box (apart from the original idea of use). This makes it suitable not only for use as a categorised bookmark collection, for example, but also as an adequate replacement for the ‘Notes’ app (the latter is currently one big ‘notepad… and nothing more’).

So how do you use it? It’s not rocket science.

You open the ‘Maps’ app.

The first time you use it, it’s still empty.

cards02

To create a new card, click in the “Add Card” field and you will be taken to the card editor.

cards03

It corresponds to the editor for ‘Articles’, i.e. it has a field for the title, for a summary, for categories and a field for the ‘Link to page’, as well as an input field for the content. There are formatting options, as with other posts, and you can use authorisation settings to define who is allowed to see the card.

Although the title is optional, it is certainly useful, so you should get into the habit of filling in the field.

A summary is only useful for larger content and is actually more suitable for articles. However, you can use the summary to create a kind of content warning. It can be useful for this if other users also want to (and are allowed to) access our cards.

It really makes sense to specify at least one category, as these are listed in the left-hand sidebar. This allows you to categorise and sort your cards. If you later click on a category on the left, only the cards that have been marked with the corresponding category will be displayed.

The ‘Link to page’ is automatically filled in by Hubzilla and can be used to make the card accessible to others via a link. The link to a card then has the following format:

<HUB>/cards/<CHANNELHANDLE>/<LINK TO PAGE>

However, Hubzilla generates rather ‘cryptic’ links, which is why it makes sense to enter a ‘speaking’, i.e. understandable, link here yourself.

Would you like an example of an automatically generated link? Please:

cards08

…results:

cards09

As an example, let’s simply create a card with an external link reference… e.g. to the Hubzilla KnowledgeDB.

cards04

After saving, both the map you have just entered and two categories in the left-hand sidebar will appear in the previously empty app.

cards05

The ‘’Everything‘’ category is created automatically as soon as the first card is created. All cards (visible to the user) are displayed in this category. It is also the category that is displayed after calling up the ‘’Cards‘’ app.

Clicking on the ‘Links’ category does not currently change anything because we only have one card that belongs to this category anyway.

If we have created several cards, the ‘Everything’ category will fill up until it becomes confusing.

cards06

Now we can display the cards filtered by category. In my example, a click on the ‘Hubzilla’ category only brings up the two cards for this topic on the screen.

cards07

So, apart from the probably rarely used original purpose of ‘personal planning cards’, cards are a really good and useful way of categorising information, links, bookmarks, notes and many other things.

Cloud mit Hubzilla

Hubzilla bietet Cloud-Funktionalität. Das bedeutet, dass man für jeden Kanal ein Verzeichnis besitzt, in dem man weitere Unterverzeichnisse erzeugen und Dateien ablegen kann. Für jedes Verzeichnis, ja sogar für jede einzelne Datei kann man genaue Zugriffsrechte festlegen. Das geht von einer Sichtbarkeit für die Allgemeinheit, eine Sichtbarkeit für Mitglieder bestimmter Gruppen bis hin zur einzelnen Freigabe für einzelne Mitglieder aus den eigenen Verbindungen. Es ist sogar möglich, Dateien mit Leuten zu sharen, die keine Hubzilla-Identität haben. Dazu verwendet man Gastzugangs-Token.

Das Anlegen und Löschen von Verzeichnissen und das Anlegen bzw. Löschen von Dateien ist wirklich einfach.

Seinen Cloudspeicher erreicht man über das „App-Menü“ (⋮) → Dateien. Man kann auch Bilder über den Dateien-Bereich hochladen, was ebenfalls über den Bereich „Fotos“ möglich ist.

cloud01

Die Ansicht der Dateien lässt sich über einen Button zwischen Listenansicht und Icon-Ansicht (Kachelansicht) umschalten.

cloud02

Neue Verzeichnisse / Ordner erstellt man mit dem Button “Erstelle”. Beim Erstellen kann man auch sofort die Berechtigungen für den neuen Ordner festlegen (🔓).

cloud03

Mit dem Button “+ Dateien hinzufügen” kann man Dateien in seine Cloud hochladen. Auch hier ist es wieder möglich die Zugriffsberechtigungen direkt festzulegen.

cloud04

cloud05

Um Zugriffsrechte (Berechtigungen) für Verzeichnisse oder Dateien nachträglich festzulegen oder zu ändern, klickt man auf das Kontextmenü (︙) der Datei oder des Verzeichnisses. Hier lassen sich außerdem noch verschiedene Dateioperationen durchführen.

Hubzilla als CMS benutzen

Hubzilla als CMS benutzen

Hubzilla kann als normale Zugangssoftware für die Teilnahme am Fediverse dienen und wird oft auch genau dafür verwendet. Die weit darüber hinausgehenden Funktionen und Möglichkeiten sind vielen nicht bekannt. Hubzilla ist ein vollwertiges Content Management System und damit durchaus geeignet umfangreiche Web-Präsenzen zu erstellen, die in Qualität und Funktion mit den Webseiten anderer CMS mithalten können.

Weil viele Funktionen nicht allgemein bekannt sind und teilweise auch eine andere Herangehensweise erfordern, als es bei den bekannten CMS der Fall ist, gibt es nun ein Buch, welches reinen Nutzern vermittelt, wie sie Hubzilla für eben diese Zwecke verwenden können.

hz-cms-buch

Online: Hubzilla - das Social Network CMS

Offline (PDF): Hubzilla - das Social Network CMS

CW - content warning

CW: content warning (oder Content-Warnung), eine Warnung vor folgenden, möglicherweise verstörenden Inhalten.

Hubzilla besitzt keine eingebaute Funktionalität, einen Beitrag mit CWzu kennzeichnen und erst auf Aufforderung (Klick) anzuzeigen. Stattdessen legt es die Verantwortung in die Hände des Rezipienten mittels der App “NSFW”. Es liegt damit - was ich für sinnvoll halte - in der Verantwortung des Nutzers, welche Inhalte er zunächst “eingeklappt” (es wird lediglich die Inhaltswarnung angezeigt, erst mit einem Klick darauf, wird der eigentliche Beitrag sichtbar) sehen möchte.

Die CW-Funktion lässt sich für den Absender dennoch mit “Bordmitteln” nachempfinden. Damit kann der Ersteller eines Beitrags dafür sorgen, dass ein Beitrag beim Empfänger zunächst “eingeklappt” angezeigt wird.

Der Beitragseditor enthält ein Feld “Summary (optional)” für eine kurze Zusammenfassung des Beitrags. Hier kann der Ersteller nun seine Inhaltswarnung eintragen.

Bei einem Beitrag (im Unterschied zu einem Kommentar auf einen Beitrag) wird dies von den meisten Fediverse-Diensten auch korrekt umgesetzt und der Inhalt bleibt zunächst verborgen.

cw04

cw05

Möchte man einen Kommentar auf einen Beitrag mit einer Inhaltswarnung versehen, muss man leider feststellen, dass der Kommentar-Editor kein Feld für eine Zusammenfassung bietet.

Man kann aber eine Zusammenfassung (auch als Inhaltswarnung) trotzdem verwenden. Hierfür nutzt man die Tags [summary][/summary] zwischen die man die Inhaltswarnung schreiben kann.

Bei Hubzilla wird dann auch der Kommentar zunächst versteckt angezeigt. (Tipp von Jupiter Rowland)

Leider ignoriert z.B. Mastodon diese Tags aber bei Kommentaren, so dass sie keinen Effekt haben. Der Beitrag wird inklusive der vorangestellten Inhaltswarnung zwischen den Tags als normaler Text sofort sichtbar angezeigt.

Bei Hubzillasind wir also in der hervorragenden Lage, uns entscheiden zu können, ob wir Inhaltswarnungen in die Hand des Empfängerslegen (dieser muss dann die App NSFW nutzen und festlegen, welche Inhalte für ein Verbergen des Beitrags sorgen), oder ob wir, weil wir der Meinung sind, es könnte andere stören, selbst die Inhaltswarnung mittels der Zusammenfassung auslösen. Das allerdings, funktioniert nur bei Beiträgen, nicht aber bei Kommentaren zu Beiträgen.

Create account - en

Create account

To be able to use Hubzilla, you have to register with a Hubzilla hub (these are the servers on which the Hubzilla software is installed).

You can find out why this is the case and how advantageous it is at Join the fediverse.

Finding a suitable server is not that difficult. A total of 70 instances are listed on FediDB (as of 28 Oct. 2023). Most of them allow registration.

acca01

Or you can take a look at the Fediverse Observer. There is also a filter option.

acca02

The number of users is also interesting. It is not necessarily advisable to choose one of the largest (highest number of users) instances. A properly operated smaller server is not a disadvantage at all and is usually very well integrated into the Fediverse.

Once you have decided on a server, all you need is an idea for a user name (name for a channel that represents your identity in the Fediverse) and a password, as well as a working e-mail address (so that you can receive the activation e-mail).

On the start page of an instance, you will find the so-called ‘App menu’ (⋮) at the top right and the menu item ‘Help’ in this menu. The last item in the help is ‘About this hub’. This point leads (hopefully, depending on the operator and is a good indication of seriousness) to an imprint, further information about the hub and the terms of use.

Now click on ‘Register’ at the top left of the start page.

acca03

A registration form will appear in which you must enter your working e-mail address and the password you have chosen. You also have to confirm that you have reached the ‘registration age’ (usually 13 years) and accept the terms of use.

acca04

Click on the Register button to send the entered data.

You must now verify the registration (and therefore the e-mail address entered).

acca05

You will receive an email with a verification code that must be entered in the field. If you have not received an email, you can request the code again by clicking on the ‘Resend email’ button. Once you have entered it, send it by clicking on ‘Submit’.

acca06

acca07

Next, a form will appear asking you to create your first channel (most hubs allow multiple channels per account). You can also import an existing channel (on another hub) here (for more information: Nomadic identity / cloning), but usually you don’t have one as a beginner. So you enter the desired name here, from which the form also generates a suggestion for the nickname (this is the part that is used in the Fediverse handle, e.g. ‘exampleuser’ for ‘exampleuser@hub.pericles.hu’).

acca08

Then click on the ‘Create’ button and the channel is created. Welcome to Hubzilla, welcome to Fediverse!

Once the channel has been created, you will be logged in immediately and the form for the profile details will be displayed.

acca09

You should then make a few basic settings and establish your first contacts.

D

Direktnachricht

Direktnachricht

Direktnachrichten sind Nachrichten, die an eine oder mehrere Einzelverbindungen adressiert sind. Sie sind über den Netzwerkstream zugänglich. Ein Filter für Direktnachrichten wurde dem Stream-Filter-Widget für den schnellen Zugriff hinzugefügt.

dn01

Möchte man eine Direktnachricht an einen (oder mehrere) andere Nutzer versenden (Direktnachrichten können nur von den Adressaten und vom Versender gelesen werden), so verfasst man einen normalen Beitrag und adressiert diesen per spezieller Erwähnung ausschließlich an den / die Empfänger. Dies geschieht mit der privaten Erwähnung (Privacy-Tag). Ein Privacy-Tag ist ein Name, dem die beiden Zeichen @! vorangestellt sind und der zusätzlich zur Markierung dieser Kanäle auch die Datenschutzberechtigungen des Beitrags so ändert, dass nur diese berücksichtigt werden.

dn02

Zum Anzeigen kann man die DN im Stream filtern.

dn03

Um auf eine DN auch wieder “privat”, also als DN zu antworten, muss man kein Privacy-Tag nutzen. Man antwortet einfach direkt auf die eingegangene DN.

dn04

dn05

Alternativ zum Privacy-Tag kann man auch Kanäle oder Privacygruppen aus dem Privacy-Tool auswählen. Dies ist der umständlichere Weg, der aber auch funktioniert. Die Nutzung eines Privacy-Tags überschreibt allerdings eine ggf. getroffene Auswahl im Privacy-Tool. Schreibt man also einen Beitrag, der als Direktnachricht verschickt werden soll, kann man den Privacy-Tag weglassen und stattdessen auf das Vorhangschloss-Symbol neben dem Button “Teilen” klicken, so dass man in die Berechtigungs-Einstellungen gelangt.

dn06

Dort wählt man dann den Punkt “Benutzerdefiniert” und kann anschließend dem gewünschten Adressaten die notwendige Berechtigung einräumen.

dn07

dn08

Die so abgeschickte DN erscheint dann beim Adressaten, ist für andere aber nicht sichtbar.

dn09


Mail
Mit dem Versionssprung von 4.6 auf 5.x wurde die ursprüngliche Mail-Funktionalität deaktiviert, weil es im neuen zot6-Protokoll (das Protokoll wurde inzwischen in Nomad umbenannt) kein Konzept für private Mails mehr gibt. Die alte Mail-Funktionalität konnte, sofern sie noch benötigt wurde, mit der Mail-App, die als Addon angeboten wurde, aktiviert werden. Die App ist inzwischen auch eingestellt worden.

Das Konzept des Mail-Versands wurde durch Direktnachrichten (DN) ersetzt.

E

Editoren? Editor!

Ein wenig verwirrend kann es sein, dass es verschiedene Möglichkeiten gibt, den Beitragseditor zu erreichen bzw. zu öffnen.

Die “üblichste” Methode ist es, in das Feld “Teilen” im Stream zu klicken.

ed01

ed02

Eine weitere Variante ist das Klicken auf das Symbol der App “Beitrag schreiben” in der Navigationsleiste (sofern man die App in der App-Verwaltung dort angepinnt hat) oder der Aufruf der App “Beitrag schrieben” aus dem App-Menü (⋮).

ed03

ed04

ed05

Als Option steht ggf. noch der Klick auf das Editor-Symbol in der “HQ”-App am unteren Ende der linken Seitenleiste zur Verfügung, sofern man dies optional eingeschaltet hat.

Alle diese Methoden führen zum Beitragseditor. Ruft man ihn aus dem Stream, als App (angepinnt oder App-Menü) oder im HQ über das Symbol auf, so wird das, was man dort eingibt und absendet (Button “Teilen”) als normales Posting veröffentlicht. Wer das sehen kann, ist eine Frage der Default-Einstellungen, der Auswahl bei den Berechtigungs-Einstellungen (unten im Editor-Fenster 🔒) oder des Taggens.

Wer Hubzilla als normale Fedi-Software benutzt und seinen Kanal “Öffentlich” eingestellt hat, bei dem führt das Teilen dazu, dass der Beitrag öffentlich geteilt wird, also in der Timeline / dem Stream der Verbindungen (Kontakte/Follower) erscheint und auch frei im Internet zu sehen ist. Die “klassische” Social Media Nutzung halt.

Bei jeder Methode landet man aber in ein und dem selben Editor. Er wird nur entweder eingebettet über dem Stream (beim Klick auf “Teilen” im Stream), als eigene Seite (bei Aufruf der App) oder eingebettet am unteren Ende der HQ-Ansicht angezeigt.

Der Editor ist in allen drei Aufruf-Varianten aber universell nutzbar.

Damit ist es auch bei jeder Variante möglich, den Editor ein wenig anders zu nutzen. Das betrifft die Sichtbarkeit bzw. das “Ziel” des verfassten Beitrags. Standard ist eine Veröffentlichung nach den Standard-Vorgaben des Kanaltyps (also meist öffentlich). Eine Beschränkung auf einen oder mehrere Empfänger im selben Editor (über die Berechtigungs-Einstellungen oder das Taggen der gewünschten Benutzer) ist aber auch möglich. Man muss keinen “speziellen” Editor aufrufen… es ist der eine(!) Editor. Auch Direktnachrichten werden mit eben diesem Editor erstellt (Einschränken der Empfänger per Einstellungen oder Tagging).

So ist es möglich, aus dem(!) Editor (unabhängig von der Methode, ihn zu öffnen) öffentlich oder eingeschränkt zu Posten, Direktnachrichten zu versenden oder in ein Forum zu posten.

Ein weiterer Editor ist der “Kommentar-Editor”, der aufgerufen wird, wenn man auf das Antworten-Icon kommentieren01a unten rechts bei einem Posting klickt. Dieser ist eingeschränkter in den Möglichkeiten. Formatierungen und Textauszeichnungen sind möglich. Aber es ist nicht möglich, die Berechtigungen des Kommentars zu ändern. Sie entsprechen den Berechtigungen, welche der Verfasser des ursprünglichen Beitrags festgelegt hat. Es ist natürlich auch nicht möglich, mit diesem Kommentar-Editor einen neuen Beitrag (als neuen Thread) zu veröffentlichen. Der Editor erlaubt nur das Erstellen und veröffentlichen Kommentaren im Thread zu einem bestimmten Posting.

kommentieren01

kommentieren02

Es gibt bei Hubzilla noch eine Menge weiterer Editoren, die aber allesamt nichts mit dem eigentlichen Beitrags-Editor zu tun haben (auch wenn sie ihm ähnlich sehen): z.B. den Editor für Wikiseiten, für Webseiten (und alles was dazu gehört), für Kalendereinträge und - Vorsicht, hier könnten Missverständnisse entstehen - für Artikel.

Missverständnisse? Artikel?

Ok, weil es wirklich zu Missverständnissen kommen kann, hier noch ein paar Worte zum Artikel-Editor.

Wenn die App “Artikel” in einem Kanal aktiviert ist, kann man sie über das Symbol in der Navigationsleiste oder über das App-Menü aufrufen. Hier erscheinen dann alle Artikel, die verfasst und veröffentlicht wurden (veröffentlicht… nicht “geteilt” im Sinne des Fediverse). Auf der App-Seite findet man, ähnlich wie im Stream, ein Feld über der Liste mit den Beiträgen (Artikeln). Ein Klick darauf führt zum Artikel-Editor.

aed01

aed02

Er sieht dem Beitrags-Editor zum Verwechseln ähnlich… mit zwei Ausnahmen: Es gibt ein zusätzliches Eingabefeld “Link zur Seite” und auf dem Button zum Absenden steht “Speichern” (im Gegensatz zu “Teilen”). Diese beiden Abweichungen weisen aber auch darauf hin, worin sich der Editor bzw. der mit ihm zu erstellende Inhalt von einem “normalen” Posting(Beitrag unterscheidet.

Artikel sind eine Besonderheit von Hubzilla (nicht verwechseln mit dem Beitragstyp “article” von ActivityPub) und sind am treffendsten mit der Bezeichnung “Blogartikel” zu beschreiben. Es ist in Hubzilla (mit aktivierter Artikel-App) möglich, eine Art Blog-Artikel zu verfassen. Der Unterschied zu dem “normalen” Beitrag liegt nicht in der möglichen Länge (eine Zeichenbeschränkung gibt es weder für Artikel, noch für geteilte Beiträge) oder in den Formatierungsmöglichkeiten, sondern darin, wo er verfügbar ist, darin, wo er auftaucht.

Im Gegensatz zu den “normalen” Beiträgen, die grundsätzlich im Fediverse verteilt werden, bleiben Artikel auf den Hub beschränkt, wo sie erstellt wurden. Artikel werden nicht föderiert, sie erscheinen nicht in der Timeline der Verbindungen/Follower. Um sie einem breiteren Publikum bekannt zu machen, muss man den Link zum Artikel (dafür ist das Feld “Link zur Seite” gedacht… Hubzilla vergibt automatisch einen nicht wirklich “sprechenden” Linknamen… hier sollte man eine eigene, verständlichere Version eingeben).

Wer nun aber meint, es gäbe doch auch im Artikel-Editor die Berechtigungs-Einstellungen… spricht das nicht doch dafür, dass er trotzdem geteilt wird… der irrt. Die Berechtigungen legen hier vielmehr fest, wer sich den Artikel anschauen darf. Schränkt man hier die Berechtigung ein, so können alle, die keine Berechtigung erhalten haben, den Artikel überhaupt nicht sehen… auch nicht bei direktem Aufruf des Links.

Also: Den Artikel-Editor bitte als etwas völlig eigenständiges betrachten, der mit dem Beitragseditor lediglich optisch verwandt ist.

Ein abgeleitetes Thema erstellen

Erstellen eines abgeleiteten Themes

In diesem Tutorial lernen wir, wie man ein abgeleitetes Theme erstellt. Dabei handelt es sich um ein Theme, das die meisten Einstellungen aus seinem „übergeordneten” Theme übernimmt und Ihnen ermöglicht, einige Dinge nach Ihren Wünschen zu ändern, ohne ein komplettes Theme-Paket erstellen zu müssen. Dies ist ein guter Ausgangspunkt, wenn Sie nur einige Dinge an einem bestehenden Theme ändern möchten, um beispielsweise Ihrem Hub ein etwas persönlicheres Aussehen zu verleihen.

In diesem Tutorial verwenden wir das Standardthema „redbasic” als übergeordnetes Thema. Wenn Sie ein anderes Thema als Grundlage verwenden möchten, müssen Sie möglicherweise einige Anpassungen vornehmen, aber der Vorgang ist derselbe.

Lektion

Um ein abgeleitetes Design zu erstellen, wählen Sie zunächst einen Namen. In unserem Beispiel nennen wir unser Design „mytheme”.

Hoffentlich sind Sie etwas kreativer. Ersetzen Sie jedoch in diesem Dokument überall, wo Sie „mytheme” sehen, den Namen, den Sie gewählt haben.

Verzeichnisstruktur

Zuerst müssen Sie eine Verzeichnisstruktur für das Theme erstellen. Wir halten es einfach. Wir benötigen ein PHP-Verzeichnis und ein CSS-Verzeichnis. Hier sind die Unix/Linux-Befehle dafür. Nehmen wir an, „mywebsite” ist Ihr oberster Hubzilla-Ordner.

cd mywebsite
mkdir view/theme/mytheme
mkdir view/theme/mytheme/css
mkdir view/theme/mytheme/php

Großartig. Jetzt brauchen wir noch ein paar Dateien. Die erste ist Ihre Theme-Info-Datei, die das Theme beschreibt. Sie wird view/theme/mytheme/php/theme.php heißen (cleverer Name, oder?). Fügen Sie darin die folgenden Informationen ein – und passen Sie sie nach Bedarf an:

<?php

/**
 *   * Name: Mytheme
 *   * Description: Sample Derived theme
 *   * Version: 1.0
 *   * Author: Your Name
 *   * Compat: Red [*]
 *
 */

function mytheme_init(&$a) {

    App::$theme_info['extends'] = 'redbasic';
    }

Denken Sie daran, die Funktion „mytheme_init” mit dem Namen Ihres Themes umzubenennen. In diesem Fall erweitern wir das Theme „redbasic”. Erstellen Sie nun eine weitere Datei. Wir nennen diese Datei „PCSS-Datei”, aber es handelt sich dabei um eine PHP-Datei. Die Datei heißt „view/theme/mytheme/php/style.php”. Fügen Sie darin Folgendes ein:

<?php

require_once('view/theme/redbasic/php/style.php');

echo @file_get_contents('view/theme/mytheme/css/style.css');

Das war’s schon. Damit wird die Software angewiesen, zuerst die PCSS-Informationen für das Redbasic-Theme zu lesen und anschließend unsere CSS-Datei, die nur die Änderungen enthält, die wir gegenüber unserem übergeordneten Theme (Redbasic) vornehmen möchten.

Erstellen Sie nun die eigentliche CSS-Datei für Ihr Theme. Speichern Sie sie unter view/theme/mytheme/css/style.css (wo wir der Software gerade gesagt haben, dass sie danach suchen soll). In unserem Beispiel ändern wir nur die Hintergrundfarbe des Body, damit Sie sehen können, dass es funktioniert. Sie können jedes beliebige CSS verwenden.

body {
    background-color: #DDD;
}

Sie haben soeben erfolgreich ein abgeleitetes Design erstellt. Dieses muss im Admin-Panel „Designs“ aktiviert werden, damit es von allen Benutzern der Website verwendet werden kann. Dazu muss es unter „Einstellungen -> Anzeigeeinstellungen“ als Standarddesign ausgewählt werden.

Lektion 2 – Anpassen des Themes

Hinzufügen benutzerdefinierter Stile

In der vorherigen Lektion haben wir einen einfachen Stil in der Datei view/theme/mytheme/css/style.css hinzugefügt, damit wir sehen konnten, dass unser abgeleitetes Theme aktiv war.

Wir können natürlich beliebige Stile zu dieser Datei hinzufügen, und da wir sie nach den Stilen des übergeordneten Themes laden, können wir die Stile des übergeordneten Themes oder des Hubzilla-Kerns überschreiben. Mit Stilen allein lässt sich schon viel erreichen, und für viele wird dies alles sein, was Sie benötigen, um das Theme nach Ihren Wünschen anzupassen.

Überschreiben von Vorlagen

In einigen Fällen reicht das Überschreiben von CSS-Stilen möglicherweise nicht aus, um genau das gewünschte Ergebnis für Ihr Theme zu erzielen. In diesen Fällen können wir auch die Vorlagen überschreiben, die zum Erstellen des HTML-Codes der Webseiten selbst verwendet werden.

Vorlagen sind die Bausteine der Hubzilla-Weboberfläche. Sie können komplex sein und die gesamte Benutzeroberfläche eines Moduls enthalten oder einfache Bausteine wie ein Eingabefeld oder eine Schaltfläche.

In diesem Beispiel ändern wir die Vorlagen für Kontrollkästchen und ersetzen die von Redbasic verwendeten Standard-Umschaltflächen durch Standard-HTML-Kontrollkästchen.

So sah es vor der Änderung aus:

Before the change - toggle buttons

Die Originalvorlage befindet sich in view/tpl/field_checkbox.tpl. Als Erstes kopieren wir diese Datei also in das Vorlagenverzeichnis unseres Themes, also view/theme/mytheme/tpl/field_checkbox.tpl. Anschließend ändern wir sie nach Belieben. In diesem Beispiel ändern wir sie wie folgt:

<div id="{{$field.0}}_container" class="clearfix checkbox mb-3">
	<input
		type="checkbox"
		name="{{$field.0}}"
		id="id_{{$field.0}}"
		value="1"
		{{if $field.2}}checked="checked"{{/if}}
		{{if $field.5}}{{$field.5}}{{/if}}
		>
	<label for="id_{{$field.0}}">
		{{$field.1}}{{if $field.6}}<sup class="required zuiqmid"> {{$field.6}}</sup>{{/if}}
	</label>
	<div class="form-text text-muted">{{$field.3}}</div>
</div>

Bei der Suche nach Vorlagen sucht Hubzilla zunächst im Vorlagenverzeichnis des Themes, dann (falls relevant) im Verzeichnis des übergeordneten Themes und schließlich im Verzeichnis view/tpl nach den vom System definierten Vorlagen. Es wird die erste gefundene Vorlage verwendet.

Das bedeutet, dass von nun an die Checkbox-Vorlage unseres Themes immer dann verwendet wird, wenn die Benutzeroberfläche eine Checkbox anzeigen möchte.

So sieht das mit der Änderung aus:

After the change - normal checkboxes

Beachten Sie außerdem, dass Dateien in Unterverzeichnissen unseres Theme-Verzeichnisses abgelegt werden sollten, die der Dateiendung entsprechen. So sollten *.css-Dateien im Verzeichnis view/theme/mytheme/css, *.php-Dateien im Verzeichnis view/theme/mytheme/php und *.tpl-Dateien im Verzeichnis view/theme/mytheme/tpl abgelegt werden.

Einen Beitrag melden

Hubzilla bietet (noch?) keine einfache Möglichkeit, Beiträge zu melden, die ein Nutzer als möglicherweise unzulässig (strafbar, Verstoß gegen die Instanzregeln etc.) ansieht.

Der Nutzer muss einen etwas umständlichen Weg gehen, nämlich den Beitrag per Direktnachricht an den Hub-Admin melden. Dafür wird der interne Link zu dem Beitrag benötigt, um genau zu bezeichnen, um welchen Beitrag (oder Kommentar) es geht.

Leider steht im Beitrags-Menü (⚙ unten rechts bei Beiträgen und Kommentaren) lediglich der Menüpunkt “Link zur Quelle” zur Verfügung. Dieser Link führt aber zum ursprünglichen Ort im Fediverse, an welchem der Beitrag liegt. Bei Beiträgen, die nicht vom eigenen Hub stammen, verweist er also auf die Ursprungs-Instanz bei irgendeinem Fediverse-Dienst. Damit kann der Administrator, welchem der Beitrag gemeldet werden soll, leider nicht viel anfangen. Ein Löschen oder Moderieren des Beitrags ist ihm nur auf dem eigenen Hub möglich. Den findet er über den Link zur Quelle aber nicht. Es würde der “lokale Link” benötigt, doch einen solchen Eintrag findet man nicht im Menü.

meld01

Aber: Er ist trotzdem über dieses Menü (⚙) erreichbar. Das “Geheimnis” ist der Menüeintrag “Quellcode anzeigen”.

meld02

Darauf kommt man so ohne weiteres nicht (weshalb ich es hier erkläre). Klickt man darauf, wird ein Popup-Fenster geöffnet, welches den Quelltext des Beitrags anzeigt. Am oberen Rand des Fensters findet man überdies die Beitrags-Id, einen Link zur Quelle (also das, was man auch direkt im Beitragsmenü erreichen kann), bezeichnet als “plink” (für Permalink) und den lokalen Link, bezeichnet als “llink”. Letzterer ist der Link, den man dem Admin in der Direktnachricht mitteilen muss (Rechtsklick im Browser, um die Linkadresse zu kopieren).

meld03

Nun kann man eine Direktnachricht an den Hub-Administrator (an @!<benutzerhandle-admin>) mit dem internen Link und einer Erläuterung des Grundes für die Meldung versenden.

Umständlich, aber trotzdem machbar, wenn man weiß, wie. ;-)

Ich werde einen Feature-Request einreichen und darum bitten, den internen Link auch direkt und einen Eintrag zum Melden eines Beitrags im Beitragsmenü einzubauen. Ob und wann das kommt? Keine Ahnung.

Einfacher Einstieg

Statt mit Mastodon durch das Fediverse (das ein Verbund aus unzähligen Servern mit unterschiedlicher Software für unterschiedliche Nutzungsschwerpunkte ist) zu streifen, wagt doch einfach mal den Versuch, mit Hubzilla durchzustarten.

Es gibt da keine Beschränkung auf 500, 1000, 3000… Zeichen. Die Länge von Postings ist nicht beschränkt.

Man kann beliebig viele (begrenzt durch die Kapazität des Servers, der bei Hubzilla “Hub” genannt wird) Bilder an- und in das Posting einfügen. Auch das Anhängen anderer Dateien ist möglich, oder das Einbetten von Videos.

Man kann Texte formatieren und hat dabei die Wahl, ob man bbCode oder Markdown verwendet.

Man kann seinem Posting, wenn es länger ist, eine Zusammenfassung mitgeben.

Man ist nicht darauf angewiesen, dass andere ihren Beiträgen Inhaltswarnungen voranstellen. Was vor einem verborgen wird, bestimmt man selbst. Schließlich weiß man selbst ja auch am besten, was einen stört.

Trotzdem kann man seinen Hubzilla-Kanal (so heißt die Identität mit der man im Fediverse unterwegs ist) so agieren, wie z.B. mit Mastodon.

Und wie geht das nun?

  1. Man sucht sich einen Server, also Hubzilla-Hub, der für Registrierungen offen ist.

    Am einfachsten hier: Fediverse Observer Oder bei meinem Hub “KlackerHub”, den ich speziell zum Reinschnuppern, aber auch gerne zum Verweilen eingerichtet und für die Registrierung geöffnet habe.

  2. Dann legt man einen Account an. Das ist einfach und selbsterklärend. Nicht komplizierter, als z.B. bei Mastodon.

  3. Entweder nach dem Anlegen des Accounts oder bereits beim Registrieren, erzeugt man einen Kanal. Das ist die Identität, mit der man im Fediverse dann unterwegs ist. Man braucht einen passenden Namen für den Kanal und der hat dann ein Handle, wie bei allen anderen Fediversediensten auch. Also: <kanalname>@<domain-des-hub> Als Kanaltyp, wählt man, wenn man das Fediverse “normal” benutzen möchte, am besten “öffentlich”.

  4. Anschließend ergänzt man sein Profil. In der rechten Seitenleiste findet man Hinweise für den erfolgreichen Start mit Hubzilla. Lohnenswert! Und wenn man die nicht mehr braucht, kann man sie abschalten (siehe Hinweise am Ende).

  5. Wichtig: ActivityPub und der öffentliche Beitragsstream müssen eingeschaltet werden (siehe Hinweise am Ende).

  6. Verbindungen knüpfen! Auch bei Hubzilla ist es so, dass die Timeline (sie heißt dort “Stream”) nur von Beiträgen von Nutzern befüllt wird, denen man “folgt” (bei Hubzilla heißt das “mit denen man verbunden ist”).

    Dazu wählt man im “App-Menü” (oben rechts: “⋮”) den Eintrag “Verbindungen”. Nun kann man dort mit dem Button “+ Add” bekannte Handles anderer Nutzer eingeben und die Verbindung herstellen. Beachte: Das führende “@” muss bei Hubzilla weggelassen werden.

    Oder man ruft im App-Menü das Verzeichnis aus, achtet darauf, dass links der Schalter “Nur dieser Hub” auf “nein” geschaltet ist. Dann kann man sich durch das globale Nutzerverzeichnis wühlen, dort auch nach Interesse oder Hashtags suchen und weitere Verbindungen herstellen.

    Eine weitere Möglichkeit ist das Durchstöbern des öffentlichen Beitragsstreams (ebenfalls im App-Menü erreichbar). Findet man dort “interessante” Nutzer, so kann man sich auch direkt aus dem Stream mit ihnen verbinden (ein Klick auf das Profilbid des Nutzers öffnet das Menü, wo man “verbinden” auswählen kann).

Und schon kann es losgehen… eigene Beiträge erstellen (“teilen”), Beiträge anderer kommentieren, liken, disliken, mit Emoji-Reaktion versehen, merken, teilen oder weitersagen… alles, was man so kennt.

Wenn sich dann weitere Fragen ergeben, einfach mal hier in der Hubzilla KnowledgeDB nachschauen.

Gibt es eine App?

Jein…

Also grundsätzlich benötigt man keine. Man kann auf dem mobilen Endgerät einfach im Webbrowser den Hub aufrufen. Das responsive Design erlaubt eine ordentliche Bedienung.

Allerdings gibt es für Android eine ältere App, die aber auch heute noch sehr gut funktioniert. Man findet sie z.B. bei F-Droid unter dem Namen Nomad. Ich verwende sie noch immer, wenn ich mal (was selten ist) auf dem Smartphone mit Hubzilla arbeiten möchte.

einfein01


Zu 4.:

Die “Links für neue Mitglieder” kann man einfach abstellen. Dafür im Hauptmenü (oben links das Profilfoto) auf “Einstellungen” klicken.

einfein02

Die “Anzeige-Einstellungen” wählen.

einfein03

Dann auf “Inhaltseinstellungen” klicken.

Den Schalter neben “Links für neue Mitglieder” auf “nein” stellen und “Abschicken”.

einfein04

Zu 5.:

ActivityPub ist das gemeinsame Protokoll im Fediverse. Es muss bei Hubzilla eingeschaltet werden, um auch mit (nahezu) jedem Nutzer im Fediverse interagieren zu können.

Der öffentliche Beitragsstream ist ebenfals nicht als Standard eingeschaltet. Ich empfehle, dies zu tun, um einen Stream “mit Leben” zu haben, von welchem aus man sich mit anderen Nutzern verbinden kann.

Das “Einschalten” ist einfach, wenn man weiß wie. Deshalb erkläre ich es hier kurz.

Man wählt im App-Menü ganz unten den Eintrag “+ Apps”.

einfein05

Auf der erscheinenden Seite klickt man in der linken Seitenleiste auf “Verfügbare Apps”.

einfein06

Nun auf den Button “⏷ Installieren” neben “ActivityPub-Protokoll” klicken… und dann noch auf den Button “⏷ Installieren” neben “Öffentlicher Beitrags-Stream”.

Erledigt!

Einstellungen

Einstellungen

Hubzilla erlaubt vielfältige Einstellungen zu Verhalten, Optik, Features,Kanälen etc. Sie erreichen die meisten Einstellungen über das Hauptmenü, wo Sie den Menüpunkt Einstellungen finden.

einst01

einst02

Es werden verschiedene Einstellungs-Kategorien zur Verfügung gestellt:

  • Konto-Einstellungen
  • Kanal-Einstellungen
  • Privacy-Einstellungen
  • Anzeige-Einstellungen
  • sofern Klone des eigenen Kanals existieren: Klon-Adressen verwalten

Befinden Sie sich in einer App-Ansicht, ist ein neben dem Hauptmenü ein kleines Zahnrad (⚙)zu sehen,über welches Sie die Einstellungen für die jeweilige App vornehmen können, sofern die App solche bietet.

Außerdem gibt es noch verborgene Einstellungen

  • Zusätzliche Funktionen

welche Sie jedoch nicht über das Menü oder ein Icon erreichen können.

Einstellungen für den Beitragseditor findet man, indem man den Editor selbst öffnet. Im eigentlichen Textfeld befindet sich rechts oben ein Zahnrad-Overlay gear, auf das man Klicken muss.

einst25

Einstellungen für Konversationen erreicht man über das Beitrags-Menü (⋮) rechts unten an jedem Beitrag. Klickt man auf das Symbol, öffnet sich ein Menü, in welchem man den Eintrag “Konversationsmerkmale” findet, welcher zu den Konversations-Einstellungen führt.

einst26


Konto-Einstellungen

Mit den Konto-Einstellungen können Sie die Daten Ihres Accounts ändern.

einst03


Kanal-Einstellungen

Rufen Sie die Einstellungen über den Menüeintrag auf, so werden als Standard die Kanal-Einstellungen gezeigt. Die Grundeinstellungen dienen dazu, die Eigenschaften und Funktionen des aktuell ausgewählten (genutzten) Kanals einzustellen. Neben der Kanalrolle können Sie hier auch den Standard für automatisch erstellte Verzeichnisse in der Cloud (diese werden z.B. erzeugt, wenn Sie in einem Beitrag ein Bild als Anhang hochladen) festlegen.

Sie können außerdem den Verfallszeitraum für importierte Inhalte anderer Kanäle festlegen und diesen Import über zwei Filter regeln.

einst04

Die Benachrichtigungs-Einstellungen erlauben es, ganz genau festzulegen, ob man über bestimmte Ereignisse und Vorgänge benachrichtigt wird. Und ob die Benachrichtigung auch per E-Mail erfolgen soll.

einst05


Privacy Einstellungen

In den Privacy-Einstellungen können Sie festlegen, ob Ihre eigenen Beiträge durch Suchmaschinen indiziert werden dürfen, ob Sie Kontaktanfragen automatisch (ohne manuelle Genehmigung) akzeptieren, ob alle Nachrichten in denen Sie erwähnt werden, automatisch akzeptiert werden, ob Kommentare von Nutzern, die nicht zu Ihren Kontakten gehören, zur Moderation (freigeben / verwerfen) gestellt oder gelöscht werden und ob Sie OCAP-Zugriff erlauben.

einst06


Anzeige-Einstellungen

Mit den Anzeige-Einstellungen kann das Design des Kanals eingestellt werden. Überdies kann in gewissen Grenzen festgelegt werden, welche Inhalte dargestellt werden.

In den Design-Einstellungen kann man aus den installierten Themes auswählen und dein Design-Schema für das Thema festlegen.

einst07

Mit den Benutzerdefinierten Design-Einstellungen ist es möglich, das Farbschema den eigenen Vorstellungen anzupassen und Eckenradien, Standardgrößen sowie Standardmaße für Avatare festzulegen. Es werden als Standard zunächst die vereinfachten Einstellungen angezeigt, mit denen es nur möglich ist, den dunklen Modus festzulegen, eine schmale Navigationsleiste zu wählen, sowie die Breite des Inhaltsbereichs und die Schriftgröße.

einst08

Wenn Sie den Schalter “Erweiterte Einstellungen anzeigen” auf “Ja” stellen und die Auswahl absenden, werden die erweiterten Einstellungen angezeigt, mit denen man Farben, Avatarmaße und Hintergrundbilder festlegen kann.

einst09

Mit den Inhalts-Einstellungen lassen sich verschiedene Parameter auswählen (z.B. die Zeit bis zur Aktualisierung der Ansicht) und die Anzeige der “Links für neue Mitglieder”, die bei neu angelegten Kanälen angezeigt werden, auszuschalten.

einst10


Klon-Adressen verwalten

Existieren vom aktuellen Kanal Klone auf anderen Hubs, so wird als weiterer Menüeintrag “Klon-Adressen verwalten” angezeigt. Damit können Sie festlegen, auf welchem Hub der der Hauptkanal (primärer Kanal) liegt (das legt auch den Teil des Handles hinter dem “@” fest).

Außerdem kann man Klone an dieser Stelle löschen. Für Kanäle auf fremden Servern empfiehlt es sich allerdings, den Kanal auf dem eigentlichen Hub zu löschen. Das Löschen aus der Klon-Verwaltung sollte nur genutzt werden, wenn der Hub des Klons nicht mehr existiert.

einst11


Zusätzliche Funktionen (verborgene Einstellungen)

Die Einstellungen “Zusätzliche-Funktionen” sind in der Gesamtheit weder über das Menü, noch über ein Symbol/Icon erreichbar. Sämtliche einzelnen Funktions-Einstellungen kann man aber auch in der jeweiligen App über das Zahnrad neben dem Hauptmenü (Avatar-Bild) erreichen.

Es handelt sich um Einstellungen zu weiteren Funktionen in allen mögliche Bereichen von Hubzilla. Um die Einstellungen aufzurufen, muss man im Browser an die URL des Hubs /settings/features anhängen, also z.B. https://klacker.org/settings/features.

Mit ein wenig Handarbeit kann man die Funktions-Einstellungen über einen Eintrag im App-Menü bzw. über ein Icon in der Navigationsleiste zugänglich machen: Funktions-Einstellungen (settings/features) verfügbar machen

einst14

Die Voreinstellungen für sämtliche dieser Optionen werden vom Administrator des Hubs vorgenommen. Diese Voreinstellung kann durch den Nutzer in den “Zusätzlichen Funktionen” überschrieben werden.

Adlerdings hat der Administrator bei jeder Option auch die Möglichkeit, die Voreinstellung gegen Änderung zu sperren. Der Nutzer kann den Schalter für die Option zwar weiterhin umlegen, die Auswahl wird aber nicht gespeichert, sondern die Option wieder auf die Voreinstellung zurückgesetzt.

einst15 einst16 einst17 einst18 einst19 einst20 einst21 einst22 einst23 einst24

Erste Schritte

Es ist sinnvoll, gleich nach Registrierung und dem Erstellen des ersten Kanals das “App-Menü” (⋮) zu konfigurieren.

Um Apps zu installieren und im App-Menü anzuzeigen, klickt man dort auf „+ Apps“ ganz unten im Menü.

eschr01

Hier gibt es nun zwei Bereiche:

Verfügbare Apps

Unter diesem Punkt findet man sämtliche verfügbaren Apps. Die bereits installierten Apps (die man unter „Installierte Apps“ finden kann) können per Klick aktualisiert werden, sofern eine Aktualisierung vorliegt. Noch nicht installierte Apps kann man hier installieren, so dass sie unter „Installierte Apps“ erscheinen und dort ins Menü gebracht, gepinnt und ggf. konfiguriert werden können.

eschr02

Installierte Apps

Um bereits installierte Apps in das Menü einzufügen, klickt man auf den „Stern“ für die jeweilge App, so dass er sich gelb färbt. Nun ist die App im Menü verfügbar. Man sieht bei den Apps auch noch ein „Pin-Nadel-Symbol“. Ein Klick darauf sorgt dafür, dass die App als Icon in der Headerleiste erscheint. Das kann für häufig genutzte Funktionen (z.B. „Stream“ etc.) sinnvoll sein. Einige Apps weisen auch ein „Zahnrad-Symbol“ auf. Ein Klick auf dieses führt zu den Einstellungen der jeweiligen App.

eschr03

eschr04

Ganz wichtig, wenn man voll am Fediverse teilnehmen möchte, ist es, hier das “ActivityPub-Protokoll“zu installieren und zu aktivieren. An den Standardenstellungen sollte man zunächst nichts verändern.

eschr05

Wer auch Diaspora*-Nutzern folgen möchte, der installiert die App “Diaspora-Protokoll”. Diese App sollte konfiguriert werden. Wichtig ist, eine Reihe von Schlüselwörten anzugeben, denen man bei Diaspora folgen möchte.

eschr06

Empfehlenswert ist es, “Dateien” und “Fotos” zu aktivieren (falls nicht schon so vorkonfiguriert). Damit gelangt man schnell zum Cloudspeicher bzw. zu den Fotoaben.

Ebenfalls sinnvoll ist es, die “Lesezeichen” zu aktivieren. Man kann nämlich jede Ressource als Lesezeichen ablegen und hat auch die Möglichkeit, die Lesezeichen mit anderen Benutzern zu teilen.

Möchte man (sofern der Hub es ermöglicht) Webseiten oder ein Wiki erstellen, sollte man “Webseiten” und “Wiki” aktivieren.

Über den Menüpunkt “Public stream” wird einem der öffentliche Stream angezeigt (im Gegensatz zum eigenen Grid / zur eigenen “Pinnwand”).

Wer Hubzilla (auch) deswegen gewählt hat, weil man dort ausführliche Beiträge schreiben, also echtes Makroblogging betreiben kann, dem empfehle ich die App “Artikel” zu installieren. Artikel sind gut für ausführlichere Beiträge geeignet, erlauben ein Summary und die Definition eines Links, um den Artikel besser teilen oder auch an anderer Stelle im Internet zu verlinken.

eschr07

Um andere Nutzer zu blockieren empfiehlt sich, die App “Superblock” ebenfalls zu installieren.

Einstellungen

Weitere Einstellungen können im Kanalmenü (links oben) vorgenommen werden. Hier sollte man sich alle Möglichkeiten einmal anschauen und Hubzilla nach den eigenen Vorstellungen anpassen. Die meisten Punkte sind selbsterklärend.

eschr08

eschr09

Profil-Einstellungen

Wichtig, um möglichst auch von anderen Nutzern gefunden zu werden, ist es das eigene Profil sinnvoll auszufüllen. Dabei sollte man aber immer auch überlegen, was man von sich preisgeben möchte.

Hierfür wählt man im Hauptmenü (links oben) “Profil bearbeiten”.

eschr10

Oben rechts in der Eingabemaske befindet sich ein Button “Profilwerkzeuge”, der ein weiteres Menü öffnet, mit dem man sein Profilbild und sein Titelbild (Banner) festlegen und weitere Informationen zu seinem Profil hinzufügen kann. Es ist außerdem möglich, sein Profil zu ex- und importieren.

eschr11

Verbindungen

Damit der Stream nicht so schrecklich leer bleibt und man sich mit anderen Benutzern austauschen kann, muss man sich mit anderen Kanälen verbinden. Man wählt dazu im „App-Menü“ den Punkt „Verbindungen“.

Hier kann man sich direkt mit einem Kanal verbinden, wenn man die Kanal-Adresse kennt (sieht aus, wie eine eMail-Adresse). Diese gibt man in das Feld „Neue Verbindung hinzufügen“ und auf das Plus-Symbol klickt. Man kann aber auch nach geeigneten Kanälen suchen, indem man Suchbegriffe in das Feld „Finde Kanäle“ eingibt und auf das Lupen-Symbol klickt.

eschr12

eschr13

eschr14

eschr15

Eine weitere Möglichkeit, interessante Kanäle zum Verbinden zu finden, ist das Durchstöbern des Kanalverzeichnisses („App-Menü“ -> „Verzeichnis“). Dabei kann man das Verzeichnis auf die Kanäle, die auf dem eigenen Heimat-Hub existieren, beschränken, oder das gesamte öffentliche Verzeichnis anschauen. Hat man einen Kanal gefunden, mit dem man sich verbinden möchte, klickt man auf die Schaltfläche „+ Verbinden“.

eschr16

Schließlich kann man auch den öffentlichen Beitragsstream anschauen. Findet man dort einen Nutzer, dem man gerne folgen möchte (sich mit ihm “verbinden”), klickt man auf das Handle des Nutzers. Man hat dann die Möglichkeit, sich über einen Button mit ihm zu verbinden.

Kanaleinstellungen

Ebenfalls wichtig sind die Kanaleinstellungen, die man im Hauptmenü (oben links) unter “Einstellungen” erreichen kann.

eschr17

eschr18

Hier kann man auch die “Kanalrolle” festlegen:

  • Öffentlich
  • Persönlich
  • Community Forum
  • Benutzerdefiniert

eschr19

Anzeigeeinstellungen

Hat man sich frisch registriert und einen Kanal erstellt, so erscheinen in der rechten Seitenleiste Hinweise, was man anfangs alles erledigen sollte (Links zu den entsprechenden Seiten). Irgendwann braucht man diese Hinweise nicht mehr. Das lässt sich bei den Kanal-Einstellungen unter dem Punkt Anzeige-Einstellungen -> Inhaltseinstellungen abschalten.

eschr20

Dort legt man den Schalter bei “Links für neue Mitglieder” um, so dass die Funktion ausgeschaltet ist.

eschr21

Erwähnung durch Fremde

Die Standard-Einstellung von Hubzilla ist, dass Beiträge Dritter, mit welchen man nicht verbunden ist, in denen man selbst erwähnt wird, nicht in der Timeline angezeigt, also nicht akzeptiert werden. Damit beschränkt man den Empfang von Postings durch Erwähnung auf diejenigen Kanäle/Nutzer, mit welchen man verbunden ist.

Über die Einstellungen lässt sich der eigene Kanal aber auch so konfigurieren, dass man Postings auch von “Fremden” empfängt, also von Nutzern, die nicht in der Kontaktliste sind. Dies überschreibt die Standard-Berechtigungen für den Nachrichtenempfang.

Diese Einstellung lässt sich über “Einstellungen” (Hauptmenü oben links) -> “Privacy-Einstellungen” -> “Accept all messages which mention you This setting bypasses normal permissions” vornehmen.

F

Filter für Verbindungen

Sofern das Feature “Filter für Verbindungen” beim eigenen Hub aktiviert ist (durch den Admin), kann man für jede einzelne Verbindung festlegen, dass Beiträge mit bestimmten Inhalten nicht, oder dass nur Beiträge mit bestimmten Inhalten in den Stream importiert werden.

Die Filtereinstellungen erreicht man in der App Verbindungen unter “Bearbeiten”. Hier findet sich der Tab “Filter für den Inhalt”.

verbfilt01

verbfilt02

verbfilt03

Möchte man z.B. von einer bestimmten Verbindung keine Wiederholungen (Repeats/Boosts) sehen, gibt man im Feld “Beiträge mit diesem Text nicht importieren”

?verb == Announce

ein.

Oder um das Anzeigen von weitergesagten Beiträgen (Shares) zu unterbinden schreibt man in dieses Feld

?body ~= [/share]

Für jeden Filter verwendet man eine Zeile. Es können #Tags oder @Kategorien ausgefiltert werden. Man kann /Reguläre Ausdrücke/ verwenden oder auch Sprachcodes um Beiträge in bestimmten Sprachen zu filtern (lang=xx).

Hat man seine Filter erstellt, auf den Button “Absenden” klicken, um sie zu aktivieren.

Folgen / Follower

Folgen / Follower

Während bei vielen Fediverse-Diensten zwischen dem eigenen Folgen von anderen Nutzern und dem Gefolgtwerden (also die eigenen Follower) unterschieden wird, sind Verbindungen bei Hubzilla immer ein “beidseitiger Vertrag”. Das bedeutet, dass ein anderer Nutzer unserem Kanal nur “folgen” kann, wenn wir die Verbindung genehmigen (je nach Einstellung automatisch oder nach Benachrichtigung per Hand).

Haben wir aber selbst einen “Fremdkanal” (ein Fediverse-Nutzer, der einen anderen Dienst als Hubzilla, höchstwahrscheinlich auf Basis von ActivityPub, verwendet) als Kontakt zugefügt, so “folgen” wir ihm, wir wissen aber nicht, ob er uns auch “zurück folgt”, also für uns ein “Follower” ist. Einen Anhaltspunkt dafür kann der runde, farbige Indikator im Profilbild liefern. Ist er rot, so folgt uns selbst der Kontakt nicht. Ist er gelb oder grün, so folgt er uns. Beim Mouseover (wenn wir mit dem Mauszeiger über den Punkt fahren und dort verharren) werden die Rechte angezeigt, die uns der Fremdkanal einräumt.

Allerdings ist der Punkt keine Garantie dafür, dass uns der Fremdkanal tatsächlich aktuell folgt. Entfolgt ein solcher Fremdkanal uns nämlich, ändert sich die Farbe nachträglich nicht wieder zu rot.

Wie kann man einen Kanal als Follower zulassen, ohne ihm selbst zu folgen?

Nun kommt oft die Frage auf, wie wir als Hubzilla-Nutzer es denn verwirklichen können, dass uns ein Fremdkanal “folgt”, wir ihm aber faktisch nicht “zurück folgen”. Ohne unser Zutun geht das mit Hubzilla nicht. Der Kontakt ist auf jeden Fall in unserer Kontaktliste.

Aber Hubzilla wäre nicht Hubzilla, wenn es nicht doch eine Funktion gäbe, die genau das Verhalten ermöglicht, das wir uns wünschen. Verwirklichen können wir das mittels der Kanalrolle.

Angenommen wir haben einen Kontakt zu einem Fremdkontakt mit dem Namen “EinFant”. Dieser empfängt nun Beiträge, die wir veröffentlichen (sofern wir die Sichtbarkeit des Inhalts nicht selbst einschränken) in seiner Timeline. Haben wir für die Kanalrolle “Öffentlich oder “Privat” gewählt, empfangen wir nun auch Beiträge von EinFant in unserem Stream. Nun ist es uns durchaus recht, dass EinFant uns folgt, also unsere Beiträge sehen kann, wir selbst stehen aber nicht auf das, was er selbst veröffentlicht. Wir möchten also erlauben, dass er “Follower” ist, wollen ihm selbst aber nicht “zurück folgen”.

Dafür müssen wir jetzt lediglich eine Kontaktrolle anlegen, mit der wir bestimmten Kontakten erlauben, unsere Beiträge zu empfangen, von ihnen selbst aber nichts annehmen.

Die Kontaktrolle könnten wir z.B. “nur Follower” nennen.

Während die Standard-Kontaktrolle zusätzlich zu den Rechten aus der Kanalrolle auch “Kann mir die Beiträge aus seinem Kanal schicken” aktiviert ist, wird beim Anlegen einer neuen Kanalrolle zunächst einmal alles nicht gewährt, was nicht von der Kanalrolle geerbt wurde. Und hier lassen wir das entsprechende Kästchen ohne Haken.

follow01

Wenn nun künftig eine Verbindungsanfrage eines Fremd-Kontakts hereinkommt und wir dem Fremd-Kontakt lediglich das Folgen erlauben, ihm selbst aber nicht folgen möchten, dann weisen wir ihm einfach die Kontaktrolle “nur Follower” zu.

Stellen wir im Nachhinein fest, dass wir einem Fremd-Kanal nicht folgen wollen, er uns aber weiter folgen können soll, bearbeiten wir den Kontakt ändern seine Kontaktrolle in “nur Follower”.

Foren

Foren sind Kanäle, die von der Funktion einem normalen Internet-Forum bzw. Gruppen aus anderen Sozialen Netzwerken ähneln. Wenn man sich mit einem Forum verbindet, hat man drei Möglichkeiten, Beiträge im Forum zu posten:

  • Durch Wall-zu-Wall-Posting… hierzu ruft man den Kanal (das Forum) auf und schreibt den Beitrag durch Klicken auf „Teilen“ ganz oben im Foren-Stream. Der Beitrag erscheint im Forum. for01 for02
  • Durch ein normales Posting, bei dem man die Berechtigungen auf den Forenkanal beschränkt. for03 for04 for05
  • Mit „@!-Erwähnung“… das bedeutet, man schreibt in seinen Beitrag, der im Forum landen soll ein Ausrufezeichen, dem der Kanalname (Forenname) direkt folgt. Beispiel: Man möchte im (fiktiven) Forum „Hubzillafans“ einen Beitrag posten. Man erzeugt einen neuen Beitrag (direkt aus der Stream-Ansicht oder mit der App „Beitrag schreiben“. Im Beitragstext „erwähnt“ man nun das Forum durch @!Hubzillafans Der Beitrag wird nach Absenden im Forum erscheinen. for06 for07

Die Teilnahme an Hubzilla-Foren ist auch mit einem (streams)-Kanal, einem Forte-Kanal, einem Misskey- (womöglich auch mit einem forkey-), einem Mitra- und einem Mastodon-Account möglich.

Dabei ist für Nutzer dieser Dienste zu beachten:

Von Mastodon, Misskey und Mitra aus, kann man neue Themen nur starten, indem man das Posting auf “privat” setzt und das Forum per normaler Erwähnung (also @<forum>@<hubzilla-hub>) adressiert (ohne das “!”). Beim Antworten auf vorhandene Threads braucht man nichts zu beachten. Einfach kommentieren.

Derzeit ist es von (streams) und Forte aus nicht möglich, einen Thread per Wall-to-Wapp Posting zu starten. Hier empfiehlt sich die Erwähnung mit “@!”. Das funktioniert.


Ob auch Akkoma/Pleroma oder GoToSocial funktionieren, kann ich in Ermangelung eines Accounts nicht beurteilen.

Mit Friendica scheint es derzeit nur mit Antworten, Kommentaren zu Foren-Postings zu funktionieren. Neue Postings im Forum werden bei Friendica angezeigt und man kann Kommentieren bzw. Kommentare anderer lesen. Ein Themenstart ist derzeit anscheinend nicht möglich.

Forums

Forums are channels that work similarly to normal internet forums or groups from other social networks. When you connect to a forum , you have three options for posting in the forum:

  • By wall-to-wall posting… to do this, you open the channel (the forum) and write your post by clicking on ‘Share’ at the very top of the forum stream. The post appears in the forum. for01 for02
  • By posting normally, with permission rights restricted to the forum channel. for03 for04 for05
  • With ‘@!-Mention’… that means you write in your post, which should end up in the forum, an exclamation mark, which is immediately followed by the channel name (forum name). Example: You want to post a post in the (fictitious) forum ‘Hubzillafans’. You create a new post (directly from the stream view or with the app ‘Write post’. Now mention the forum in the post text by using @!Hubzillafans. The post will appear in the forum after you send it. for06 for07

Participation in Hubzilla forums is also possible with a (streams) channel, a Forte channel, a Misskey (possibly also with a forkey), a Mitra and a Mastodon account.

Users of these services should note the following:

From Mastodon, Misskey and Mitra, you can only start new topics by setting the posting to ‘private’ and addressing the forum by normal mention (i.e. @<forum>@<hubzilla-hub>) (without the ‘!’). When replying to existing threads, nothing needs to be observed. Just comment.

Currently, it is not possible to start a thread via a wall-to-wapp post from (streams) or Forte. In this case, mentioning someone with ‘@!’ works well.


Whether Akkoma/Pleroma or GoToSocial also work, I can’t say, as I don’t have an account.

With Friendica, it currently only seems to work with replies and comments on forum posts. New posts in the forum are displayed on Friendica and you can comment or read other people’s comments. It does not appear to be possible to start a new topic at present.

Fotos

Mit der App “Fotos” kann man seine Hochgeladenen Fotos verwalten und weitere Fotos hochladen.

fotos01

Bei Hochladen von Fotos kann man neue Alben anlegen und die Berechtigungen detailliert festlegen.

fotos02

Funktions-Einstellungen (settings/features) verfügbar machen

Funktions-Einstellungen (settings/features) verfügbar machen

Die Funktions-Einstellungen (Features) sind bei Hubzilla nicht einfach zu erreichen. Es gibt keinen Menüeintrag im Hauptmenü, keine Eintrag im Einstellungs-Menü und auch sonst nirgendwo ein kleines “Zahnrad”, mit welchem man zu diesen Einstellungen gelangen kann.

Aufrufen kann man sie nur, indem man an die URL des Hub die Zeichenkette settings/features anhängt.

features01

Hier nun ein kleiner “Ausflug”, mit welchem wir einen Menüeintrag im App-Menü (oder auch anpinnbar an der Navigationsleiste) erzeugen, über welchen wir die Funktions-Einstellungen erreichen können.

Dafür erstellen wir einfach ein App.

Keine Panik! Es muss nichts programmiert werden. Wir nutzen die Möglichkeit, mit Hubzilla eigene Apps zu erstellen, welche über eine URL zu erreichen sind. Es sind also keine speziellen Kenntnisse erforderlich.

Wir öffnen dafür die App-Verwaltung im App-Menü (ganz unten: “+ Apps”)

features02

und landen in der Liste mit den installierten Apps. Dort finden wir ganz oben einen Button “Apps verwalten”, auf den wir klicken.

features03

Auf der Verwaltungs-Seite, die nun erscheint, können wir alle im Kanal installierten Apps bearbeiten (besser Finger weg davon) und auch wieder für den Kanal deinstallieren (Papierkorb-Symbol).

Aber wir wollen ja eine eigene App erstellen. Und wieder ganz oben gibt es nun einen Button “Erstelle eine eigene App”,

features04

der zum App-Editor führt.

features05

Im App-Editor müssen wir für unsere Feature-Settings App nur wenige Felder ausfüllen.

Die App muss einen Namen erhalten (“Name der App”). Nennen wir sie “Funktionen”. Dann muss in das Feld “Ort (URL) der App” die URL für die Features-Settings eingetragen werden. Hier im Beispiel befinde ich mich auf meinem Hub Whoville mit der URL https://hub.hubzilla.hu. Die Funktions-Einstellungen sind also unter https://hub.hubzilla.hu/settings/features erreichbar.

In das Feld “Beschreibung” habe ich dann einfach “Zusätzliche Funktionseinstellungen”, damit in der App-Verwaltung klar ist, wozu die App dient.

Schließlich wäre es noch schön, wenn unsere App ein passendes Icon erhalten würde. Damit kann sie dann auch nur als Symbol in die Navigtionsleiste eingefügt werden und es sieht im App-Menü auch besser aus.

Dafür können wir ein Icon selbst erstellen, online vorhalten (z.B. in der eigenen Hubzilla-Cloud) und die URL des Icons in das Feld “URL zum Icon” eintragen. Ich halte es persönlich aber für besser, ein Icon zu verwenden, welches in Hubzilla selbst ohnehin schon zur Verfügung steht und welches sich perfekt in das Design der Icons anderer Apps und Funktionen einfügt.

Hubzilla verwendet grundsätzlich die Bootstrap-Icons. Und man kann sich nun eines dieser Icons aussuchen.

Ich habe mich für das Icon “tools” entschieden:

features06

Um diese Icon nun zu verwenden, tragen wir im Feld “URL zum Icon” einfach icon:tools ein.

features07

Ein Klick auf den Button “Absenden” und schon ist die App fertiggestellt.

Wir befinden uns wieder in der Liste mit den installierten Apps und finden unsere neue, selbst erstellte App jetzt auch in der Liste.

features08

Mit einem Klick auf das Sternchen-Symbol bringen wir nun die App noch ins App-Menü, wo wir sie nun jederzeit aufrufen können.

features09

Wer diese Einstellungen häufig aufrufen möchte (weshalb auch immer), kann sie, wenn er möchte, auch an der Navigationsleiste anpinnen.

features10

Fertig! Nun lassen sich die Funktions-Einstellungen ohne Tipperei im Adressfeld des Browsers einfach aufrufen (besonders interessant auch für diejenigen, welche Hubzilla auf dem mobilen Endgerät als Progressive Web App / PWA nutzen, die ja kein Adress-Feld zeigt).

features11

G

Gastzugänge

Möchte man Inhalte (z.B. Dateien aus der Cloud) für bestimmte Personen zugreifbar machen, obwohl diese über keinen Hubzilla-Account verfügen, aber ansonsten nicht für die Öffentlichkeit, so musste man früher mit Gastzugangstoken jonglieren.

In den aktuelleren Versionen von Hubzilla ist dies nun deutlich einfacher geworden.

Man arbeitet mit Gastzugängen. Wer mit einem solchen Gastzugang eingeloggt ist, kann alles sehen, was öffentlich zugänglich ist und zusätzlich alles, was der Zuteiler des Gastzugangs für diesen speziellen Gastzugang freigegeben hat.

Angenommen wir hätten eine “geheime” Grafik mit dem Dateinamen “geheimesgeheimnis.jpg” in unsere Cloud hochgeladen und würden diese Datei einem Nutzer, der keinen Hubzilla-Account hat, zugänglich machen wollen.

gast01

Zu diesem Zweck legen wir dafür einen Gastzugang an. Das geschieht mit der App (App-Menü ⋮) “Gastzugang”.

gast02

Es wird ein Eingabeformular für die Gastzugangsdaten angezeigt. Hier denkt man sich einen temporären Benutzernamen aus. Ein Passwort wird vom System automatisch erstellt. Diese Daten (Name / Passwort) muss man demjenigen, dem man Zugang gewähren möchte mitteilen.

gast03

Außerdem gibt man hier ein “Verfallsdatum” für den Gastzugang ein (oder lässt das Feld leer, für zeitlich unbegrenzten Zugang). Nach Ablauf der Frist wird der Gastzugang automatisch gelöscht.

Solange man noch keine eigenen Rollen definiert hat, ist für die Rolle “Standard” voreingestellt. Das kann man so auch belassen, sofern man nichts besonderes vorhat.

Nun klickt man auf “Absenden” und der Gastzugang ist erstellt.

Jetzt öffnet man im App-Menü die App “Dateien” und lädt dort die Datei hoch.

gast04

Anschließend öffnet man das Kontextmenü (︙) der Datei und wählt dort “Berechtigungen anpassen). Unter der Dateiliste erscheint nun ein kleines Vorhangschloss-Symbol, auf welches man klickt. Es ist jetzt möglich, die Zugangsberechtigungen aus einer Reihe von Standard-Berechtigungen auszuwählen. Für unsere Zwecke wählen wir “Benutzerdefinierte Auswahl”.

gast05

gast06

gast07

gast08

In der erscheinenden Gruppen- und Kontaktliste erscheint unser gerade angelegter Gastzugang. Diesem räumt man die Zugriffsberechtigung ein “Klick auf “Erlauben”) und man schließt anschließend die Liste.

gast09

gast10

Ist das erledigt, klickt man auf den Button “Absenden” neben dem Vorhangschloss-Symbol (das jetzt einen geschlossenen Bügel zeigt) und ist fertig.

gast11

Die URL für die Datei wird angezeigt, wenn man mit dem Mauszeiger über den Dateinamen fährt.

gast12

Bei den jetzt gewählten Einstellungen können nur wir selbst und der Gastzugang auf die Datei zugreifen. Nicht bei Hubzilla angemeldete Nutzer und sogar Nutzer mit einem eigenen Account bei Hubzilla können die Datei nicht sehen.

gast13

gast14

Wenn sich nun der Nutzer, der über die Zugangsdaten für den Gastzugang verfügt, mit diesen einloggt, dann wird ihm die Datei zugänglich gemacht.

gast15

gast16

gast17

Falls man den Gastzugang irgendwann auch schon vor dem Ablaufdatum löschen möchte, klickt man im App-Menü auf “Gastzugang”. In der linken Seitenleiste werden die Gastzugänge aufgelistet. Hier wählt man dann den zu löschenden Gastzugang aus und klickt in der erscheinenden Maske auf “Löschen”.

gast18

gast19

Guest access

If you want to make content (e.g. files from the cloud) accessible to certain people, even though they do not have a Hubzilla account, but otherwise not to the public, you used to have to juggle with guest access tokens.

In the more recent versions of Hubzilla, this has now become much easier.

You work with guest accounts. Anyone who is logged in with such a guest account can see everything that is publicly accessible and also everything that the person assigning the guest account has authorised for this particular guest account.

Let’s assume we have uploaded a ‘secret’ graphic with the file name ‘secret.png’ to our cloud and want to make this file accessible to a user who does not have a Hubzilla account.

secret

We create a guest account for this purpose. This is done with the app (app menu ⋮) ‘Guest access’.

guest01

An input form for the guest access data is displayed. Here you can create a temporary user name. A password is created automatically by the system. This data (name / password) must be communicated to the person to whom you wish to grant access.

guest02

You can also enter an ‘expiry date’ for guest access here (or leave the field blank for unlimited access). After the expiry date, the guest access is automatically deleted.

As long as you have not yet defined your own roles, the default setting for the role is ‘Standard’. You can leave this as it is unless you have any special plans.

Now click on ‘Submit’ and the guest account is created.

Now open the ‘Files’ app in the app menu and upload the file there.

guest03

Then open the context menu (︙) of the file and select ‘’Adjust permissions‘’.) A small padlock symbol now appears below the file list, which you click on. It is now possible to select the access authorisations from a range of standard authorisations. For our purposes, we select ‘Customised selection’.

guest04

guest05

guest06

guest07

Our newly created guest account appears in the group and contact list that appears. Grant it access authorisation (click on ‘Allow’) and then close the list.

guest08

Once this is done, click on the ‘Submit’ button next to the padlock symbol (which now shows a closed shackle) and you’re done.

guest09

The URL for the file is displayed when you move the mouse pointer over the file name.

guest10

With the settings selected now, only we ourselves and the guest account can access the file. Users who are not logged in to Hubzilla and even users with their own Hubzilla account cannot see the file.

guest11

If the user who has the access data for the guest access logs in with this data, the file is made accessible to them.

guest12

guest13a

guest13

If you want to delete the guest account at some point before the expiry date, click on ‘Guest account’ in the app menu. The guest accounts are listed in the left-hand sidebar. Select the guest account to be deleted and click on ‘Delete’ in the screen that appears.

guest14

guest15

Das Grid

Das Grid

Das globale Netzwerk von Hubs, die mit Hilfe des Zot-Protokolls (Zot6/Nomad) Informationen untereinander austauschen wird als Grid bezeichnet. Dazu gehören auch Hubs, die mit der Software (streams) betrieben werden.

Dreiecksbeziehungen... oder: Wie sich Grid-only-Kanäle verhalten

Dreiecksbeziehungen… oder: Wie sich Grid-only-Kanäle verhalten

Kürzlich kam die folgende Frage auf:

Angenommen, ich betreibe einen Grid-only-Kanal (GoK), also einen Kanal, bei welchem bewusst das ActivityPub Protokoll (AP) nicht aktiviert ist. Und nun postet eine der Verbindungen (natürlich ein Hubzilla-Kanal, denn nur mit denen kann man ja verbunden sein) einen Beitrag. Die Verbindung ist aber ein Fediverse-Kanal, hat also das ActivityPub Protokoll aktiviert und selbst auch Verbindungen zu ActivityPub Accounts.

Völlig klar: Das Posting der Verbindung landet nun auch im Stream meines GoK.

Aber wie ist es, wenn eine Verbindung des Fediverse-Kanals, z.B. ein Mastodon-Nutzer auf das Posting antwortet? Sehe ich diesen Kommentar, obwohl mein GoK ja gar kein AP kann? Und kann ich, falls dieser AP-Kommentar in meinem Stream antwortet, selbst auch auf diesen Kommentar antworten? Und schließlich: Wenn das auch geht, wer sieht dann meinen Kommentar auf die AP-Antwort?

Nun, die Frage konnte ich auch nicht aus der Hüfte raus beantworten. Mir ist das noch nicht untergekommen, weil meine einzigen GoK halt ausschließlich nicht-öffentliche Foren-Kanäle sind und dort solche Ereignisse nicht vorkommen.

Also habe ich mit zotanode (Hubzilla only), der ein GoK ist, ein entsprechendes Experiment durchgeführt. Und es ließ sich folgendes Verhalten feststellen:

Ist ein GoK mit einem Hubzilla-Kanal verbunden, welcher auch AP aktiviert hat (Fediverse-Kanal), erscheinen selbstverständlich Posting des Fediverse-Kanals auch im Stream des GoK.

Kommentiert nun ein fremder Account eines Fediverse-Dienstes dieses Posting, dann erscheint der Kommentar auch im Thread zum Ausgangsposting beim GoK. Der Inhaber des GoK kann also AP-Beiträge sehen, obwohl er gar kein AP unterstützt.

Der GoK kann sogar die im Thread nun angezeigte Antwort des AP-Accounts selbst kommentieren.

Dieser Kommentar erscheint – logisch – im Thread im Stream des GoK und – ebenfalls logisch – auch im Stream des Fediverse-Kanals (also des Verfassers des Ausgangs-Postings) als Antwort auf den AP-Kommentar.

Aber: Die Antwort des GoK auf den AP-Kommentar erscheint NICHT in der Timeline des AP-Accounts.

Also auf den Punkt gebracht:

Grid-only-Hubzilla-Kanäle finden in ihrem Stream durchaus auch Inhalte, die von ActivityPub-Diensten stammen, sofern eine ihrer Hubzilla-Verbindungen AP erlaubt und selbst einen Kommentar von einem AP-Dienst empfängt.

Solche Antworten aus dem Fediverse sind für den GoK nicht nur im Stream sichtbar, sie können durch den GoK sogar kommentiert werden. Diesen Kommentar eines bekommt aber nur der verbundene Hubzilla-Kanal zu Gesicht, nicht aber der AP-Account, dessen Antwort im Thread kommentiert wurde. Kommentare des GoK auf das Ausgangsposting sind hingegen auch für den AP-Account sichtbar. Also: Kommentare eines GoK sieht der AP-Account, Antworten eines GoK auf Kommentare eines AP-Accounts sieht der AP-Account nicht.

Gruppen / Foren / Communitys

Gruppen / Foren / Communitys

Mit Hubzilla lassen sich Konversationsgruppen im Stil von den ehemals bekannten und beliebten “Kreisen” des Google-Plus-Netzwerks, oder auch in der Art von Gruppen in Facebook sehr gut verwirklichen.

Es gibt dafür zwei verschiedene Methoden, die sich in Art, Funktion und Praktikabilität aber deutlich unterscheiden: Privacy Gruppen und Foren-Kanäle.

Mit Privacy Gruppen

Eine nicht-öffentliche Kommunikation innerhalb einer bestimmten Benutzergruppe kann man recht einfach aus seinem Kanal heraus mit der App “Privacy Gruppen” realisieren.

Privacy Gruppen erfüllen bei Hubzilla eine Dreifach-Funktion. Die für den hier behandelten Zweck Funktion ist das Nutzen zur Kommunikation in geschlossenen Gruppen.

Die Funktionalität von Privacy Gruppen ist bei jedem Kanal ohnehin bereits vorhanden.Trotzdem muss man die App “Privacy Gruppen file-lockinstallieren, weil nur diese die Möglichkeit bietet, eigene Privacy Gruppen zu erstellen und dieser dann auch Verbindungen hinzuzufügen.

Ist die App installiert und im App-Menü (oder sogar angepinnt in der Navigationsleiste), kann man sie Aufrufen.

Es wird ein leeres Formular zum Anlegen einer Privacy Gruppe angezeigt.

gfc01

In der Seitenleiste werden außerdem die bereits existierenden Privacy Gruppen angezeigt.

Wählt man dort eine aus, wird sie im Inhaltsbereich (Mitte) mit ihren Parametern angezeigt. Außerdem werden die Verbindungen, die nicht in der Gruppe sind, in der linken Spalte unter dem Parameterbereich angezeigt, in der rechten Spalte erscheinen alle Verbindungen, die in dieser Gruppe sind.

gfc02

Bei der Anzeige (zum Bearbeiten) einer Gruppe erscheint in der Seitenleiste ein zusätzlicher Link “+ Neue Gruppe anlegen”, mit welchem man erneut ein neues leeres Formular angezeigt bekommt.

Möchte man eine Privacy Gruppe erstellen, muss man dieser natürlich einen Namen geben. Außerdem kann man festlegen, ob andere Kanäle im Fediverse sehen können, wer in dieser Gruppe Mitglied ist. Man kann auch eine Gruppe festlegen (nur eine natürlich) in welche standardmäßig gepostet wird. Legt man das für eine Privacy Gruppe fest, dann wird, sofern man es nicht anders bestimmt, jedes Posting nun nur noch an die Mitglieder der Gruppe geschickt. Und das gilt auch für alles andere, was wir Teilen, also z.B. Bilder, Wiki-Seiten etc.

Schließlich kann man noch festlegen, ob jeder neue Kontakt automatisch (auch) dieser Gruppe zugewiesen wird.

Um eine Art Community zu bilden, sollten alle drei Schalter ausgeschaltet bleiben.

Ich habe hier als Beispiel einmal die Privacy Gruppe “Meine Community” erzeugt und werde nun einige Verbindung in die Gruppe aufnehmen. Dies geschieht mit einem simplen Klick auf die Verbindung. Nach dem Klick, wechselt die Verbindung die Seite, landet also entweder in der Spalte mit den Mitgliedern oder in der Spalte mit den Verbindungen, die nicht der Gruppe angehören.

gfc03

Um nun in diese Privacy Gruppe zu posten (also um ein Posting ausschließlich an die Mitglieder der Gruppe zu verteilen), wählt man im Beitragseditor in den Berechtigungs-Einstellungen die entsprechende Privacy Gruppe aus und schickt dann sein Posting ab.

gfc04

Das Posting erreicht nun nur die Verbindungen, die in der Gruppe sind.

gfc05

Wenn nun einer der Kontakte antwortet, also einen Kommentar zu dem Posting abschickt, so wird dieses auch nur an alle geschickt, die in der Privacy Gruppe enthalten sind. Und natürlich an den “Besitzer” der Privacy Gruppe, also denjenigen, der das Start-Posting abgeschickt hat.

Damit ließe sich also eine Gruppen- bzw. Foren- oder Community-Funktionalität realisieren.

Allerdings gibt es dabei eine Einschränkung!

Um eine echte Gruppe zu realisieren, ist es erforderlich, dass jeder, den wir selbst in diese Privacy Gruppe aufgenommen haben, selbst ebenfalls eine Privacy Gruppe erstellt, in welcher alle Beteiligten enthalten sind, um auch in diese geschlossene Gemeinschaft ein Start-Posting zu versenden.

Bei wenigen Mitgliedern lässt sich das (Absprache ist natürlich auch erforderlich) realisieren. Allerdings ist diese Art der Nutzung dann auch auf das Grid beschränkt, also auf alle Dienste, die Nomad/Zot6 als Protokoll nutzen. Das sind aktuell: Hubzilla und (streams).

Man kann als Thread-Ersteller natürlich auch ActivityPub-Kontakte von anderen Fediverse-Diensten aufnehmen und der Beitrag erreicht diese auch. und diese können auch normal kommentieren. Der Kommentar bleibt auch innerhalb der Gruppe. Sie können aber nicht, ohne wirklich umständliche Einzel-Adressiereung (Erwähnung) selbst einen solchen Thread starten. Also es geht halt über Mention schon, ist aber extrem umständlich, fehleranfällig und unpraktisch.

Mit Foren-Kanälen

Besser und zuverlässiger ist es, für diesen Zweck einen Foren-Kanal anzulegen.

Hubzilla hat ja den Vorteil, dass man dafür keinen neuen Account benötigt. Mit einem einzigen Account lassen sich verschiedene Kanäle erstellen.

Man legt also einen neuen Kanal an und wählt als Kanalrolle den Typ “Community Forum”. Damit erzeugt man einen Kanal, der wie ein Forum bzw. wie eine Gruppe in der Art von Facebook-Gruppen funktioniert.

Wenn man “in” ein solches Forum postet (also sein Posting auf bestimmte Art an den Foren-Kanal richtet), erscheint das Posting im Stream des Foren-Kanals und in den Streams aller, die mit diesem Kanal verbunden sind.

Hat man einen solchen Kanal erstellt, muss man noch entscheiden, ob neue Verbindungen automatisch angenommen werden, oder ob man die Verbindung als Foren-Betreiber erst genehmigen möchte. Dies erfolgt über Einstellungen ➔ Privacy-Einstellungen ➔ “Neue Kontakte automatisch genehmigen”.

Außerdem kann man in den Profil-Einstellungen noch festlegen, ob der Forenkanal in Verzeichnissen angezeigt wird und ob er anderen ggf. als Verbindungs-Vorschlag präsentiert wird.

gfc06

Um nun in ein solches Forum zu posten, gibt es drei Möglichkeiten. Die einfachste ist das Wall-to-Wall Posting. Dazu ruft man den Forenkanal aus dem Stream (in der Seitenleiste) auf.

gfc07

Nun erscheint der Kanalstream des Forums im Inhaltsbereich (Beachte: Es werden nur die neuen Postings seit dem “Beitritt” angezeigt.).

gfc08

Klickt man nun in das Feld “Start a conversation” erscheint der Beitragseditor und man kann ein Posting erstellen, welches in den Foren-Kanal gepostet wird (un welches alle anderen Forenmitglieder dann ebenfalls empfangen).

gfc09

Nach dem Absenden landet es im Kanal-Stream des Foren-Kanals

gfc10

und wird auch den anderen Verbindungen des Foren-Kanals angezeigt (diese können dann z.B. antworten/kommentieren).

gfc11

Man kann aber auch einfach den Beitrags-Editor außerhalb des Forums aufrufen (aus dem eigenen Stream, dem eigenen Kanal oder aus dem App-Menü) und dort ein Posting für den Foren-Kanal erstellen und das Forum mittels @!-Erwähnung adressieren.

Um das Posting an den Foren-Kanal zu steuern, muss man den Foren-Kanal mit der Sequenz @!<Forenkanal-Handle> erwähnen.

gfc12

Dieses Posting landet ebenfalls wieder im Kanal-Stream des Forenkanals und wird an alle Verbindungen des Foren-Kanals verteilt.

gfc13

Die dritte Möglichkeit ist die Nutzung der Berechtigungs-Einstellungen (unlock/lock). Sobald sich Foren-Kanäle unter den eigenen Verbindungen befinden, werden diese als Auswahl in den Berechtigungs-Einstellungen angezeigt und man kann sie dort einzeln auswählen.

gfc14

Schickt man ein Posting mit diesen Einstellungen ab,

gfc15

wird es ebenfalls an den Foren-Kanal gesendet.

gfc16

Geschlossene Gruppenkommunikation mit einem Foren-Kanal

Möchte man eine geschlossene Gruppe verwirklichen, deren Konversationen nur für die Mitglieder (Verbindungen) der Gruppe überhaupt sichtbar sind, muss man als Kanalrolle den Typ “Benutzerdefiniert” wählen. Die Postings eines vorkonfigurierten Forums (Typ “Community Forum”) sind nämlich öffentlich sichtbar.

Man wählt also bei Erstellung des Kanals die Kanalrolle “Benutzerdefiniert”. Nun muss man die Berechtigungen noch explizit festlegen.

Dies tut man mit Einstellungen ➔ Privacy-Einstellungen ➔ “Benutzerdefinierte Konfiguration der Channel Role”. Die Warnung ignoriert man (“Das Risiko akzeptieren und weitermachen”) und schreitet zur Tat!

Nun stellt man die Berechtigungen

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen
  • Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
  • Darf meine Beiträge kommentieren und mögen/nicht mögen
  • Kann mir direkte Nachrichten schicken
  • Kann Profile und Profilsachen mögen/nicht mögen
  • Kann mit mir chatten

auf “Angenommene Verbindungen”. Alle anderen Berechtigungen stellt man auf “Nur die, denen Du es explizit erlaubst” und schaltet ganz unten im Formular “Gruppe Akteur” ein (damit wird der Kanal zum Forum).

Dann schließt man den Dialog und schickt die aktuellen Einstellungen mittels Klick auf den Button “Absenden” ab. Hier empfiehlt es sich auf jeden Fall, auch die Option “Neue Kontakte automatisch genehmigen” ausgeschaltet zu lassen, um es nicht jedem einfach zu ermöglichen, durch das eingehen einer Verbindung Zugriff zur Gruppe zu erhalten.

Verhindert man dann noch in den Profileinstellungen die Veröffentlichung im Verzeichnis und das automatische Vorschlagen des Kanals als Kontakt, hat mein eine verborgene, unsichtbare Gruppe. Lässt man die Veröffentlichung zu, kann die private Gruppe zwar gefunden werden, der Beitritt muss aber vom Kanalinhaber (“Verbindung genehmigen”) bestätigt werden.

Was ist mit anderen Fediverse-Diensten?

Von Mastodon, Misskey und Mitra aus, kann man neue Themen nur starten, indem man das Posting auf “privat” setzt und das Forum per normaler Erwähnung (also @<forum>@<hubzilla-hub>) adressiert (ohne das “!”). Beim Antworten auf vorhandene Threads braucht man nichts zu beachten. Einfach kommentieren.

Derzeit ist es von (streams) und Forte aus nicht möglich, einen Thread per Wall-to-Wapp Posting zu starten. Hier empfiehlt sich die Erwähnung mit “@!”. Das funktioniert.

Mit Friendica scheint es derzeit nur mit Antworten, Kommentaren zu Foren-Postings zu funktionieren. Neue Postings im Forum werden bei Friendica angezeigt und man kann Kommentieren bzw. Kommentare anderer lesen. Ein Themenstart ist derzeit anscheinend nicht möglich.

Akkoma/Pleroma sind nicht wirklich benutzbar. Zumindest bei meinen Versuchen war es zwar möglich, ein Start-Posting ins Forum zu senden, welches alle Mitglieder des Forums zu sehen bekamen, man empfängt aber weder Postings noch Antworten aus dem Foren-Kanal.

Ob GoToSocial funktioniert, kann ich leider nicht beurteilen, weil ich über keinen Account verfüge und auch irgendwie keine Instanz finde, bei welcher ich einen Account erstellen könnte. Womöglich funktioniert es auf die Art und Weise, wie es auch mit Mastodon klappt, aber ich kann das nicht überprüfen.

Andere Fediverse-Dienste und geschlossene Foren

Da die Steuerung von Berechtigungen bei Hubzilla mit Open WebAuth (OWA) realisiert wird, können Nutzer eines Hubzilla-Kanals mit einem geschlossenen Forum ganz normal interagieren. Mit anderen Diensten funktioniert das nicht so gut. Selbst Mitra, welches selbst auch OWA nutzt, kann nicht so einfach auf ein Forum zugreifen. Im Endeffekt muss der Nutzer eines anderen Dienstes, um einen Überblick (wie beim Filtern des Hubzilla-Streams) über das Forengeschehen zu erhalten, den Forenkanal selbst aufrufen.

Und hier stößt er dann an die Grenze des Machbaren. Woher soll Hubzilla wissen, dass es sich um einen Berechtigten handelt (ansonsten soll ja das Forum mit seinen Inhalten für Dritte eben nicht sichtbar sein), wenn nicht über ein entsprechendes Token die Berechtigung nachgewiesen wird?

Die einzige Möglichkeit ist, dass der Inhaber des Foren-Kanals einen Gastzugang anlegt, über welchen dann der Foren-Kanal zugreifbar ist. Allerdings ist das eine Frage des Vertrauens. Der Gast-Benutzername und das dazugehörige Passwort muss allen Nicht-Hubzilla-Mitgliedern bekanntgegeben werden, darf aber nicht an Dritte weitergegeben werden (sonst ist es aus mit “geschlossen”). Sollte klappen, denn wer ein geschlossenens Forum nutzt, möchte ja keine ungebetenen Gäste haben.

Das Einrichten des Gastzugangs ist simpel:

Die App “Gastzugang” muss installiert werden.

Nun kann man die App aufrufen und es wird ein Formular zum Erzeugen eines Gastzugangs angezeigt.

gfc17

Es wird ein zufälliges Passwort erzeugt und bereits eingetragen. Es ist aber möglich, ein eigenes Passwort zu vergeben. Und man muss dem Gastzugang einen Anmeldenamen geben. Als Beispiel habe ich hier einmal als Anmeldename “Forengast” und als Anmeldepasswort “Forengastpasswort47110815foo” (ja, nicht sehr sicher, aber keine Sorge… dieser Gastzugang ist bereits wieder gelöscht 😉).

gfc18

Ruft nun jemand ohne Hubzilla-Kanal (der auch mit dem Foren-Kanal verbunden ist) den Kanal des geschlossenen Forums auf (also ein Nutzer anderer Fediversedienste), so wird ihm die Zugriffsberechtigung verweigert.

gfc19

Er kann aber nun, wenn er den Anmeldenamen und das Anmeldepasswort kennt, auf “Anmelden” klicken und sich im Anmeldedialog mit diesen Angaben einloggen.

gfc20

Nun wird der Forenkanal angezeigt.

gfc21

Es wäre so sogar möglich, dort per Wall-to-Wall Posting einen Beitrag zu erstellen oder Beiträge zu kommentieren. Ist aber eher ungeeignet, weil dann im Kanal-Stream ja für jeden der “Gast” als Verfasser angezeigt würde.

Besser ist es, wenn der Kanal-Inhaber für den Gastzugang eine spezielle Kontaktrolle erzeugt, welche Wall-to-Wall Postings und das Kommentieren nicht erlaubt (im Gegensatz zur Standard-Kanalrolle).

Noch einfacher ist der Aufruf unter Nutzung des Gastzugangs, indem man den Forenkanal aufruft, indem man seine Adresse eingibt und an die URL die Sequenz ?zat=<GASTPASSWORT> anhängt.

Also im obigen Beispiel https://klacker.org/channel/pepetestv?zat=Forengastpasswort47110815foo

Groups / Forums / Communities - en

Groups / Forums / Communities

Hubzilla makes it very easy to create conversation groups similar to the former popular ‘circles’ on Google Plus or groups on Facebook.

There are two different methods for doing this, which differ significantly in terms of type, function and practicality: privacy groups and forum channels.

With privacy groups

Non-public communication within a specific user group can be easily achieved from your channel using the ‘Privacy Groups’ app.

Privacy groups fulfil a triple function in Hubzilla. The function relevant to the purpose discussed here is their use for communication in closed groups.

The functionality of privacy groups is already available in every channel. Nevertheless, you must install the file-lock ‘Privacy Groups’ app, because only this app offers the option of creating your own privacy groups and then adding connections to them.

Once the app is installed and in the app menu (or even pinned to the navigation bar), you can open it.

A blank form for creating a privacy group is displayed.

gfc01

The sidebar also displays the existing privacy groups.

If you select one there, it will be displayed in the content area (centre) with its parameters. In addition, connections that are not in the group are displayed in the left column below the parameter area, while all connections that are in this group appear in the right column.

gfc02

When displaying (for editing) a group, an additional link ‘+ Create new group’ appears in the sidebar, which displays a new empty form.

If you want to create a privacy group, you must of course give it a name. You can also specify whether other channels in the Fediverse can see who is a member of this group. You can also specify a group (only one, of course) to which posts are sent by default. If you specify this for a privacy group, then, unless you specify otherwise, every post will now only be sent to the members of the group. And this also applies to everything else we share, e.g. images, wiki pages, etc.

Finally, you can specify whether every new contact is automatically assigned to this group (as well). To form a kind of community, all three switches should remain off.

As an example, I have created the privacy group ‘My Community’ and will now add some connections to the group. This is done with a simple click on the connection. After clicking, the connection changes pages, landing either in the column with the members or in the column with the connections that do not belong to the group.

gfc03

To post to this privacy group (i.e. to distribute a post exclusively to the members of the group), select the appropriate privacy group in the permissions settings in the post editor and then send your post.

gfc04

The post will now only reach the connections that are in the group.

gfc05

If one of the contacts replies, i.e. sends a comment on the post, this will only be sent to everyone in the privacy group. And, of course, to the ‘owner’ of the privacy group, i.e. the person who sent the initial post.

This would allow you to implement a group, forum or community function.

However, there is one restriction!

In order to create a real group, it is necessary for everyone we have added to this privacy group to also create a privacy group of their own, which includes all participants, in order to send an initial post to this closed community.

With few members, this can be achieved (agreement is of course also necessary). However, this type of use is then also limited to the grid, i.e. to all services that use Nomad/Zot6 as a protocol. These are currently: Hubzilla and (streams).

As the thread creator, you can of course also add ActivityPub contacts from other Fediverse services, and the post will also reach them. They can also comment normally. The comment also remains within the group. However, you cannot start such a thread yourself without really cumbersome individual addressing (mentioning). So it is possible via mention, but it is extremely cumbersome, error-prone and impractical.

With forum channels

It is better and more reliable to create a forum channel for this purpose. Hubzilla has the advantage that you do not need a new account for this. You can create different channels with a single account. So you create a new channel and select the ‘Community Forum’ type as the channel role. This creates a channel that functions like a forum or a group similar to Facebook groups. When you post ‘in’ such a forum (i.e. direct your post to the forum channel in a specific way), the post appears in the stream of the forum channel and in the streams of everyone connected to that channel. Once you have created such a channel, you still have to decide whether new connections are accepted automatically or whether you, as the forum operator, want to approve the connection first. This can be done via Settings ➔ Privacy settings ➔ ‘Automatically approve new contacts’.

gfc06

There are three ways to post in such a forum. The simplest is wall-to-wall posting. To do this, call up the forum channel from the stream (in the sidebar).

gfc07

The forum channel stream will now appear in the content area (note: only new posts since you joined will be displayed).

gfc08

If you now click on the ‘Start a conversation’ field, the post editor appears and you can create a post that will be posted to the forum channel (and which all other forum members will then also receive).

gfc09

After sending, it ends up in the channel stream of the forum channel.

gfc10

and will also be displayed to the other connections on the forum channel (who can then reply/comment, for example).

gfc11

However, you can also simply open the post editor outside the forum (from your own stream, your own channel or from the app menu) and create a post for the forum channel there, addressing the forum using @!-mention.

To direct the post to the forum channel, you must mention the forum channel with the sequence @!<forum channel handle>.

gfc12

This post also ends up in the forum channel stream and is distributed to all connections of the forum channel.

gfc13

The third option is to use the permission settings (unlock/lock). Once forum channels are among your own connections, they will be displayed as options in the permission settings, where you can select them individually.

gfc14

If you send a post with these settings, it will also be sent to the forum channel.

gfc15

Closed group communication with a forum channel

If you want to create a closed group whose conversations are only visible to the members (connections) of the group, you must select the ‘Custom’ channel role. The posts in a preconfigured forum (type ‘Community Forum’) are publicly visible.

So when creating the channel, select the channel role ‘Custom’. Now you have to explicitly define the permissions.

You can do this under Settings ➔ Privacy Settings ➔ ‘Custom Configuration of Channel Role’. Ignore the warning (‘Accept the risk and continue’) and proceed!

Now set the permissions

  • Can see my channel stream and posts
  • Can see my default profile
  • Can see my connections
  • Can see my file and image folders
  • Can see my channel’s web pages
  • Can see my wiki pages
  • Can post on my channel page (‘wall’)
  • Can comment on and like/dislike my posts
  • Can send me direct messages
  • Can like/dislike profiles and profile items
  • Can chat with me

to ‘Accepted connections’. Set all other permissions to ‘Only those you explicitly allow’ and enable ‘Group actor’ at the bottom of the form (this turns the channel into a forum).

Then close the dialogue box and submit the current settings by clicking on the ‘Submit’ button. Here, it is definitely advisable to leave the ‘Automatically approve new contacts’ option disabled so that not everyone can easily gain access to the group by establishing a connection.

If you then prevent publication in the directory and automatic suggestion of the channel as a contact in the profile settings, you will have a hidden, invisible group. If you allow publication, the private group can be found, but membership must be confirmed by the channel owner (‘Approve connection’).

What about other Fediverse services?

From Mastodon, Misskey and Mitra, you can only start new topics by setting the post to ‘private’ and addressing the forum via normal mention (i.e. @<forum>@<hubzilla-hub>) (without the ‘!’). When replying to existing threads, there is nothing to consider. Just comment.

Currently, it is not possible to start a thread via wall-to-wapp posting from (streams) and Forte. In this case, we recommend mentioning with ‘@!’. This works.

With Friendica, it currently only seems to work with replies and comments to forum posts. New posts in the forum are displayed on Friendica and you can comment or read other people’s comments. It does not appear to be possible to start a new topic at present.

Akkoma/Pleroma are not really usable. At least in my attempts, it was possible to send a start post to the forum, which all members of the forum could see, but you do not receive any posts or replies from the forum channel.

Unfortunately, I cannot say whether GoToSocial works because I do not have an account and cannot find an instance where I could create one. It may work in the same way as Mastodon, but I cannot verify this.

Other Fediverse services and closed forums

Since Hubzilla uses Open WebAuth (OWA) to manage permissions, users of a Hubzilla channel can interact with a closed forum as normal. This does not work as well with other services. Even Mitra, which also uses OWA, cannot access a forum so easily. Ultimately, in order to get an overview of what is happening in the forum (as when filtering the Hubzilla stream), users of other services have to access the forum channel themselves.

And this is where they reach the limits of what is feasible. How is Hubzilla supposed to know that the user is authorised (otherwise the forum and its content should not be visible to third parties) if authorisation is not verified by a corresponding token?

The only option is for the owner of the forum channel to create a guest account, which can then be used to access the forum channel. However, this is a matter of trust. The guest username and password must be disclosed to all non-Hubzilla members, but must not be passed on to third parties (otherwise it is no longer ‘closed’). This should work, because anyone who uses a closed forum does not want to have uninvited guests.

Setting up guest access is simple:

The ‘Guest Access’ app must be installed.

Now you can open the app and a form for creating guest access will be displayed.

gfc16

A random password is generated and already entered. However, it is possible to assign your own password. And you have to give the guest account a login name. As an example, I have used ‘forumguest’ as the login name and ‘forumguestpassword47110815foo’ as the login password (yes, not very secure, but don’t worry… this guest account has already been deleted 😉).

gfc17

If someone without a Hubzilla channel (which is also connected to the forum channel) attempts to access the closed forum channel (i.e. a user of other Fediverse services), they will be denied access.

gfc18

However, if he knows the login name and password, he can now click on ‘Login’ and log in with this information in the login dialogue box.

gfc19

The forum channel is now displayed.

gfc20

It would even be possible to create a post or comment on posts there via wall-to-wall posting. However, this is rather unsuitable because the ‘guest’ would then be displayed as the author in the channel stream for everyone.

It is better if the channel owner creates a special contact role for guest access, which does not allow wall-to-wall posting and commenting (unlike the standard channel role).

It is even easier to access the forum channel using guest access by entering its address and appending the sequence ?zat=<GUEST PASSWORD> to the URL.

So in the above example https://klacker.org/channel/pepetestv?zat=forumguestpassword47110815foo

H

Hashtag

Ein Hashtag ist eine Art Schlüsselwort. Der Begriff setzt sich aus dem englischen Wort “hash” für das Doppelkreuz “#” und dem Wort “tag” für Merkierung zusammen.

Ein Hashtag ist ein Schlüsselwort, das dazu dient, Nachrichten mit bestimmten Inhalten oder zu bestimmten Themen in sozialen Netzwerken auffindbar zu machen. Die so ausgezeichnete Zeichenkettedient dabei als Meta-Tag bzw. Meta-Kommentierung. Man nutzt Hashtags in der Regel innerhalb des Fließtextes, aber auch vor oder hinter dem eigentlichen Text.

Hashtags folgen

Hashtags folgen

Bei Hubzilla kann man nicht einfach so Hashtags “folgen”, wie man es von anderen Diensten kennt. Man kann die Suche nach einem Hashtag speichern und dann aufrufen… aber das bringt nur Postings aus dem Grid, also von Hubzilla selbst.

Das ist nicht komfortabel und auch eher eingeschränkt.

Und die Funktion lässt sich auch nicht so einfach einbauen, weil Hubzilla anders funktioniert, als manche der großen Fediverse-Dienste.

Aber Hubzilla wäre nicht Hubzilla, die eierlegende Wollmilchsau, wenn es nicht auch dafür eine einfache Lösung gäbe.

Sofern der Administrator des eigenen Hubs es erlaubt (es also aktiviert hat), kann man Verbindungen auch zu RSS-Feeds eingehen. Das sind jetzt nicht die “Verbindungen”, wie man sie von Hubzilla grundsätzlich kennt, also mit der Möglichkeit einer wechselseitigen Interaktion, sondern wirklich nur ein Feed. Verbindet man sich also mit einem RSS-Feed, so werden die Beiträge des Feeds in den Stream gespült.

Und diese Funktionalität ist der Ansatzpunkt für das Folgen von Hashtags. Mastodon z.B. bietet Feeds auch für Hashtags an. Ihre Adresse sieht schematisch so aus:

<mastodon-instanz>/tags/<hashtag>.rss

Das führende Doppelkreuz (“#”) muss beim Teil “<hashtag>” weggelassen werden.

Es ist sinnvoll, sich eine stärker frequentierte Mastodon-Instanz auszusuchen.

Möchte man also z.B. dem Hashtag #hubzilla folgen, und sucht sich als Quelle troet.cafe aus, so lautet die Feed-URL: https://troet.cafe/tags/hubzilla.rss.

Stellt man nun also eine Verbindung zu diesem Feed her, indem man als Handle die URL eingibt, so landen künftig Postings mit dem gewünschten Hashtag im Stream.

followhashtag01

Einen kleinen Nachteil hat sie Sache mit dieser Art des Hashtag-Folgens. Die Postings erlauben keinerlei Interaktion. Es befindet sich ein Link zum Original-Beitrag auf der Original-Fediverse-Instanz. Darauf kann man klicken, aber man verlässt damit unter Umständen… also meistens, es sei denn das Posting kommt von einem Kanal des eigenen Hubs… den eigenen Hub und man kann auch dort nicht, sofern man keinen Account bei der Ziel-Instanz hat, nicht interagieren.

followhashtag02

Möchte man das aber tun, muss der Beitrag in den Stream importiert werden. Das ist ein wenig umständlich. Man kopiert sich die ganz oben angegebene URL zum Beitrag und fügt sie in das Suchfeld für den Stream ein. Führt man die Suche mit der Eingabetaste dann durch, wird das Posting in den Stream importiert und man kann damit interagieren, wie gewohnt… also “liken”, “teilen”, “wiederholen”, “kommentieren”… was halt so möglich (und erlaubt) ist.

followhashtag03

followhashtag04

followhashtag05

Ich breche hier wieder einmal eine Lanze für Saiwal und seine Utsukta-Themes, die ich kürzlich vorgestellt habe. Im Rahmen einer Diskussion über das Importieren von instanzfremden Beiträgen hat er einfach ganz schnell mal ein Icon followhashtag06a implementiert, welches bei solchen Beiträgen erscheint. Ein Klick darauf… und der Import ist erledigt. Tolle Sache, oder?

followhashtag06

Also… man kann mit Hubzilla sehr wohl Hashtags folgen. Man muss nur wissen, wie das geht… und deshalb schreibe ich es hier auf!

Hashtags folgen - Variante 2

Hubzilla: Hashtags folgen - Variante 2

Im Artikel “Hashtags folgen” hatte ich eine Möglichkeit beschrieben, um mit einem Hubzilla-Kanal Hashtags zu folgen.

Dafür musste man sich eine (möglichst populäre) Mastodon-Instanz suchen und deren RSS-Feed für einen bestimmten Hashtag als RSS-Verbindung hinzufügen.

Noch simpler und umfassender (vollständiger) ist es mit dem Relay-Service von FediBuzz zu realisieren.

Dafür öffnet man die App “Verbindungen”, klickt auf den Button “+ Add” ganz oben und gibt in das Eingabefeld folgendes ein:

https://relay.fedi.buzz/tag/<HASHTAG>

followhash01

followhash02

followhash03

Den Link kann man sich auch auf der Seite https://relay.fedi.buzz/ erzeugen lassen, indem man unten links bei “Follow posts by #tag” den Hashtag eingibt. Unter dem Eingabefeld wird die Adresse dann “kopierfertig” angezeigt.

Nach dem Klick auf den “+” Button öffnet sich noch der Verbindungs-Editor, mit dem man z.B. Wortfilter für den Inhalts-Import festlegen kann…

followhash03a

…oder man klickt den Editor einfach so weg. Danach hat man eine Verbindung zu dem Relais und künftig erscheinen Beiträge mit dem gewählten Hashtag im Stream.

followhash04

Vorteil gegenüber der Variante mit RSS: Die Beiträge werden tatsächlich in den Stream “geboostet”, sind also als echte Beiträge vorhanden und können kommentiert, geliked/disliked, erneut geboostet oder zitiert etc. werden.

Follow Hashtags - en

Follow Hashtags

With Hubzilla, you can’t just ‘follow’ hashtags as you would on other services. You can save a search for a hashtag and then access it… but that only brings up postings from the grid, i.e. from Hubzilla itself.

This is not very comfortable and also rather limited.

And the function cannot be easily integrated because Hubzilla works differently from some of the popular Fediverse services.

But Hubzilla wouldn’t be Hubzilla, the all-in-one solution, if there wasn’t an easy solution for that too.

If the administrator of your own hub allows it (i.e. has activated it), you can connect to RSS feeds. These are not the ‘connections’ that Hubzilla is basically known for, with the possibility of mutual interaction, but really just a feed. So if you connect to an RSS feed, the posts from the feed are added to the stream.

And this functionality is the starting point for following hashtags. Mastodon, for example, also offers feeds for hashtags. Their address looks like this schematically:

<mastodon-instance>/tags/<hashtag>.rss

The leading double hash (‘#’) must be omitted from the ‘<hashtag>’ part.

It makes sense to choose a more heavily frequented Mastodon instance.

So, for example, if you want to follow the hashtag #hubzilla and choose troet.cafe as your source, the feed URL is: https://troet.cafe/tags/hubzilla.rss.

If you now connect to this feed by entering the URL as the handle, postings with the desired hashtag will appear in your stream in future.

followhashtag01

There is a small disadvantage to this way of following hashtags. The postings don’t allow any kind of interaction. There is a link to the original post on the original Fediverse instance. You can click on it, but you may leave… well, usually, unless the post comes from a channel on your own hub… your own hub, and you can’t interact there either, unless you have an account with the target instance.

followhashtag02

But if you want to do that, the post has to be imported into the stream. This is a little cumbersome. You copy the URL at the top of the post and paste it into the search field for the stream. If you then press Enter to perform the search, the post will be imported into the stream and you can interact with it as usual… so ‘like’, ‘share’, ‘repeat’, ‘comment’… whatever is possible (and allowed).

followhashtag03

followhashtag04

followhashtag05

Once again, a word in favour of Saiwal and his Utsukta themes, which I recently presented. As part of a discussion about importing posts from outside the instance, he quickly implemented an icon followhashtag06athat appears next to such posts. One click on it… and the import is done. Great, isn’t it?

followhashtag06

So… you can follow hashtags with Hubzilla. You just have to know how to do it… and that’s why I’m writing it down here!

Follow hashtags – option 2 - en

Hubzilla: Follow hashtags – option 2

In the article ‘Follow hashtags’, I described a way to follow hashtags using a Hubzilla channel.

To do this, you had to find a (preferably popular) Mastodon instance and add its RSS feed for a specific hashtag as an RSS connection.

It is even simpler and more comprehensive (complete) to do this with the relay service from FediBuzz.

To do this, open the ‘Connections’ app, click on the ‘+ Add’ button at the top and enter the following in the input field:

https://relay.fedi.buzz/tag/<HASHTAG>

followhash01

followhash02

followhash03

You can also generate the link on the page https://relay.fedi.buzz/ by entering the hashtag at the bottom left under ‘Follow posts by #tag’. The address will then be displayed below the input field, ready to be copied.

After clicking on the ‘+’ button, the connection editor opens, where you can set word filters for content import, for example…

followhash03a

…or you can simply close the editor. You will then be connected to the relay and future posts with the selected hashtag will appear in the stream.

followhash04

Advantage over the RSS version: The posts are actually ‘boosted’ into the stream, meaning they are genuine posts and can be commented on, liked/disliked, boosted again, quoted, etc.

Hilfe

Über die App “Hilfe” im App-Menü (⋮) gelangt man zu den Hilfe-Seiten von Hubzilla. Die Startseite ist bereits in deutscher Sprache verfügbar. Der Rest der Hilfe-Texte liegt aber überwiegend in englischer Sprache vor.

hilfe01

hilfe02

In der linken Seitenleiste findet man Verweise zu den einzelnen Themen. Für den Nutzer ist der Abschnitt “MEMBERS Guide” wahrscheinlich am interessantesten. Ich muss hier aber warnen. So wie mein Wiki hier nach ein paar Jahren veraltet war (Hubzilla hat sich weiterentwickelt und vieles funktioniert inzwischen anders), so sind auch die Hilfe-Seiten (Version: 8.6.3 - 1258) teilweise total veraltet und etliches funktioniert nicht mehr so, wie beschrieben.

Der Abschnitt “About this hub” führt zu einer Seite, auf welcher man Informationen und die Nutzungsbedingungen abrufen kann.

hilfe03

hilfe04

Solange die Hilfe nicht funktioniert, können die neuen überarbeiteten Hilfeseiten hier aufgerufen werden:

Deutsch

Englisch

HQ

HQ ist die Standard-Startseite nach der Anmeldung. Sie bietet einen schnellen Überblick über die letzten Beiträge und Direktnachrichten.

Ruft man den Hubzilla-Server (Hub) auf, bei welchem man registriert ist (und loggt sich, sofern das noch nicht geschehen ist, ein), dann landet man inzwischen nicht in der normalen Grid-/Stream-Ansicht, sondern auf der Seite “HQ”. Der erste spürbare Vorteil ist, dass die Seite wesentlich schneller rendert.

hq01

Man erreicht das HQ aber auch aus dem App-Menü oben rechts (⋮) oder, wenn die HQ-App angepinnt ist, aus der Navigationsleiste.

hq02

hq03

In der linken Seitenleiste ist zunächst ein Teil des Streams mit öffentlichen und beschränkten Beiträgen zu sehen, bei welchen jedoch nur ein Excerpt angezeigt wird. Ein Klick auf einen dieser Einträge bringt den Beitrag in der Hauptansicht (mitte) zur Ansicht.

hq04

Nach dem Aufrufen des HQ sind in der Hauptansicht zunächst aber die letzten Änderungen in verschiedenen Berichte, wie Wiki, Webseiten, Fotos, Dateien etc. zu sehen.

Die linke Seitenleiste weist verschiedene Reiter auf, mit denen weitere Listen angezeigt werden können.

Der zweite Reiter dient der Listenasicht ausschließlich von Direktnachrichten (DN).

hq05

Der dritte Reiter zeigt “markierte” Beiträge, also Beiträge, die man mit einem “Sternchen” Markiert hat (das geschieht im Kontextmenü des jeweiligen Beitrags).

hq06

Der vierte Reiter zeigt die Mitteilungs-Liste.

hq07

Unter dieser Listenansicht sind noch zwei Icons vorhanden, ein “Bleistift”, der bei einem Klick den Beitrags-Editor öffnet um schnell einen neuen Beitrag zu erstellen, und einen “Notiz-Zettel”, welcher den Editor für Notiz-Eingaben öffnet.

hq08

hq09

Hubzilla mit einem YunoHost-Server betreiben

Wer einen Server (egal ob zu Hause auf eigener Hardware und in der Regel mit dynDNS, oder auf einem gemieteten VPS- oder Rootserver) mit YunoHost betreibt, hat es einfach. Die Software nimmt einem sehr viel Verwaltungsarbeit im Detail ab und bietet unzählige Applikationen, die man mit wenig Aufwand installieren, in Betrieb nehmen und pflegen kann.

Auch Hubzilla gehört zu den Apps, die bei YunoHost angeboten werden. Hubzilla ist mit wenigen Eingaben und Voraussetzungen installiert.

Man benötigt eine eigene Domain oder Subdomain. Dabei ist darauf zu achten, dass unter dieser Domain noch keine andere Fediverse-Software installiert war. Das ist eine “Besonderheit” des Fediverse. Einmal verwendete Domains sind für das Fediverse “verbrannt”, wenn man unter ihnen eine neue oder andere Fedi-Software installieren möchte. Aber egal… wir nehmen einmal an, wir haben eine frische, “jungfräuliche” Domain. Dann ist die Installation mit wenigen Klicks und Eingaben erledigt.

Leider ist es inzwischen aber so, dass die App “Hubzilla” bei YunoHost nicht mehr wirklich aktiv betreut wird. Das führt dazu, dass Updates (auch wichtige, sicherheitsrelevante, die zeitnah durchgeführt werden müssten) nur sehr verzögert Einzug halten. Es entstehen zweitweise mehrere Monate Rückstand und die angebotene Version liegt teilweise mehrere Updates zurück. Das ist für eine sicherheitskritische Software nicht zu empfehlen.

Aus genau diesem Grund, habe ich Hubzilla unter YunoHost auf eine andere Art installiert. Die Vorteile, die einem YunoHost bietet, bleiben dabei erhalten (einfache Backups, kein händisches Einrichten von Reverse Proxy, Aktualität des zugrundeliegenden Systems, Einrichtung einer Datenbank etc.).

Und so funktioniert das:

YunoHost bietet eine “Universal-App”, die als “My Webapp” bezeichnet wird. Mit dieser kann eine benutzerdefinierte Webanwendung installiert werden. Sie bietet SFTP-Zugriff, bei Bedarf eine Datenbank und PHP. Es wird unter /var/www ein Verzeichnis angelegt, welches über die bei Installation gewählte Domain erreichbar ist.

hzyh01

Also der optimale Ort für eine Hubzilla-Installation.

Zunächst muss man also eine entsprechende Domain in YunoHost anlegen und selbstverständlich auch ein Zertifikat erstellen (Let’s Encrypt). Das funktioniert genau so, wie für die “normale” Hubzilla-Installation z.B. mit der Verwaltungsoberfläche von YunoHost.

Man wählt unter Applikationen → +Installieren aus dem Katalog die Anwendung “My Webapp”.

hzyh02

Nun kann man eine Bezeichnung für das Label der Kachel (in der YH-Oberfläche) eingeben, die Domain/Subdomain auswählen. Beim URL-Pfad sollte man, um Probleme zu vermeiden, nur “/” stehen lassen. Für einen öffentlichen Hub, wählt man im Feld “Wer soll Zugriff auf diese App haben?” den Eintrag “Besucher”.

Als PHP-Version für Hubzilla wählt man aktuell >=8.2 (ich würde derzeit Version 8.4 empfehlen) aus und anschließend noch den Typ des Datenbank (MySQL oder Postgresql).

Dann startet man die Installation der Custom-Webapp.

Ist sie durchgelaufen, muss man sich per SSH am eigenen Server einloggen. Im Verzeichnis /var/www findet man nun ein neues Verzeichnis my_webapp (bzw. my_webapp__XX, wenn bereits andere “My Webapp” installiert waren; XX steht dann für eine fortlaufende Nummer) und in diesem ein Unterverzeichnis www. Letzteres ist das Verzeichnis, welches beim Aufruf der Domain vom Webserver geliefert wird.

Nun kann man ganz einfach nach der offiziellen Installationsanleitung Hubzilla installieren. Im Root-Verzeichnis (my_webapp/www) findet man eine Datei db_access.txt, in welcher die Zugangsdaten für die Datenbank stehen. Wichtig: sichern! Die Daten (Datenbankname, Datenbanknutzer, Datenbankpasswort) benötigen wir für die Installation von Hubzilla noch.

Nun muss das Verzeichnis my_webapp/www geleert werden, also alle darin enthaltenen Dateien gelöscht, damit man das Hubzilla-Repo dorthin klonen kann.

Damit die Dateirechte sofort passen… und generell sowieso, empfiehlt es sich, an dieser Stelle als Benutzer “my_webapp” (bzw. my_webapp__XX) fortzufahren. Dafür gibt man

yunohost app shell my_webapp

ein.

Nun befindet man sich im Verzeichnis my_webapp. Mit

git clone https://framagit.org/hubzilla/core.git www

klont man das Repo an die richtige Stelle. Danach am besten sofort in das Verzeichnis www wechseln:

cd www

Es wird beim Klonen auch eine Datei .htaccess erzeugt. Diese dient der Konfiguration des Apache Webservers. Nun nutzt YunoHost aber nginx und nicht Apache, weshalb diese Datei nicht von Bedeutung ist.

Bei der Installation von My Webapp werden Konfigurationsdateien unter /etc/nginx/conf.d/<domain von my_webapp> erzeugt. Diese genügen aber den Ansprüchen von Hubzilla nicht. Die my_webapp.conf muss wie folgt aussehen:

#sub_path_only rewrite ^/$ / permanent;

location / {

  # Path to source
  alias /var/www/my_webapp/www/;

  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1;
  }

  # Default indexes and catch-all
  index index.php;
  charset utf-8;

  # Common parameter to increase upload size limit in conjunction with dedicated php-fpm file
  client_max_body_size 50M;
  client_body_buffer_size 128k;

  location ~* \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php/php8.4-fpm-my_webapp.sock;

    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  # make sure webfinger and other well known services aren't blocked
  # by denying dot files and rewrite request to the front controller
  location ^~ /.well-known/ {
    allow all;
    if (!-e $request_filename) {
      rewrite ^(.*)$ /index.php?q=$1;
    }
  }

  # statically serve these file types when possible
  # otherwise fall back to front controller
  # allow browser to cache them
  # added .htm for advanced source code editor library
  # location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
  #  expires 30d;
  #  try_files $uri /index.php?q=$uri&$args;
  # }

  # block these file types
  location ~* \.(tpl|tgz|log|out)$ {
    deny all;
  }

  # deny access to all dot files
  location ~ /\. {
    deny all;
  }

  #deny access to store
  location ~ /store {
    deny all;
  }

  #deny access to util
  location ~ /util {
    deny all;
  }

  # Include SSOWAT user panel.
  include conf.d/yunohost_panel.conf.inc;
}

Beachte:

In Zeile 6 muss der Alias-Pfad der Installation der “My Webapp” entsprechen. War es nicht die erste “My Webapp”, die auf dem YunoHost Server installiert wurde, dann lautet der Pfad nicht mehr /var/www/my_webapp/www/, sondern /var/www/my_webapp__XX/www/ (“XX” hier auf die passende Nummer setzen).

In Zeile 22 muss die bei Installation der “My Webapp” gewählte Version von PHP korrekt referenziert werden. Also /var/run/php/php8.4-fpm-my_webapp.sock oder /var/run/php/php8.3-fpm-my_webapp.sock oder /var/run/php/php8.2-fpm-my_webapp.sock.

Für eine Hubzilla-Installation sind innerhalb des Hubzilla-Verzeichnisses (hier also my_webapp/www) einige Verzeichnisse mit entsprechenden Zugriffsrechten essenziell. Sie werden eigentlich bei der Installation über den Webbrowser angelegt (aber wohl nicht immer). Es ist aber sicherer und schadet nicht, wenn man mit

cd www

ins Hubzilla-Verzeichnis wechselt und diese mit

mkdir -p "store/[data]/smarty3"

chmod -R 777 store

anlegt.

Um auch die Hubzilla-Addons zu installieren, muss man noch

util/add_addon_repo https://framagit.org/hubzilla/addons.git hzaddons

util/update_addon_repo hzaddons

eingeben.

PHP-Extensions: Für Hubzilla >= 9 (aktuell 11.2) sind die PHP-Extensions sodium, gmp (oder bcmath) und intl erforderlich. Bei meiner YunoHost-installation waren sodium und gmp vorhanden, intl hingegen fehlte.

Herausfinden, welche Extensions installiert und aktiviert sind kann man mit diesem Kommando:

php -m

Mit

sudo apt-get update

und

sudo apt-get install php8.4-intl (hier auch wieder auf die gewählte PHP-Version achten)

ist die fehlende Extension rasch installiert.

php -m | grep intl

sollte das nun auch anzeigen.

Jetzt ist der Moment gekommen, an welchem man im Webbrowser die URL der neuen Installation aufruft.

Eigentlich sollte alles nun problemlos durchlaufen (ansonsten auftretenden Fehlern ggf. gemäß der offiziellen Installationsanleitung auf den Grund gehen).

Jetzt ist es erforderlich, die frisch erzeugte .htconfig.php anzuschauen und dort den Pfad zu PHP (auf die Version achten) anzupassen:

// Location of PHP command line processor
App::$config['system']['php_path'] = '/usr/bin/php8.4';

Wenn man nun noch immer als Benutzer my_webapp unterwegs ist, sollte man sich mit

php -v

die aktuell genutzte PHP-Version anzeigen lassen. Es sollte die Version 8.4 (oder die ausgewählte) angezeigt werden.

Jetzt folgt noch ein weiterer, sehr wichtiger Schritt: das Anlegen eines Cronjobs für wichtige Hintergrunddienste.

Hierfür ruft man

crontab -e

auf und fügt die Zeile

*/10 * * * * cd /var/www/my_webapp/www; /usr/bin/php8.4 Zotlabs/Daemon/Master.php Cron > /dev/null 2>&1 (auch hier wieder auf die PHP-Version achten)

zu.

Und nun sollte die Hubzilla-Installation unter YunoHost ordentlich laufen. Der Rest sollte bekannt sein (als erstes einen Account mit der zuvor angegebenen Mailadresse registrieren… das ist der Admin-Account) und dann einfach “benutzen”. ;-)


WICHTIGER HINWEIS ZU UPDATES VON YUNOHOST:

Wenn es ein Update von “My Webapp” gibt, kann es unter Umständen dazu kommen, dass die nginx-Konfigurationsdatei in /etc/nginx/conf.d/deinedomain.d/my_webapp.conf mit Standardeinstellungen überschrieben wird, was dazu führt, dass Hubzilla nicht mehr funktioniert.

Deshalb ist es sinnvoll, diese Konfigurationsdatei in einem separaten Backupverzeichnis auf dem Server vorzuhalten und die aktualisierte Datei damit zu überschreiben. Alternativ kann man sie auch aus der automatisch beim Update angelegten Backup-Datei von YunoHost extrahieren und sie wieder in o.g. Verzeichnis kopieren (überschreiben).


WICHTIGER HINWEIS ZUR AUTHENTIFIZIERUNG (WEBDAV und Kanäle klonen)

In der aktuellen Version von YunoHost greift automatisch ein Schutzmechanismus, welcher die externe Authentifizierung teilweise verhindert. Das betrifft bei Hubzilla insbesondere den WEBDAV-Mechanismus und das Online-Klonen von Kanälen.

Damit sowohl der Zugriff auf die Cloud mittels WEBDAV funktioniert, als auch das Klonen von Kanälen des Hubs mit Angabe der Login-Daten funktioniert, muss dieser Schutzmechanismus für die “My Webapp” deaktiviert werden.

Dazu muss man die Kommandos

yunohost app setting <NAME-DER-my_webapp> protect_against_basic_auth_spoofing -v false

und

yunohost app ssowatconf

eingeben.

Running Hubzilla with a YunoHost server

Anyone running a server (whether at home on their own hardware – usually with dynDNS – or on a rented VPS or dedicated server) using YunoHost will find it easy. The software takes care of a great deal of the detailed administrative work and offers countless applications that can be installed, set up and maintained with minimal effort.

Hubzilla is also one of the apps offered by YunoHost. Hubzilla can be installed with just a few inputs and minimal requirements.

You need your own domain or subdomain. It is important to ensure that no other Fediverse software has been installed under this domain before. This is a “peculiarity” of the Fediverse. Once used, domains are ‘burned’ for the Fediverse if you wish to install new or different Fediverse software under them. But never mind… let’s assume we have a fresh, ‘virgin’ domain. Then the installation is done with just a few clicks and inputs.

Unfortunately, however, the “Hubzilla” app is no longer actively maintained by YunoHost. This means that updates (including important, security-related ones that need to be applied promptly) are only introduced with significant delay. At times, there is a backlog of several months, and the version offered is sometimes several updates behind. This is not advisable for security-critical software.

For precisely this reason, I have installed Hubzilla on YunoHost in a different way. The advantages that YunoHost offers are retained (easy backups, no manual setup of reverse proxies, an up-to-date underlying system, database setup, etc.).

And here’s how it works:

YunoHost offers a ‘universal app’, which is called ‘My Webapp’. This can be used to install a customised web application. It offers SFTP access, a database and PHP if required. A directory is created under /var/www, which can be accessed via the domain selected during installation.

hzyh01

This is the ideal location for a Hubzilla installation. The first step is to create a corresponding domain in YunoHost and, of course, create a certificate (Let’s Encrypt). This works in exactly the same way as for the ‘normal’ Hubzilla installation, e.g. with the YunoHost administration interface. Select the ‘My Webapp’ application from the catalogue under Applications → +Install.

hzyh02

You can now enter a name for the tile’s label (in the YH interface) and select the domain or subdomain. To avoid problems, you should leave only “/” in the URL path field. For a public hub, select “Visitors” in the “Who should have access to this app?” field.

For the PHP version for Hubzilla, currently select >=8.2 (I would currently recommend version 8.4) and then the database type (MySQL or PostgreSQL).

Then start the installation of the custom web app.

Once it has finished, you must log in to your own server via SSH. In the directory /var/www you will now find a new directory my_webapp (or my_webapp__XX, if other ‘My Webapp’ installations already exist; XX stands for a sequential number) and within this a subdirectory www. The latter is the directory served by the web server when the domain is accessed.

You can now easily install Hubzilla by following the official installation guide. In the root directory (my_webapp/www) you will find a file db_access.txtcontaining the database credentials. Important: make a backup! We will still need this information (database name, database user, database password) for the Hubzilla installation.

Now the directory my_webapp/www must be emptied, i.e. all files within it must be deleted, so that the Hubzilla repository can be cloned there.

To ensure the file permissions are correct straight away… and generally speaking anyway, it is advisable to continue at this point as the user ‘my_webapp’ (or my_webapp__XX). To do this, enter

yunohost app shell my_webapp

.

You are now in the directory my_webapp. With

git clone https://framagit.org/hubzilla/core.git www

you clone the repository to the correct location. Afterwards, it is best to switch immediately to the directory www:

cd www

A file named .htaccess is also created during cloning. This is used to configure the Apache web server. However, YunoHost uses nginx rather than Apache, so this file is irrelevant.

When installing My Webapp, configuration files are generated under /etc/nginx/conf.d/<domain of my_webapp>. However, these do not meet Hubzilla’s requirements. The my_webapp.conf must look as follows:

#sub_path_only rewrite ^/$ / permanent;

location / {
  # Path to source
  alias /var/www/my_webapp/www/;
  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1;
  }

  # Default indexes and catch-all
  index index.php;
  charset utf-8;

  # Common parameter to increase upload size limit in conjunction with dedicated php-fpm file
  client_max_body_size 50M;
  client_body_buffer_size 128k;
  location ~* \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php/php8.2-fpm-hubzilla.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  # make sure webfinger and other well known services aren't blocked
  # by denying dot files and rewrite request to the front controller
  location ^~ /.well-known/ {
    allow all;
    if (!-e $request_filename) {
      rewrite ^(.*)$ /index.php?q=$1;
    }
  }

  # statically serve these file types when possible
  # otherwise fall back to front controller
  # allow browser to cache them
  # added .htm for advanced source code editor library
  # location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
  #  expires 30d;
  #  try_files $uri /index.php?q=$uri&$args;
  # }

  # block these file types
  location ~* \.(tpl|md|tgz|log|out)$ {
    deny all;
  }

  # deny access to all dot files
  location ~ /\. {
    deny all;
  }

  #deny access to store
  location ~ /store {
    deny all;
  }

  #deny access to util
  location ~ /util {
    deny all;
  }

  # Include SSOWAT user panel.
  include conf.d/yunohost_panel.conf.inc;
}

Note:

In line 6, the alias path must correspond to the installation of ‘My Webapp’. If this was not the first ‘My Webapp’ installed on the YunoHost server, the path is no longer /var/www/my_webapp/www/, but /var/www/my_webapp__XX/www/ (‘XX’ should be replaced with the appropriate number) .

In line 22, the version of PHP selected during the installation of ‘My Webapp’ must be correctly referenced. So /var/run/php/php8.4-fpm-my_webapp.sock or /var/run/php/php8.3-fpm-my_webapp.sock or /var/run/php/php8.2-fpm-my_webapp.sock.

For a Hubzilla installation, several directories with the appropriate access permissions are essential within the Hubzilla directory (in this case my_webapp/www). These are actually created during installation via the web browser (though apparently not always). However, it is safer and does no harm to use

cd www

to change to the Hubzilla directory and create these with

mkdir -p ‘store/[data]/smarty3’
chmod -R 777 store

To install the Hubzilla add-ons as well, you must also enter

util/add_addon_repo https://framagit.org/hubzilla/addons.git hzaddons
util/update_addon_repo hzaddons

PHP extensions: For Hubzilla >= 9 (currently 11.2), the PHP extensions sodium, gmp (or bcmath) and intl are required. On my YunoHost installation, sodium and gmp were present, whereas intl was missing.

You can find out which extensions are installed and enabled using this command:

php -m

With

sudo apt-get update

and

sudo apt-get install php8.4-intl (again, make sure to use the correct PHP version)

the missing extension is quickly installed.

php -m | grep intl

should now display this.

Now is the time to open the URL of the new installation in your web browser.

Everything should now run smoothly (if any errors occur, investigate the cause according to the official installation guide).

You now need to open the newly created .htconfig.php file and adjust the path to PHP (make sure you use the correct version):

// Location of PHP command line processor
App::$config[“system”][“php_path”] = “/usr/bin/php8.4”;

If you are still logged in as the user my_webapp, you should use

php -v

to display the currently used PHP version. Version 8.4 (or the selected version) should be displayed.

Now comes another very important step: creating a cron job for important background services.

To do this, run

crontab -e

and add the line

*/10 * * * * cd /var/www/my_webapp/www; /usr/bin/php8.4 Zotlabs/Daemon/Master.php Cron > /dev/null 2>&1 (again, make sure to check the PHP version).

And now the Hubzilla installation on YunoHost should be running smoothly. The rest should be familiar (first register an account using the email address provided earlier… this is the admin account) and then simply “use” it. ;-)


IMPORTANT NOTE REGARDING YUNOHOST UPDATES:

When an update for ‘My Webapp’ is released, the nginx configuration file in /etc/nginx/conf.d/yourdomain.d/my_webapp.conf may, under certain circumstances, be overwritten with default settings, causing Hubzilla to stop working.

It is therefore advisable to keep this configuration file in a separate backup directory on the server and use it to overwrite the updated file. Alternatively, you can extract it from the backup file created automatically by YunoHost during the update and copy it back into the directory mentioned above (overwriting the existing file).


IMPORTANT NOTE ON AUTHENTICATION (WEBDAV and cloning channels)

In the current version of YunoHost, a security mechanism is automatically activated which partially prevents external authentication. In the case of Hubzilla, this particularly affects the WEBDAV mechanism and the online cloning of channels.

To ensure that both access to the cloud via WEBDAV and the cloning of channels from the hub using login credentials work, this protection mechanism must be disabled for the ‘My Webapp’.

To do this, enter the commands

yunohost app setting <NAME-OF-my_webapp> protect_against_basic_auth_spoofing -v false

and

yunohost app ssowatconf

Hubzilla-History

Hubzilla-History

Möchte man nicht nur einen historischen Abriss der Entwicklung von Hubzilla haben, sondern auch verstehen, aus welcher Intention es entstand und was es leisten kann, sollte man sich mit dem Schöpfer dieser Software, Mike Macgirvin, befassen.

Mike Macgirvin ist ein technikbegeisterter und umtriebiger Software-Entwickler. Sein Lebenslauf ist beeindruckend, denn er ist an vielen Dingen beteiligt gewesen, welche wir heute im Netz für ganz selbstverständlich halten (z.B. IMAP). Er hat am Protokoll und System der E-Mails mitgewirkt und war z.B. für die NASA tätig, für die er einen E-Mail-Client und eine Forums-Software schrieb, er entwickelte Messaging-Systeme für Netscape und leitete eine Gruppe bei Sun und AOL, welche Groupware und Kommunikationsserver entwickelt haben.

Im Jahr 2010 wandte er sich einerseits frustriert von Facebook ab (er war insbesondere besorgt über den Stellenwert der Privatsphäre in diesem Netzwerk) und musste feststellen, dass es keine adäquate Alternative zu diesem Social-Media-System gab. Es gab Status.net, das eher den Bereich von Twitter bediente und Diaspora, das sich selbst als Facebook-Alternative sah, aber aufgrund der Konzeption (reines Hobbyprodukt) die Erwartungen nicht erfüllen konnte.

Und so entwickelte er das Protokoll DFRN (Distributed Friends and Relations Network), welches die grundlegende Konzeption für das Herstellen von Kontakten und die serverübergreifende Kommunikation erlaubte und einen Schwerpunkt auch auf Datenschutz legte. Kernpunkte waren die authentifizierte Leitung zwischen Kommunikationspartnern, die sicherstellte, dass an beiden Enden auch der Nutzer steht, der er vorgibt, zu sein, und das “Magic Auth”, mit welchem es möglich ist auf Inhalte der Servers eines anderen Nutzers (sofern er diese freigegeben hat) zuzugreifen, ohne einen Account dort zu haben (eine der Funktionen, die auch heute noch die besonderen Fähigkeiten von Hubzilla ermöglichen). DFRN wurde am 2. Juli 2010 veröffentlicht.

Auf Basis dieses Kommunikationsprotokoll basierte dann auch seine Social-Network-Software namens “Mistpark”. Innerhalb kürzester Zeit wurden das Föderieren mit OStatus implementiert, RSS-Feeds und E-Mail eingebaut und es wurden Schnittstellen zu Facebook, Twitter und Google bereitgestellt.

Ende 2010 wurde die Software in “Friendika” umbenannt, und Anfang 2011 kam dann auch die Möglichkeit zum Föderieren Mit Diaspora dazu. Ende 2011 wurde Friendika dann schließlich in “Friendica” umbenannt.

Im Jahr 2012 stellte Mike dann für sich selbst fest, dass Friendica niemals das Zeug dazu haben würde, eine echte akzeptierte Alternative zu Facebook zu sein. Seine Grundsätzliche Idee war ohnehin, ein System zu schaffen, welches hochintegrierte, datenschutzfreundliche und dezentralisierte Dienste ermöglicht, also ein dezentrales, sicheres CMS. Deshalb begann er mit der Entwicklung eines neuen Kommunikationsprotokolls: Zot, das im Juli 2012 vorgestellt und veröffentlicht wurde. Er entwickelte auf Grundlage von Zot als Fork von Mistpark/Friendica ein neues System mit dem Namen “red” (Spanisch für “Netzwerk”), welches eher eine Groupware und ein CMS-System mit Cloud-Diensten darstellte, aber immer noch die Social Network Komponenten enthielt. Es wurden Blogging-Funktionen, WebDAV, CalDAV und CardDAV sowie eine Reihe von Content- Management-Tools hinzugefügt. Hubzilla, welches damals noch nicht so hieß, war geboren. Das System wurde dann in “Redmatrix” umbenannt, weil es bei Websuchen aufgrund des “Sammelbegriffs” red unter ferner liefen auftauchte und kaum gefunden wurde. Ein herausragendes Merkmal von red/Redmatrix war die nomadische Identität, welche Umzüge von einem Server zum nächsten nicht nur vereinfachte, sondern auch das gleichzeitige Betreiben von automatisch synchronisierten Klonen auf verschiedenen Servern ermöglichte. Damit gab es eine unschlagbare Ausfallsicherheit, denn wenn einer der Server nicht zur Verfügung steht, kann man, ohne Verluste, mit der Identität auf einem anderen Server weiterarbeiten. Schlecht funktionierende Import-/Export-Funktionen für einen Umzug wurden überflüssig. Das, in Verbindung mit der Magic Auth Funktionalität, machte red/Redmatrix zu dem flexibelsten System, das es gibt.

Nebenbei: Ende 2012 erblickte ActivityPump, welches später in ActivityPub umbenannt wurde, das Licht der Welt. Im Vergleich zu Zot war es wesentlich “chaotischer” und bei weitem nicht so leistungsfähig.

Im Jahr 2015 stellten Mike Macgirvin und das Team um Redmatrix fest, dass ihr Projekt aufgrund schlechter Marketingentscheidungen (schlechte Kommunikation der Projektziele) kaum wahrgenommen wurde. Es wurde diesbezüglich ein Neustart vollzogen und das Projekt, weil der alte Name durch die Fehler der Vergangenheit verbrannt war, in “Hubzilla” umbenannt. Mike trat Anfang 2015 als aktiver Koordinator des Projekts zurück und übergab die Leitung an die Gemeinschaft. Er blieb aber weiterhin als Hubzilla-Entwickler aktiv.

Am 16. März 2016 erschien dann Mastodon, welches damals noch auf dem OStatus-Protokoll besierte. Zu diesem Zeitpunkt war Hubzilla fast vier Jahre alt. ;-)

Am 18. Juli 2017 wurde, zusätzlich zum Basis-Protokoll Zot, auch ActivityPub als Kommunikationsprotokoll zur Interaktion mit anderen Diensten in Hubzilla implementiert. Am 3. September zog Mastodon dann nach und wechselte zu ActivityPub.

Am 17. August 2018 wurde Zot6 veröffentlicht und Mike wandte sich neuen Projekten zu (Zap). Zot6 wurde am 20. Februar 2019 in Hubzilla übernommen.

Die Entwicklung von Hubzilla geht aktuell noch immer ununterbrochen weiter. Im Dezember 2024 erschien die Hubzilla-Version 10, welche unter anderem Konversations-Container einführte.


tl;dr

Die Geschichte von Hubzilla reicht bis in den Juli 2010 zurück.

  • Macgirvin schafft mit Mistpark eine neue Familie von Fediverse-Servern

Als eigenständiger Zweig entsteht zwei Jahre später red / Redmatrix auf Basis von Friendica.

  • Juli 2012: Das Zot-Protokoll wird veröffentlicht; Macgirvin veröffentlicht red / Redmatrix auf Basis von Zot

Damals verließ Mike Macgirvin das Friendica-Projekt und begann mit der Entwicklung von Zot und einem neuen Basisprojekt namens red (Spanisch für “Netzwerk”). Ziemlich schnell wurde red in Redmatrix umbenannt, um in Suchmaschinen eindeutiger gefunden werden zu können.

Damit aus dem Konzept von Redmatrix zeitnah eine funktionierende und nutzbare Serversoftware entstehen konnte, wurde eine Auszeichnungssprache für Webseiten unter dem Namen Comanche entwickelt. Mit dieser konnte man eine Seite auf der Grundlage von bbcode-Tags beschreiben und erzeugen lassen.

  • Oktober 2012: ActivityPump wird veröffentlicht
  • September 2014: Aus ActivityPump wird ActivityPub
  • Frühjahr 2015: Redmatrix wird in Hubzilla umbenannt

Anfang 2015 nahm das Interesse an Redmatrix, nicht zuletzt wegen des mangelhaften Marketings, ab. Das Team um Redmatrix einigte sich auf einen Neustart unter dem neuen Namen Hubzilla. Es gab neben der neuen Identität auch einen neuen Schwerpunkt, nämlich das erstellen von Community-Webseiten, die miteinander verknüpft sind, als Teil einer globalen Gemeinschaft. Mike trat als aktiver Koordinator des Projekts zurück und übergab die Leitung an die Gemeinschaft, er blieb aber weiterhin als Hubzilla-Entwickler aktiv.

  • Im Jahr 2016 gab es Umstrukturierungen, welche verschiedene Server-Rollen ermöglichten, dies aber bei gleichbleibender Code-Basis.

  • Juli 2017: Hubzilla unterstützt nun auch ActivityPub

Im Juli 2017 hielt die Unterstützung von ActivityPub Einzug. Bei Mastodon geschah das zwei Monat später, im September.

  • August 2018: Zot6 wird veröffentlicht
  • Februar 2019: Hubzilla übernimmt Zot6

Im August 2018 wurde Zot6 veröffentlicht, welches im Februar 2019 von Hubzilla übernommen wurde.

  • Dezember 2024: Die aktuelle Hauptversion 10 von Hubzilla wird veröffentlicht

Im Dezember 2024 erschien Hubzilla 10 mit etlichen Verbesserungen “unter der Haube”, wie z.B. Konversations-Container, und Features, die eine Einbindung des inzwischen vielfältigen Fediverse auf Basis von ActivityPub verbessern.


Eine detailliertere Zeitleiste findet man hier: Hubzilla Timeline and History

Mai 2025: 15 Jahre

Mai 2025: 15 Jahre!

15-1

Vor 15 Jahren erblickte die Familie einer Community-Software im Fediverse mit Mistpark das Licht der Welt. Erdacht und entwickelt vom genialen Entwickler Mike Macgirvin. Die Familie besteht bzw. bestand aus bekannten Systemen: Mistpark, Friendika, Friendica, Redmatrix, Hubzilla, Osada, Zap, Roadhouse, (streams) und seit neuestem Forte mit überragenden Features, wie Gruppen, Aspekte, Single SignOn, nomadische Identität, fein abgestuftes dezentralisiertes Rechtesystem, Zitat-Postings, Kontrolle über Kommentare, Beitragsformatierung, unbeschränkte Beitragslänge, magische Authentifizierung, Erweiterbarkeit und noch viel mehr, was man von anderen Diensten nicht kannte.

Jeder, der heute Friendica, Hubzilla, (streams) oder Forte als Dienst benutzt, verwendet eine Software die vor 15 Jahren ihren Anfang nahm… und damit weit früher als andere Systeme, die sich inzwischen als Platzhirsche gerieren. ;-)


Mike Macgrivin: Happy 15th birthday

Hubzilla-History - en

Hubzilla-History

If you don’t just want a historical outline of the development of Hubzilla, but also want to understand the intention behind it and what it can do, you should take a look at the creator of this software, Mike Macgirvin.

Mike Macgirvin is a tech-savvy and ambitious software developer. His CV is impressive, as he has been involved in many things that we now take for granted on the internet (e.g. IMAP). He helped develop the protocol and system of e-mail and worked for NASA, for example, for whom he wrote an e-mail client and a forum software; he developed messaging systems for Netscape and led a group at Sun and AOL that developed groupware and communication servers.

In 2010, he turned away from Facebook out of frustration (he was particularly concerned about the importance of privacy on this network) and realised that there was no adequate alternative to this social media system. There was Status.net, which served more the Twitter area, and Diaspora, which saw itself as a Facebook alternative, but due to its design (pure hobby product) could not meet expectations.

And so he developed the protocol DFRN (Distributed Friends and Relations Network), which allowed the basic concept for establishing contacts and cross-server communication and also placed an emphasis on data protection. The core features were the authenticated channel between communication partners, which ensured that the user at both ends is actually the user they claim to be, and the ‘Magic Auth’, which makes it possible to access the content of another user’s server (if they have shared it) without having an account there (one of the features that still enable Hubzilla’s special capabilities today). DFRN was released on 2 July 2010.

His social network software called ‘Mistpark’ was also based on this communication protocol. Within a very short time, federation with OStatus was implemented, RSS feeds and e-mail were built in and interfaces to Facebook, Twitter and Google were provided.

At the end of 2010, the software was renamed ‘Friendika’, and at the beginning of 2011, the option of federating with Diaspora was added. At the end of 2011, Friendika was finally renamed ‘Friendica’.

In 2012, Mike realised that Friendica would never be able to be a real accepted alternative to Facebook. His basic idea was to create a system that would enable highly integrated, privacy-friendly and decentralised services, i.e. a decentralised, secure CMS. So he started developing a new communication protocol: Zot, which was introduced and published in July 2012. Based on Zot, he developed a new system called ‘red’ (Spanish for ‘network’) as a fork of Mistpark/Friendica, which was more of a groupware and a CMS system with cloud services, but still contained the social network components. It added blogging features, WebDAV, CalDAV and CardDAV, and a range of content management tools. Hubzilla, which was not yet called that at the time, was born. The system was then renamed ‘Redmatrix’ because it appeared in web searches under the ‘collective term’ red among others and was hardly found. An outstanding feature of red/Redmatrix was the nomadic identity, which not only simplified moving from one server to the next, but also allowed the simultaneous operation of automatically synchronised clones on different servers. This provided unbeatable reliability, because if one of the servers is not available, you can continue working with the identity on another server without any losses. Poorly functioning import/export functions for a move became redundant. This, in conjunction with the Magic Auth functionality, made red/Redmatrix the most flexible system available.

Incidentally, ActivityPump, which was later renamed ActivityPub, was launched at the end of 2012. Compared to Zot, it was much more ‘chaotic’ and not nearly as powerful.

In 2015, Mike Macgirvin and the Redmatrix team realised that their project was hardly noticed due to poor marketing decisions (poor communication of project goals). A fresh start was made in this regard and the project was renamed ‘Hubzilla’ because the old name was tainted by past mistakes. Mike resigned as active coordinator of the project in early 2015 and handed over leadership to the community. However, he remained active as a Hubzilla developer.

On 16 March 2016, Mastodon was released, which at that time was still based on the OStatus protocol. At that point, Hubzilla was almost four years old. ;-)

On 18 July 2017, ActivityPub was implemented in addition to the base protocol Zot as a communication protocol for interacting with other services in Hubzilla. On 3 September, Mastodon followed suit and switched to ActivityPub.

On 17 August 2018, Zot6 was released and Mike turned to new projects (Zap). Zot6 was adopted in Hubzilla on 20 February 2019.

Development of Hubzilla is still ongoing. In December 2024, Hubzilla version 10 was released, which, among other things, introduced conversation containers.


tl;dr

The history of Hubzilla goes back to July 2010.

  • Macgirvin creates a new family of Fediverse servers with Mistpark

Two years later, red / Redmatrix emerges as an independent branch based on Friendica.

  • July 2012: The Zot protocol is published; Macgirvin publishes red / Redmatrix based on Zot

At that time, Mike Macgirvin left the Friendica project and started developing Zot and a new base project called red (Spanish for ‘network’). Pretty quickly, red was renamed to Redmatrix to be found more clearly in search engines.

To ensure that the Redmatrix concept could be quickly turned into a functioning and usable server software, a markup language for websites called Comanche was developed. This allowed a page to be described and generated based on bbcode tags.

  • October 2012: ActivityPump is released
  • September 2014: ActivityPump becomes ActivityPub
  • Spring 2015: Redmatrix is renamed Hubzilla

In early 2015, interest in Redmatrix waned, not least because of a lack of marketing. The Redmatrix team agreed on a fresh start under the new name Hubzilla. Along with the new identity came a new focus: creating community websites that are linked together as part of a global community. Mike resigned as active coordinator of the project and handed over leadership to the community, but remained active as a Hubzilla developer.

  • In 2016, there were reorganisations that enabled different server roles, but with the same code base.
  • July 2017: Hubzilla now also supports ActivityPub

In July 2017, support for ActivityPub was added. Mastodon added support two months later, in September.

  • August 2018: Zot6 is released
  • February 2019: Hubzilla takes over Zot6

Zot6 was released in August 2018 and was taken over by Hubzilla in February 2019.

  • December 2024: The current major version 10 of Hubzilla is released.

In December 2024, Hubzilla 10 was released with a number of ‘under-the-hood’ improvements, such as conversation containers, and features that improve integration with the now diverse Fediverse based on ActivityPub.


A more detailed timeline can be found here: Hubzilla Timeline and History

Hubzilla Association

Hubzilla Association

Die Hubzilla Association ist ein im November 2023 gegründeter Verein nach schweizerischem Recht. Die Protagonisten und Gründungsmitglieder waren aber schon viele Jahre lang im Hubzilla-Projekt engagiert.

Der Zweck des Vereins ist die Unterstützung der Entwicklung, Förderung und Verbreitung von Hubzilla und er unterstützt die Entwicklungs- und Wartungsaufgaben der Software Hubzilla (core), von Addons, Themes, Erweiterungen und Forks.

Außerdem bietet er Support-Service für Nutzer und Administratoren und engagiert sich in Hinblick auf Vernetzung, Zusammenarbeit, Erstellung und Ergänzung der Dokumentation, sowie der Aufklärung der Öffentlichkeit.

Die Mission des Vereins ist es, die Entwicklung, Förderung und Verbreitung der Open-Source-Software Hubzilla durch die Stärkung der Gemeinschaft der Hubzilla-Software-Anwender und durch die Unterstützung der Entwickler jeglicher Komponenten. Dies erfolgt u.a. durch die Teilnahme an oder Organisation von Informationsveranstaltungen, Schulungen und Workshops, die Bereitstellung von Dokumentation für Benutzer, Administratoren und Entwickler, sowie durch die Förderung und Erleichterung der Interoperabilität zwischen Hubzilla und anderen Plattformen.

Der Vorstand besteht aktuell (Januar 2026) aus

Der Hauptentwickler Mario Vavti (Mario Vavti) ist Ehrenmitglied der Hubzilla Association.

Hubzilla gestalten

Hubzilla gestalten

Fortsetzung zu Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)

Eine Digitaluhr im simplen Text-Format in die Seitenleiste schieben und umständlich ein Hubzilla-Menü zu bauen… das ist jetzt nicht die “Hohe Schule” der Hubzilla-Gestaltung. Und auch nicht besonders schick und modern. Die Beispiele aus dem Artikel sollten nur dem grundlegenden Verständnis der Seitengestaltung bei Hubzilla dienen.

Das Thema ist auch kaum vollumfassend abzuhandeln. In diese Artikel hier gehe ich auch nur beispielhaft auf die Möglichkeiten ein und ich kann vielleicht Anstöße zu neuen Ideen geben, wie sich Nutzer ihr eigenes Hubzilla zusammenbauen können, ohne mit Admin-Rechten irgendetwas zu installieren.

Im ersten Teil habe ich ja gezeigt, wie man mit der App “Webseiten” ein Menü erstellt und dieses im PDL-Editor in die Seitenleiste packen kann… etwas umständlich und so eigentlich auch nicht vorgesehen.

Die Optik eines solchen Menüs ist ohnehin nicht sonderlich ansprechend und tut damit auch nichts gegen den Vorwurf, Hubzilla würde mit seinem Standard-Theme “Redbasic” doch recht altbacken aussehen.

Sinnvoller und auch so vorgesehen ist die Gestaltung mit selbst erstellten Blöcken. Nutzt man ein moderneres Theme, so passt sich die Optik auch halbwegs an das Theme an. So richtig schick wird es aber erst, wenn man auf ein modernes Framework zurückgreift.

Voraussetzungen

Voraussetzung für all die Dinge, die ich hier einmal vorführen möchte, sind die installierten Apps “PDL-Editor” und “Webseiten” und die Freigabe für Code für den Kanal, den man aufpeppen möchte.

Sofern man nicht selbst der Administrator ist, muss man für den letzten Punkt den Hub-Administrator kontaktieren und ihn bitten, Code für den eigenen Kanal zuzulassen. Für den Admin ist das nur ein einfacher Klick. Am besten schreibt man dem Admin bei der Bitte um Freischaltung auch gleich, wofür man das benötigt.

Sind diese Voraussetzungen geschaffen, die Apps also installiert und der Code erlaubt, kann es auch gleich losgehen.

Bootstrap und/oder W3.CSS

Die meisten Themes für Hubzilla bieten entweder ein Subset oder teilweise zumindest das Basis-Stylesheet von Bootstrap. Möchte man aber die Fähigkeiten von Bootstrap umfassend für die Gestaltung nutzen, ist es sinnvoll, das Framework auch original einzubinden.

Das funktioniert mit dem Inhaltstyp “HTML” auch völlig problemlos. Man muss nur führend im Block (gilt natürlich auch für Webseiten, wenn man sie so erstellen möchte) Bootstrap einbinden:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"   rel="stylesheet">`

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>

Damit bringt man dann allerdings eine Fremdquelle mit ein. Nun ist Bootstrap nicht extrem groß (aktuell 8,3 MB), weshalb es sich anbietet, es einfach in der eigenen Hubzilla-Cloud vorzuhalten. Dazu legt man sich am besten im Wurzelverzeichnis der eigenen Cloud ein Verzeichnis bootstrap an, in welches man dann den Inhalt der Bootstrap-Distribution hochlädt.

Eingebunden wird es dann mit

<link href="https://<URL_des_Hub>/cloud/<Kanal>/bootstrap/css/bootstrap.min.css"   rel="stylesheet">`

<script src="https://<URL_des_Hub>/cloud/<Kanal>/bootstrap/js/bootstrap.bundle.min.js"></script>

Ich persönlich nutze aber auch sehr gerne das W3.CSS Framework, weil es ohne Javascript-Bibliothek auskommt und wesentlich kompakter ist (24,2 KB).

Auch dieses Framework muss man am Beginn eines Blocks einbinden:

 <link rel="stylesheet" href="https://www.w3schools.com/w3css/5/w3.css"> 

Oder man lädt w3.css herunter, packt es z.B. in ein Verzeichnis css in der eigenen Cloud und bindet es mit

<link rel="stylesheet" href="https://<URL_des_Hub>/cloud/<Kanal>/css/w3.css">

ein.

Blöcke

Blöcke werden von der App “Webseiten” zur Verfügung gestellt. Sie dienen dazu, wiederholt benutzbare Inhalte aufzunehmen, welche man dann über den Blocknamen in Webseiten, Webseiten-Layouts oder aber auch in die Seitenlayouts von Hubzilla einbinden kann.

Der Vorteil ist, dass selbst erstellte Blöcke im ITEM-Bereich des PDL-Editors zur Verfügung stehen und per Drag-and-Drop an die passende Stelle geschoben werden können.

Ein Block kann so ziemlich “alles” beinhalten. Und man kann ihn mit verschiedenen Inhaltstypen erstellen.

Es stehen die Inhaltstypen

zur Auswahl.

bbCode erlaubt zwar keine Einbindung eines Web-Frameworks, dafür bietet es spezielle Auszeichnungen für hubzilla-spezifische Dinge.

HTML ist der universellste Inhaltstyp, sofern man sich mit HTML auskennt. Mit einem HTML-Block kann man auch die erwähnten Frameworks nutzen und tolle Effekte und Funktionen einsetzen.

Markdown eignet sich für formatierte Texte, ist also eher etwas für Beitrags-Inhalte und weniger für Blöcke, die man z.B. in die Seitenleiste einer Ansicht packt. Verwenden kann man es aber schon dafür.

(Plain) Text, also reiner, unformatierter Text, ist die einfachste Variante, gibt aber für unsere Zwecke nichts her.

Die Comanche-Layout Auszeichnungssprache ist für den Einsatz für die Dinge, welche hier behandelt werden auch nicht sinnvoll.

PHP hingegen kann man durchaus nutzen, wenn man dynamische Inhalte erzeugen möchte. Setzt allerdings das Verständnis und die Fähigkeit zum Programmieren voraus.

Ich werde jetzt hier fast ausschließlich Blöcke im HTML-Format einsetzen, weil damit die größte Flexibilität gegeben ist.

Beispiel 1: Navigationsleiste für die Kanalseite

Und jetzt fange ich einmal mit einem konkreten Beispiel an: Eine Navigationsleiste, die ich ganz oben im Inhaltsbereich der Kanalansicht einbauen möchte. Ich möchte damit Besuchern meiner Kanalseite eine einfache Navigation zu wesentlichen Bereichen meines Kanals ermöglichen. So sollen sie mit einem Klick, ohne länger zu suchen, auf meine Artikelseite, zu meinen Karten, zu meinem Wiki, meiner Galerie und zu meinem öffentlichen Kalender gelangen können. Damit es auch noch wirklich schick aussieht, gibt es als ersten Navigationspunkt eine Logo-Grafik des Hubs, die bei Anklicken zur Hub-Beschreibung führt.

hgest01

Zunächst habe ich mir für den “Home-Button” eine passende Grafik gebaut, die transparenten Hintergrund hat und zur Schriftgröße der weiteren Buttons passt (100 x 24 Pixel):

Whoville-Logo

Die Navigationsleiste realisiere ich in diesem Fall mit W3.CSS. Außerdem mach ich es noch ein wenig bunt, indem ich die Hover-Farbe für die Buttons auf verschiedene Standard-Farben des Frameworks festlege.

Den Block erstelle ich mit dem Block-Editor der App “Webseiten”. Als Namen habe ich “wnavbar” festgelegt. Als Inhaltstyp

<link rel="stylesheet" href="https://hub.hubzilla.hu/cloud/pepecyb/css/w3.css">

<div class="w3-bar w3-border w3-light-grey">
  <a href="https://hub.hubzilla.hu/page/pepecyb/about" class="w3-bar-item w3-button"><img src="https://hub.hubzilla.hu/cloud/pepecyb/whoville/whoville-logo.png" alt=""></a>
  <a href="https://hub.hubzilla.hu/articles/pepecyb" class="w3-bar-item w3-button w3-hover-green">Artikel</a>
  <a href="https://hub.hubzilla.hu/cards/pepecyb" class="w3-bar-item w3-button w3-hover-blue">Karten</a>
  <a href="https://hub.hubzilla.hu/wiki/pepecyb" class="w3-bar-item w3-button w3-hover-teal">Wikis</a>
  <a href="https://hub.hubzilla.hu/gallery/pepecyb" class="w3-bar-item w3-button w3-hover-purple">Galerie</a>
  <a href="https://hub.hubzilla.hu/cal/pepecyb" class="w3-bar-item w3-button w3-hover-red">Kalender</a>
</div>

Anschließend muss der Block im PDL-Editor noch an die oberste Stelle des Inhaltsbereichs im MODUL “channel” geschoben und die Änderungen mit Klick auf den Button “APPLY” übernommen werden.

hgest02a

Nicht schlecht für den Anfang, oder?

Beispiel 2: Nochmal das Menü aus dem ersten Teil - aber besser

Im ersten Einführungsteil hatte ich ja ein Menü zu Artikeln von mir als Beispiel gebastelt. Allerdings nicht als Block, sondern als Hubzilla-Menü, welches man nur umständlich mit dem PDL-Editor einbauen kann:

pdl14

Im Endeffekt ist ein natives Hubzilla-Menü nichts anderes als eine Liste von Links. Und eine Link-Liste kann man auch ohne die Menü-Funktion erstellen.

Für diese Beispiel jetzt, erstelle ich wiederum ein Menü zu einigen (drei) Artikeln meines Kanals. Allerdings als Link-Liste.

Der HTML-Code für den entsprechenden Block sieht dann z.B. so aus:

<a href="https://hub.hubzilla.hu/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a><br>
<a href="https://hub.hubzilla.hu/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a><br>
<a href="https://hub.hubzilla.hu/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a>

Hier einfach als einzelne Links untereinander mit dem <br>-Tag (nicht schön und elegant).

Sieht so aus:

hgest03

Oder vielleicht besser als unsortierte Liste?

<ul><li><a href="https://hub.hubzilla.hu/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a></li>
<li><a href="https://hub.hubzilla.hu/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a></li>
<li><a href="https://hub.hubzilla.hu/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a></li></ul>

Sieht schon etwas besser aus:

hgest04

In die Kanalseite eingebaut (und mit einem Titel versehen):

hgest05

Nett! Aber… Nett ist die kleine Schwester von Scheiße! 😉😂

Also packen wir mal ein wenig Schnick und Schnack vom W3.CSS Framework dazu:

<link rel="stylesheet" href="https://hub.hubzilla.hu/cloud/pepecyb/css/w3.css">

<ul class="w3-ul w3-card-4 w3-pale-green" style="width:100%">
<li><a href="https://hub.hubzilla.hu/articles/pepecyb/hhowama">Hubzilla-Häppchen: Hubzilla-Magie - OpenWebAuth / MagicAuth</a></li>
<li><a href="https://hub.hubzilla.hu/articles/pepecyb/folhsh2">Hubzilla: Hashtags folgen - Variante 2</a></li>
<li><a href="https://hub.hubzilla.hu/articles/pepecyb/irrungenwirrungen">Irrungen und Wirrungen - Hubzilla-Accounts, -Kanäle, -Profile</a></li>
</ul>

Und schon sieht es fetziger aus, oder?

hgest06

Beispiel 3: Kontakt-Widget

Nun möchte ich noch in der Seitenleiste ein Element haben, welches die Kontaktmöglichkeit mittels Delta Chat anzeigt. Dafür möchte ich den QR-Code meines Delta Chat Accounts verwenden.

Nun könnte man einfach ein Bild, nämlich den QR-Code dort hinpacken. Und das sogar mit bbCode, weil’s einfacher ist.

hgest07

Dann sieht das halt so aus:

hgest08

Nicht sehr ansprechend… und es frisst Platz, weshalb das Artikelmenü (oder andere Inhalte, falls man noch weitere in die Seitenleiste geschoben hat) nach unten rutscht und man erst scrollen muss, um es zu erreichen.

Besser wäre es, wenn dort ein Button “Kontakt” zu sehen wäre, welche bei Klick den QR-Code einblendet… und den man mit einem weiteren Klick wieder ausblenden kann. Dafür bietet sich das “Accordeon” von W3.CSS an.

Und damit es nicht so langweilig aussieht, peppe ich es noch mit einer Karte als Inhalt und einer kleinen Animation auf. Ach… und der Button wird schwarz und hat ganz leich abgerundete Ecken.

Der Code dafür:

<link rel="stylesheet" href="https://hub.hubzilla.hu/cloud/pepecyb/css/w3.css">

<button onclick="myFunction('contact1')" class="w3-button w3-block w3-black w3-left-align w3-round w3-margin-bottom">Kontakt</button>
<div id="contact1" class="w3-hide w3-container w3-animate-zoom">
<div class="w3-container">
  <div class="w3-card-4 w3-center" style="width:100%;max-width:400px">
  <h2>Delta Chat</h2>
    <img src="https://hub.hubzilla.hu/cloud/pepecyb/Pepes%20pic/delta.png" alt="" style="width:100%">
    <div class="w3-container w3-center">
      <p>derpepe@morpork.email</p>
    </div>
  </div>
</div>
</div>

<script>
function myFunction(id) {
  var x = document.getElementById(id);
  if (x.className.indexOf("w3-show") == -1) {
    x.className += " w3-show";
  } else { 
    x.className = x.className.replace(" w3-show", "");
  }
}
</script>

Schnell noch in die Seitenleiste geschoben… und schon ist die Delta Chat Karte da!

hgest09

Beispiel 4: Sinnfreier PHP-Block

Einfach, um zu zeigen, dass man auch was mit PHP machen kann, hier ein Block, der anzeigt, wann die aktuelle Seite aufgerufen wurde. Mir ist einfach nichts Nützliches eingefallen…

Dazu legt man einen Block mit dem Inhaltstyp “PHP” an. Ich nenne ihn hier einfach mal “aufrufzeit”.

Der Code ist extrem simpel!

date_default_timezone_set('Europe/Budapest');
echo 'Seite aufgerufen am: ' . date('d.m.Y - H:i:s');

Beachte hier: Es darf kein <?php davor und kein ?> am Ende stehen!

Das Ding packe ich in die Profilansicht ganz ans Ende, damit jeder weiß, wann er sich das Profil angeschaut hat:

hgest10

Soviel dazu…

Damit lasse ich es jetzt einfach bewenden. Ich wollte hier einfach nur zeigen, was über die einfachen Dinge aus dem ersten Teil mit Hubzilla alles möglich ist.

Man ist extrem frei, die Oberfläche für sich selbst, aber auch für Besucher attraktiver und praktischer zu gestalten.

Und man ist nicht auf die Fähigkeiten vorhandener Widgets und Styles vorhandener Themes beschränkt. Mit aktuellen Frameworks kann man sehr viel gestalten, was frisch und modern aussieht.

Und da geht manches, was man vielleicht gar nicht für möglich hält. So habe ich einfach einmal was ausprobiert (in einem Test-Kanal… weil ich es eigentlich nicht nutzen würde)…

Zum einfachen Verfassen von bbCode-Beiträgen nutze ich gerne den SCEditor. Den habe ich mir lokal in eine HTML-Datei abgelegt und als Lesezeichen in die Lesezeichen-Symbolleiste meines Browsers gepackt. Ein Klick und er öffnet sich… und ich kann losschreiben.

Und da dachte ich mir einfach mal: Ob man das auch in eine Hubzilla-Ansicht packen kann?

Und tatsächlich ist es ohne große Anstrengung dort umsetzbar. Sah dann so aus:

hgest11

Ihr seht also… es ist echt viel möglich. Einfach einmal ausprobieren.

Um Euch in die Frameworks einzuarbeiten oder den Einstieg in PHP zu schaffen, empfehle ich persönlich die Tutorials von w3 schools:

Viel Spaß beim Experimentieren und bei der Gestaltung Eures Hubzilla-Kanals!

I

Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)

Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)

Hier erfolgt nun eine Einführung in den PDL-Editor von Hubzilla. Dabei handelt es sich nicht um ein wirklich triviales Thema. Trotzdem werde ich versuchen,die Nutzung so einfach und nachvollziehbar zu erläutern, dass auch Neulinge und nicht so technikaffine Nutzer damit klarkommen können.

Grundlagen

Verschiedene Apps und Grundfunktionen von Hubzilla basieren auf eigens dafür gestalteten Webseiten. Der Nutzer kommt mit den dahinter liegenden Mechanismen eigentlich nicht in Berührung, er nutzt diese Seiten einfach.

Ruft man beispielsweise die App “Kanal” auf, so wird einem der eigene Kanal angezeigt.

pdl01

Ganz oben kann man das Banner des Kanals sehen. In dieses Banner sind der Kanalname und die Kanaladresse (Handle) eigebettet.

Darunter befindet sich die Navigationsleiste mit dem Hauptmenü, dem Titel des Hub, ggf. angepinnten Apps und dem App-Menü.

Interessant wird es dann aber im Bereich unter der Navigationsleiste. Hier sind bei den verschiedenen Apps die größten Unterschiede festzustellen. Bei der Kanal-Seite findet sich in der linken Seitenleiste (im unveränderten Standard-Zustand) zuoberst eine Karte mit den Kanalinformationen (Banner, Profilbild, Kurzbeschreibung, Profilinfos).

In der Mitte, im Inhaltsbereich, werden die von diesem Kanal erstellten Inhalte angezeigt.

Unter der Profilinfo-Karte befindet sich in der linken Seitenleiste eine Karte mit einem Teil der Verbindungen (beim Aufruf fremder Kanäle werden hier die gemeinsamen Kontakte angezeigt).

Darunter wiederum befindet sich eine Karte mit den Archiven der Inhalte (oberste Ebene sind die Jahre, eine Gliederungsebene darunter die Monate). Wählt man ein Archiv aus, so werden im Inhaltsbereich nur die Inhalte angezeigt, die im gewählten Archivzeitraum veröffentlicht wurden.

Unter der Archivkarte befindet sich dann die Karte der Kategorien. Hier werden sämtliche Kategorien, unter welchen Inhalte veröffentlicht wurden, aufgeführt. Ein Klick auf eine solche Kategorie führt dazu, dass im Inhaltsbereich sämtliche Inhalte angezeigt werden, die von dem Kanal unter der entsprechenden Kategorie veröffentlicht wurden.

Unter der Archiv-Karte befindet sich die Karte mit der Schlagwörter-Wolke, welche die genutzten Hashtags anzeigt und mit denen man den Inhalt des Inhaltsbereichs (Artikel des Kanals) filtern kann.

In der rechten Seitenleiste werden, sofern ungesehene Benachrichtigungen vorhanden sind, diese in einer weiteren Karte gezeigt.

So ist der “Normalzustand”.

Module mit dem PDL-Editor bearbeiten

Die verschiedenen Seiten, die man über Apps erreichen kann, werden auch als “Module” bezeichnet.

Das Aussehen dieser Seiten kann man nun als Nutzer in großen Teilen anpassen und gestalten. Intern wird der Aufbau einer solchen Seite durch eine PDL-Datei bestimmt. Diese Dateien sind Layout-Dateien, welche die Comanche Seitenbeschreibungssprache nutzen.

Damit sich der Nutzer nicht mit einer solchen Sprache auseinandersetzen muss, gibt es die App “PDL Editor”, mit welchem man den Seitenaufbau mit einem GUI verändern / erstellen kann.

Die App muss man zunächst (wie hier beschrieben installieren und aktivieren. Dann kann man sie aus dem App-Menü heraus aufrufen.

Ruft man den PDL-Editor auf, so wird als Standard die Seitenstruktur des HQ angezeigt.

Zentral am unteren Bildschirmrand findet man das Hauptmenü des PDL-Editors. Hier gibt es die Einträge

“MODULES”, “TEMPLATES”, “ITEMS”, “SOURCE” und “APPLY”.

Aus dem Menü “MODULES” kann man das zu bearbeitende Modul (das entspricht der zu bearbeitenden Seite) auswählen.

Angenommen, wir möchten die Kanal-Seite (wie sie einem selbst, aber auch Besuchern angezeigt wird) anpassen, so wählt man hier das Modul “channel” aus.

pdl02

Die PDL-Datei für die Kanalseite wird geladen und man sieht die entsprechenden, gerade beschriebenen Bestandteile (“ITEMS”) dieser Seite.

pdl03

Angenommen, wir möchten nun unsere Kanalseite mit einer Anzeige der Uhrzeit in der rechten Seitenleiste “verfeinern”, so wählt man unter “ITEMS” das Item “CLOCK” aus, “ergreift” es mit dem Mauszeiger am Kreuzpfeil-Symbol und zieht es nach rechts in die Seitenleiste.

pdl04

pdl05

Damit die Änderungen auch übernommen werden, klickt man anschließend auf “APPLY” im Hauptmenü.

pdl06

Ruft man nun die Kanalseite auf, so erscheint eine Karte mit der aktuellen Uhrzeit in der rechten Seitenleiste.

pdl07

Auf diese Weise kann man alle Seiten, die man unter “MODULES” findet, nach dem eigenen Geschmack anpassen.

Hat man seine Seite angepasst und sie ist irgendwie “so völlig zerhackstückt”: Kein Grund zur Panik! Im Hauptmenü findet man bei geänderten Layoutseiten den zusätzlichen Eintrag “RESET”. Ein Klick darauf setzt das Seitenlayout auf den Hubzilla-Standard zurück.

Ich stelle hier jetzt aber nicht sämtliche Items vor… hier darf jeder ein wenig experimentieren. Die meisten haben einen erklärenden Titel.

Klickt man im PDL-Hauptmenü auf“SOURCE“, so wird einem der Quelltext des aktuellen Layouts angezeigt. Ein Blick hier hinein hilft, mit PDL vertraut zu werden. Außerdem sind hier auch Änderungen direkt im Quelltext möglich… falls irgendwas nicht über die “ITEMS” erreichbar ist. Hierfür sollte man sich aber mit der Seitenauszeichnungssprache, den Blöcken und Modulen vorher vertraut machen.

pdl08

Nun noch eine kleine Übung für Fortgeschrittene!

Angenommen, man hat ein paar Artikel erstellt und möchte einige davon über ein Menü in der rechten Seitenleiste der Kanalseite zugänglich machen.

Das ist durchaus machbar.

Doch dafür benötigt man zunächst einmal ein Menü. Um Menüs zu erstellen, muss man allerdings die App “Webseiten” installieren und aktivieren, denn das Erstellen von Menüs ist Teil der Webseiten-Funktionalität. Also selbst wenn man keine Webseiten in seinem Kanal erstellen möchte, braucht man zum Erstellen von Menüs die App “Webseiten”. Wobei… so ganz stimmt das nicht. Man kann den Menüeditor auch anders erreichen, als über die App “Webseiten”. Dafür gibt man <url-des-hub>/menu/<kanalname> ein. Nun landet man auch in der Menü-“App”. Einfacher ist es allerdings mit der Webseiten-App.

pdl09

Ein Klick auf “Erstelle” öffnet den Menü-Editor.

pdl10

Hier muss man nun einen passenden Namen (über den man das Menü später ansprechen kann) und (optional) einen Titel für das Menü eingeben (dieser ist später auf der Webseite zu sehen).

Danach klickt man auf “Absenden und fortfahren”.

Nun landet man im Link-Editor des gerade erstellten Menüs. Hier gibt man den Titel des Menüeintrags und die dazugehörige URL ein. Man kann auch die Reihenfolge der Sortierung der Menüeinträge über das Feld “Reihenfolge in der Liste” festlegen. Hat man die Eingabe erledigt und klickt auf “Absenden und fortfahren”, kann man anschließend einen weiteren Menüeintrag eingeben. Ein Klick auf “Absenden und fertigstellen”, fügt den Eintrag hinzu und beendet den Menüeditor (man kann Menüs selbstverständlich auch im nachhinein noch bearbeiten).

Nun erscheint das neue Menü in der Liste der Menüs.

pdl11

Jetzt zurück zum PDL-Editor und dort das Kanal-Modul aufrufen.

Nun gibt es wieder zwei Möglichkeiten. Entweder, man öffnet den Quelltexteditor “SOURCE” und gibt den Eintrag für die Menükarte an der passenden Stelle per Hand ein…

Hier wählt man, wenn das Menü in der rechten Seitenleiste erscheinen soll, die Region “right_aside” und gibt dort als neue Zeile [menu]artikelmenu[/menu] ein.

pdl12

Nun noch auf “Submit” klicken und schon erscheint die neue Karte im visuellen PDL-Editor.

pdl13

Mit “APPLY” noch übernehmen… und dann ist das Menü auf der Kanal-Webseite.

pdl14

Die zweite Methode (mit der man nicht die richtige Stelle im Quelltext suchen muss) ist es, im PDL-Editor einfach ein beliebiges Item an die Stelle zu ziehen, wo das Menü erscheinen soll. Dann klickt man auf den “Edit”-Button bei diesem Item, ändert den vorhandenen Eintrag auf [menu]artikelmenu[/menu] und klickt auf “Submit”. Dann noch ein “APPLY” und man hat das selbe Ergebnis.

pdl15

Soviel erstmal zur grundlegenden Nutzung des PDL-Editors.

Bei Fragen, einfach Frage im Fediverse stellen und (@)pepecyb@hub.hubzilla.hu taggen. ;-)

J

K

Kalender

Mit der Kalender-App kann man seine Termine verwalten.

kal01

Nach Aufruf der App erscheint eine Kalender-Übersicht (ein Monat).

kal02

Durch Klicken auf einen Tag kann man ein Ereignis erzeugen. In der Eingabemaske (verkürzte Ansicht, lässt sich durch Klicken auf “mehr” erweitern) kann man nun die wesentlichen Inhalte eingeben.

kal03

kal04

kal05

Für diese Einträge ist ebenfalls wieder detaillierte Berechtigungen festlegen, so dass man private Termine und öffentliche / gemeinsame Termine in ein und demselben Kalender erfassen kann.

kal06

Kanal-Ansicht

Die App “Kanal” (Kanal-Ansicht) führt zu einer Anzeige der eigenen Kanal-Inhalte.

kans01

kans02

Außerdem wird in dieser Ansicht auch das Header-Bild gezeigt (dafür muss man weiter nach oben scrollen).

kans03

Die Ansicht zeigt alle Inhalte, die von dem Kanal gepostet und geteilt wurden, sowie Status-Postings z.B. zu Kalendereinträgen oder anderen Ereignissen. Mit der Kanal-Ansicht kann man sich einen Überblick über die eigenen Aktivitäten verschaffen, ohne dass Inhalte anderer auftauchen.

kans04

Kanalrollen

Kanal-Rollen legen fest, welche Rechte bei der Interaktion mit einem Kanal gegeben sind. Sie sind unter “Einstellungen” → “Kanal Einstellungen” erreichbar.

kanro01

Hier kann für einen Kanal die Rolle festgelegt werden. Kanal-Rollen haben auch Einfluss auf Kontakt-Rollen, weil individuelle Rechte, die von den Kanal-Rollen vorgegeben sind und vererbt werden, dort die eigenen Einstellungen überschreiben.

kanro02

kanro03

Es gibt vier Kanal-Rollen:

Öffentlich

Der Kanal ist ein sehr freizügiges soziales Netzwerkprofil, das mit anderen föderierten sozialen Netzwerken kompatibel ist. Die Privatsphäre hat eine geringere Priorität als der einfache Zugang und die Verbindung mit anderen. Jeder im Netzwerk kann Ihre öffentlichen Beiträge kommentieren und Ihnen private Nachrichten schicken. Standardmäßig sind Beiträge und veröffentlichte Artikel öffentlich, aber Sie können dies bei der Erstellung des Artikels überschreiben und einschränken. Sie sind im Verzeichnis aufgeführt. Ihre Online-Präsenz und Ihre Verbindungen sind für andere sichtbar. Dieser Modus kann Ihre Anfälligkeit für unerwünschte Mitteilungen und Spam erhöhen. Der “klassische” Social-Media-Account.

Persönlich

Standardmäßig sind Beiträge und veröffentlichte Elemente öffentlich, aber Sie können dies bei der Erstellung des Elements außer Kraft setzen und einschränken. Sie sind im Verzeichnis aufgeführt. Ihre Online-Präsenz und Ihre Verbindungen sind für andere sichtbar. Nur Ihre unmittelbaren Verbindungen können Ihre öffentlichen Beiträge kommentieren und Ihnen private Nachrichten schicken.

Community Forum

Der Kanal ist ein typisches Forum. Standardmäßig sind Beiträge und veröffentlichte Artikel öffentlich. Mitglieder können Beiträge per !mention oder wall-to-wall posten. Das Einstellen von Fotos und anderen veröffentlichten Beiträgen ist gesperrt. Der Kanal ist im Verzeichnis sichtbar. Mitglieder werden automatisch hinzugefügt.

Benutzerdefiniert

Dies ist die genaueste Einstellung für Kanal-Rechte. Alle Rechte können fein-granular festgelegt werden. Vorsicht: Wer hier die falschen Einstellungen wählt, kann seinen Kanal unbrauchbar machen. Zum Glück lassen sich die Rechte auch wieder ändern, so dass man solche Fehlfunktionen beheben kann. Es ist sinnvoll, sich bei jedem einzelnen Recht zu überlegen, welche Auswirkungen es für einen selbst, als Kanalbesitzer, aber auch für andere Nutzer hat.

Für jeden Regelungspunkt sind folgende Einstellungen möglich:

  • Nur ich
  • Nur die, denen Du es explizit erlaubst
  • Angenommene Verbindungen
  • Beliebige Verbindungen
  • Jeder auf dieser Webseite
  • Alle Hubzilla-Mitglieder
  • Jeder authentifizierte
  • Jeder im Internet

Um die benutzerdefinierte Rolle zu bearbeiten, wählt man in den Einstellungen den Punkt “Privacy-Einstellungen”. Rechts unten findet man den Button “Benutzerdefinierte Konfiguration der Channel Role”. Klickt man darauf, erscheint ein Warn-Dialog, der auf die Risiken einer fehlerhaften Konfiguration aufmerksam macht. Bestätigt man, dass man die Rechte bearbeiten möchte, öffnet sich der Einstellungs-Dialog für die benutzerdefinierten Rollenrechte.

kanro04

kanro05

Jetzt kann man die einzelnen Regeln festlegen:

  1. Kann meinen Kanal-Stream und meine Beiträge sehen
  2. Kann mir die Beiträge aus seinem Kanal schicken
  3. Kann mein Standardprofil sehen
  4. Kann meine Verbindungen sehen
  5. Kann meine Datei- und Bilderordner sehen
  6. Kann in meine Datei- und Bilderordner hochladen/ändern
  7. Kann die Webseiten meines Kanals sehen
  8. Kann meine Wiki-Seiten sehen
  9. Kann Webseiten in meinem Kanal erstellen/ändern
  10. Kann meine Wiki-Seiten bearbeiten
  11. Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
  12. Kann mir direkte Nachrichten schicken
  13. Kann Profile und Profilsachen mögen/nicht mögen
  14. Kann mit mir chatten
  15. Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln
  16. Kann meinen Kanal administrieren
  17. Gruppe Akteur - Erlauben Sie diesem Kanal, als Forum zu fungieren

kanro06

kanro07

Für weniger “spezielle” Kanäle wird empfohlen, bei den Punkten 1. “Kann meinen Kanal-Stream und meine Beiträge sehen”, 5. “Kann meine Datei- und Bilderordner sehen”, 7. “Kann die Webseiten meines Kanals sehen” und 8. “Kann meine Wiki-Seiten sehen” auf “Jeder im Internet” zu setzen und Beschränkungen über Privacy Gruppen festzulegen.

Der letzte Punkt sorgt dafür, dass sich der Kanal wie ein Community Forum verhält, also Postings per !mention oder wall-to-wall erfolgen müssen.

Kanäle

Was sind Kanäle?

Kanäle sind einfach Sammlungen von Inhalten, die an einem Ort gespeichert sind. Ein Kanal kann alles repräsentieren. Es könnte Sie vertreten, eine Website, ein Forum, Fotoalben, alles. Für die meisten Menschen ist ihr erster Kanal „Ich“.

Die wichtigsten Funktionen für einen Kanal, der „mich“ repräsentiert, sind:

  • Sichere und private „Spam-freie“ Kommunikation
  • Identität und „Single-Signon“ im gesamten Netzwerk
  • Datenschutzkontrollen und Berechtigungen, die sich auf das gesamte Netzwerk erstrecken
  • Verzeichnisdienste (wie ein Telefonbuch)

Kurz gesagt, ein Kanal, der dich repräsentiert, ist „Ich, im Internet“.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Karten - ein unterschätztes Feature

Karten - ein unterschätztes Feature

Sofern der Admin das Addon “Cards” aktiviert hat, kann man als Nutzer die App “Karten” installieren und im App-Menü und/oder der Navigationsleiste verfügbar machen.

Aber was sind nun Karten? Wofür taugen sie?

Die Beschreibung des Addons gibt wirklich nicht viel her:

Persönliche Planungskarten erstellen

Aha…

In der Hilfe findet man, wenn man Informationen zu den Addons sucht, auch nicht wirklich viel:

Karten stellen einen dauerhaften Bereich für die Zusammenarbeit dar, der vom Social Stream getrennt ist. Sie sind etwas leichter als Webseiten und Wikis zur schnellen Organisation von Informationen und haben den Vorteil, dass sie Zusammenarbeit und Kommentare ermöglichen. Sie eignen sich gut für die Organisation komplexer Aufgaben, bei denen es häufig zu Aktualisierungen und Feedback kommt.

Und in einem alten (im Netz nicht mehr verfügbaren) Artikel von Andrew Manning heißt es:

Dein Team plant eine Veranstaltung und du musst die verschiedenen Aufgaben detailliert beschreiben, die du durchführen musst, um dies zu erreichen. Du möchtest über die Kommentare von Teammitgliedern aktuelle Konversationen führen, während ihr zusammenarbeitet, um die einzelnen Aufgaben zu definieren und durchzuarbeiten. Wenn du sie kategorisierst, kannst du die Aufgaben flüssig in Gruppen organisieren, die für deine Ziele sinnvoll sind.

Fein. Also damit kann man irgendwie einzelne Aufgaben von Projekten organsisieren, anderen ermöglichen, sich daran zu beteiligen… und sie werden nicht föderiert, verbleiben also auf dem eigenen Hub.

Brauch ich sowas?

Ich selbst hatte bisher keine Verwendung dafür. Bisher… denn Karten sind durchaus vielseitiger nutzbar (nicht unbedingt im ursprünglichen Sinn).

Anlässlich einer Frage im Hubzilla Support Forum, bei welcher es darum gibt, ob es bei Hubzilla auch sowas wie “Bookmarks” gibt, wurden die Karten mit einer diesbezüglichen Verwendung von hosh ins Spiel gebracht. Die Frage nach Bookmarks zielte nicht auf die Bookmarks / Lesezeichen von Hubzilla an, weil es dabei um tatsächliche URL geht, die man sichern kann, sondern um ein Feature, welches bei anderen Fediverse-Diensten als “Bookmark” oder “Lesezeichen” bezeichnet wird: Das Ablegen von Postings in einer Link-Sammlung… am besten auch noch kategorisiert.

Dafür bietet Hubzilla das Speichern in Ordnern. Das macht genau das, was vom Fragesteller im Grundsatz erwartet wurde.

Hosh antwortete in dem Thread, dass er seine Beitrags-Bookmarks mittels Karten organisiert. Er verlinkte auch auf seine Karten-Sammlung. Tatsächlich ist das Organisieren von Inhalten, welche man sich merken möchte, mit Karten eine wirklich tolle Sache. Karten können nämlich mit Kategorien versehen werden, die dann in der App “Karten” in der linken Seitenleiste aufgeführt werden. Es handelt sich bei Karten um Beiträge, welche, wie gesagt, nicht föderiert werden, nicht so aufwendig sind, wie Artikel und anders organisiert sowie schlanker als Wikiseiten oder Webseiten.

Im Endeffekt kann man Karten auch sehr gut als quasi kategorisierten Notizzettel-Kasten verwenden (abgesehen von der ursprünglichen Idee der Verwendung). Damit ist es, neben der Nutzung z.B. für eine kategorisierte Bookmark-Sammlung, auch als ein adäquater Ersatz für die App “Notizen” geeignet (letztere ist derzeit ja ein einziger großer “Notizzettel… und nicht mehr”).

Und wie nutzt man sie nun? Das ist keine Wissenschaft.

Man ruft die App “Karten” auf.

Bei der ersten Benutzung ist sie noch leer.

karten02

Um eine neue Karte anzulegen, klicken wir nun in das Feld “Karte hinzufügen” und landet im Karten-Editor.

karten03

Er entspricht dem Editor für “Artikel”, weist also ein Feld für den Titel, für eine Zusammenfassung, für Kategorien und ein Feld für den “Link zur Seite”, sowie ein Eingabefeld für den Inhalt auf. Es sind Formatierungsmöglichkeiten wie auch bei anderen Beiträgen vorhanden und man kann mittels Berechtigungs-Einstellungen festlegen, wer die Karte überhaupt sehen darf.

Der Titel ist zwar optional, aber durchaus sinnvoll, so dass man sich das Ausfüllen des Feldes durchaus angewöhnen sollte.

Eine Zusammenfassung (Summary) bietet sich eigentlich nur bei größeren Inhalten an und ist eigentlich eher etwas für Artikel. Allerdings kann man mit der Zusammenfassung eine Art Inhaltswarnung verwirklichen. Dafür kann es taugen, wenn auch andere Nutzer auf unsere Karten zugreifen möchten (und dürfen).

Wirklich sinnvoll ist die Angabe mindestens einer Kategorie, denn diese werden in der linke Seitenleiste aufgeführt. Damit kann man seine Karten kategorisieren und sortieren. Klickt man später links auf eine Kategorie, werden nur die Karten angezeigt, welche mit der entsprechenden Kategorie markiert wurden.

Der “Link zur Seite” wird von Hubzilla automatisch befüllt und kann dafür genutzt werden, die Karte anderen per Link zugänglich zu machen. Der Link zu einer Karte hat dann folgendes Format:

<HUB>/cards/<KANALHANDLE>/<LINK ZUR SEITE>

Hubzilla erzeugt aber ziemlich “kryptische” Links, weshalb es sinnvoll ist, hier selbst einen “sprechenden”, also verständlichen, Verweis einzugeben.

Beispiel für einen automatisch erzeugten Link gefällig? Bitte:

karten07

…ergibt:

karten08

Als Beispiel legen wir jetzt einfach einmal eine Karte mit einem externen Linkverweis an… z.B. auf die Hubzilla KnowledgeDB.

karten04

Nach dem Speichern erscheinen nun in der vorher leeren App sowohl die gerade eingegebene Karte, als auch zwei Kategorien in der linken Seitenleiste.

karten05

Die Kategorie “Alles” wird automatisch erzeugt, sobald die erste Karte angelegt wird. In ihr werden sämtliche (für den Nutzer sichtbaren) Karten angezeigt. Es ist auch die Kategorie, wie nach Aufruf der App “Karten” angezeigt wird.

Ein Klick auf die Kategorie “Links” ändert derzeit noch nichts, weil wir eh nur eine Karte haben, die zu dieser Kategorie gehört.

Wenn wir mehrere Karten angelegt haben, füllt sich die Kategorie “Alles”, bis es unübersichtlich wird.

karten06

Nun können wir uns die Karten durch die Kategorie gefiltert anzeigen lassen. So bringt in meinem Beispiel ein Kick auf die Kategorie “Hubzilla” nur die beiden Karten zu diesem Thema auf den Screen.

karten06a

Karten sind also, neben dem vermutlich selten genutzten ursprünglichen Verwendungszweck “persönliche Planungskarten”, ein wirklich gute und sinnvolle Möglichkeiten, Informationen, Links, Bookmarks, Notizen und viele andere Sachen kategorisiert zu erfassen.

Kontaktrollen

Die App Kontakt-Rollen dient dazu Rollen (also eine Sammlung von Rechten und Möglichkeiten) für Kontakte zu erstellen. Diese Rollen können dann einem Kontakt oder allen Kontakten einer Privacy Gruppe (nicht der Gruppe selbst) zugewiesen werden. Damit werden die Möglichkeiten von Kontakten eingeschränkt oder erweitert.

kontrol01

Die Rollenberechtigungen sind:

  • Kann meinen Kanal-Stream und meine Beiträge sehen
  • Kann mir die Beiträge aus seinem Kanal schicken
  • Kann mein Standardprofil sehen
  • Kann meine Verbindungen sehen
  • Kann meine Datei- und Bilderordner sehen
  • Kann in meine Datei- und Bilderordner hochladen/ändern
  • Kann die Webseiten meines Kanals sehen
  • Kann meine Wiki-Seiten sehen
  • Kann Webseiten in meinem Kanal erstellen/ändern
  • Kann meine Wiki-Seiten bearbeiten
  • Kann auf meiner Kanal-Seite (“wall”) Beiträge veröffentlichen
  • Kann mir direkte Nachrichten schicken
  • Kann Profile und Profilsachen mögen/nicht mögen
  • Kann mit mir chatten
  • Kann meine öffentlichen Beiträge in anderen Kanälen zitieren/spiegeln
  • Kann meinen Kanal administrieren
  • Gruppe Akteur - Erlauben Sie diesem Kanal, als Forum zu fungieren

Bei der Auswahl der Rollenberechtigungen ist zu beachten, dass einige Berechtigungen durch die Kanal-Berechtigungen vererbt werden. Diese vererbten Berechtigungen haben Priorität, können also hie nicht überschrieben werden.

In der App kann man bestehende Rollen bearbeiten und neue Rollen erstellen.

kontrol02

kontrol03

Mit dem Button “Absenden” werden die Berechtigungen der Rollen gespeichert.

Kontakt-Tool

Das Kontakt-Tool eines Kontaktes erreicht man in der App Verbindungen. Am rechten oberen Rand eines Kontakts gibt es den Button “Bearbeiten”, der dieses Tool öffnet.

kontool01

Mit dem Kontakt-Tool kann man verschiedene Aspekte eines Kontakts einstellen.

Man kann dem Kontakt eine Kontakt-Rolle zuweisen.

kontool02

Man kann den Kontakt einer Privacy Gruppe zuordnen.

kontool03

Man kann dem Kontakt ein Profil zuordnen (damit taucht der Kontakt nur in diesem Profil auf).

kontool04

Man kann den “Beziehungsgrad” festlegen.

kontool05

Man kann Inhaltsfilter definieren. Damit werden nur Beiträge des Kontakts gezeigt, welche die Filter passieren.

kontool06

Und es gibt noch weitere Kontakt-Tools, mit denen man die Zugriffsrechte oder das Profilfoto neu laden kann. Außerdem kann man den Kontakt blockieren, ignorieren, archivieren oder löschen.

kontool07

Ein Klick auf “Absenden” übernimmt die Änderungen.

Unterbinden von Kommentaren

Unterbinden von Kommentaren

Hubzilla erlaubt es ja, obwohl Kommentare bei den Standard-Kanalrollen “Öffentlich” und “Persönlich”, sowie “Community Forum” grundsätzlich erlaubt sind, für einzelne Postings (Startbeiträge) das Kommentieren zu verbieten.

Dazu gibt es im Beitragseditor in der Toolbar das Symbol chat-dots/chat. In der Standardeinstellung sieht man dort das Symbol mit den drei Punkten: chat-dots. Dies symbolisiert, dass Kommentare (also Antworten) auf das Posting erlaubt sind. Klickt man darauf, so verschwinden die drei Punkte: chat. Und dies wiederum bedeutet, dass Kommentare zu diesem Beitrag nicht erlaubt sind.

Hubzilla-Kanäle, welche dieses Posting erhalten sehen dann, dass es gar keine Antwortmöglichkeit gibt. Das Symbol arrow-90deg-left , mit welchem man den Kommentareditor öffnet, ist nicht vorhanden. Es ist also klar: der Verfasser erlaubt keine Kommentare/Antworten zu diesem Posting.

Das ist aber bei anderen Fediverse-Diensten nicht so. Man sieht nicht, dass Kommentare nicht erlaubt sind und meist kann man sogar eine Antwort zu dem Posting verfassen und abschicken.

Ich erläutere das jetzt hier einmal für die sehr beliebte Plattform Mastodon.

Hier die Protagonisten:

  1. Anton: Anton hat einen Hubzilla-Kanal mit der Kanalrolle “Öffentlich”.
  2. Berta: Berta hat einen Mastodon-Account.
  3. Cäsar: Cäsar hat auch einen Mastodon-Account.

Und die Beziehungen:

  1. Anton ist mit Berta im Fediverse verbunden, aber nicht mit Cäsar.
  2. Berta folgt im Fediverse dem Anton (sie sind ja über den Anton-Kanal verbunden) und auch dem Cäsar (welcher ihre ebenfalls folgt).
  3. Cäsar folgt der Berta und wird von dieser auch gefolgt.

Es wird gepostet

Nun veröffentlicht Anton ein Posting, für welches er Kommentare verbietet (chat).

  1. Das Posting erscheint im Stream von Anton.
  2. Das Posting erscheint in der Timeline von Berta.
  3. Cäsar bekommt von alledem nichts mit.

Leider funktioniert Mastodon nicht so, dass Berta sieht, dass Anton gar keine Kommentare zu seinem Posting haben möchte. Berta sieht unter dem Posting sogar das Symbol zu antworten.

Jetzt denkt sich Berta, da gebe ich mal meinen Senf dazu und Kommentiert Antons Beitrag. Das funktioniert auch reibungslos. Der Kommentar wird abgeschickt…

  1. und er erscheint auch in der Timeline von Berta. Sie kann sich auch den Thread vom Startposting anzeigen lassen, wo ihr Kommentar normal als Antwort für sie zu sehen ist.
  2. Anton bekommt aber davon, dass Berta geantwortet hat, nichts mit. In seinem Stream gibt es weder den Kommentarbeitrag von Berta, noch erscheint der Kommentar unter seinem Posting.
  3. Cäsar bekommt ebenfalls nichts von der Antwort Bertas mit. Bei ihm gibt es in der Timeline weder das Posting von Anton, noch den Kommentar von Berta.

erste

Bedeutet: Berta schmort im eigenen Saft. Sie kommentiert, sieht das auch, aber sie ist die Einzige,die den Kommentar sieht.

Jetzt wird es aber etwas kurioser: Das gilt nur, wenn Cäsar nicht mit Anton verbunden ist (es genügt nicht, wenn er Anton nur folgt, es muss eine echte beiderseitige Verbindung zwischen Anton und Cäsar bestehen).

Geänderte Beziehungen:

  1. Anton ist mit Berta und mit Cäsar im Fediverse verbunden.
  2. Berta folgt im Fediverse dem Anton (sie sind ja über den Anton-Kanal verbunden) und auch dem Cäsar (welcher ihre ebenfalls folgt).
  3. Cäsar folgt der Berta und wird von dieser auch gefolgt. Und er folgt Anton, der ihm auch folgt (Verbindung).

Es wird wieder gepostet

Anton veröffentlicht ein weiteres Posting, für welches er Kommentare verbietet (chat).

  1. Das Posting erscheint im Stream von Anton.
  2. Das Posting erscheint in der Timeline von Berta.
  3. Das Posting erscheint in der Timeline von Cäsar.

Das war auch so zu erwarten.

Nun entschließt sich Berta erneut, eine Antwort auf das neue Posting von Anton zu schreiben. Sie verfasst den Kommentar und schickt ihn ab.

  1. Der Kommentar von Berta erscheint wieder in ihrer Timeline, so wie zuvor.
  2. Der Kommentar erscheint nun aber auch in der Timeline von Cäsar. Ruft er das Posting als Thread auf, so erscheint Bertas Kommentar als Kommentar zu dem Posting dort. Das ist schon einmal der Unterschied!
  3. Anton sieht davon nichts. Sein Posting bleibt kommentarfrei und der Kommentar erscheint auch nicht in seinem Stream.

Cäsar meint nun, ebenfalls etwas zu dem Posting und zu der Antwort von Berta schreiben zu müssen und antwortet seinerseits.

  1. Die Antwort von Cäsar erscheint nun in der Timeline von Berta und ist auch im Thread des Postings sauber einsortiert.
  2. Anton bekommt von alledem nichts mit.

zweite

Bedeutet: Wenn Cäsar auch mit Anton verbunden ist, schmoren jetzt Berta und Cäsar im eigenen Saft. Sie könnten da nun eine heiße Diskussion beginnen, die nur sie beide sehen. Anton lebt weiter stressfrei.


Ein weiteres Experiment hat gezeigt: Bei Misskey verhält es sich genauso.


Man mag vermuten, dass Friendica die Kommentarsperre berücksichtigt. Dem ist aber nicht so. Auch Friendca ermöglicht das Antworten und verhält sich ähnlich wie Mastodon und Misskey.


Mitra: dito!

L

Lazy loading - Threadansicht - Kommentieren

Lazy loading - Threadansicht - Kommentieren

Mit der Version 10.4 haben sich die Ansicht und das Handling der Threads im Stream verändert.

Lazy loading / Threadansicht

Aufgrund der Tatsache, dass im föderierten Fediverse zunehmend auch sehr umfangreiche Threads mit teilweise auch sehr vielen Reaktionen auftauchen, haben sich die Entwickler entschlossen, das Laden von Threads in sinnvolle kleinere “Häppchen” aufzuteilen. Damit wird der Stream schneller aufgebaut, als wenn immer die kopletten Threads mit sämtlichen Kommentaren und Reaktionen auf einen Rutsch geladen werden würden.

Es wird nun der Ausgangsbeitrag und die letzten drei Kommentare geladen und angezeigt. Das mach den Stream übersichtlicher und verringert die Darstellungszeit.

Gibt es mehr Kommentare, als die drei angezeigten, so erscheint unter dem Startbeitrag die Schaltfläche “–––”. Klickt man auf diese, so werden die restlichen Kommentare geladen und in chronologischer Reihenfolge angezeigt.

–––

Da es möglich ist, auch direkt auf Kommentare zu einem Posting zu antworten, man also Kommentare kommentieren kann, ist eine flache Darstellung nicht optimal. Man sieht dadurch nicht, ob sich ein Kommentar auf das Ausgangsposting bezieht, oder auf einen vorherigen Kommentar.

Hier greift nun die zweite Stufe des Lazy loading. Kommentare zu Kommentaren werden nach dem Erweitern des Threads mittels der “–––”-Schaltfläche noch nicht ausgeklappt. Gibt es zu einem Kommentar einen weiteren Kommentar, wird dies durch eine Sprechblase unter dem Kommentar signalisiert. Eine Zahl neben der Sprechblase zeigt außerdem an, wie viele Unterkommentare es gibt (auf einer Ebene… Kommentare zu Kommentar-Kommentaren und noch tiefer verschachtelte Kommentarebenen werden nicht gezählt).

lazy01

Klickt man auf die Sprechblase, werden die Antworten auf die Kommentare geladen und angezeigt. Weitere, tiefere Kommentarebenen bleiben auch jetzt ausgeblendet, werden mit Sprechblasen angezeigt und klappen nach einem Klick auf dieses wiederum auf.

Um zu verdeutlichen, welche Unterkommentare zum Kommentar gehören, wird am linken Rand des Streams im Bereich der zusammenhängenden Kommentare eine farbige Linie angezeigt.

lazy02

Ein weiterer Klick auf die Sprechblase ersetzt diese farbigen Linien durch Einrückungen, stellt verschachtelte Kommentare also in einer Baumansicht dar.

lazy03

Wer keine Thread-Ansicht möchte, kann dies unter “Einstellungen” → “Anzeige-Einstellungen” → “Inhaltseinstellungen” mit dem Deaktivieren von “Threaded conversation view” erreichen.

Kommentieren

Der Kommentareditor, der über das Icon kommentieren01a geöffnet wird, ist nun ein modaler Dialog. Es wird kein Eingabefeld unter dem zu kommentierenden Posting angezeigt, sondern der Editor wird als überlagerndes Fenster zur Verfügung gestellt.

Das mach es erforderlich, seinen Workflow ein wenig anzupassen. Man gewöhnt sich aber recht schnell daran, wenn man die Änderung nicht pauschal für sich ablehnt.

Ein vermeintlicher Nachteil ist, dass man nach dem Öffnen des Kommentar-Editors nicht mehr durch den Thread scrollen kann und man auch keine Textpassagen markieren und Kopieren kann, um diese z.B. als Zitat in den Kommentar einzufügen.

Dabei funktioniert das trotzdem… es ist also wirklich nur ein vermeintlicher Nachteil.

Schließt man den geöffneten Kommentar-Editor entweder durch Klicken auf das Schließen-Symbol (“X” oben rechts) oder durch einen Klick in den Thread, kann man sich den Thread anschauen und auch markieren und kopieren. Öffnet man den Kommentar-Editor erneut, ist der bisherige Inhat weiterhin vorhanden.

Es geht also ganz einfach!

Möchte man verhindern, dass Kommentare kommentiert werden können, kann man dies mit dem “Beitrags-Menü” (⋮ unten rechts) → “Konversationsmerkmale” durch Abschalten von “Auf Kommentare antworten” ausschalten.

lazy04

Hat man das getan, kann nur noch der Ausgangs-Beitrag kommentiert werden. Nun erscheint auch wieder am Ende des Threads das altbekannte Eingabefeld für Kommentare.

Zu schmaler Kommentar-Editor?

Es gibt Kritik daran, dass das modale Fenster des Kommentar-Editors sehr klein ist. Und das stimmt. Hat auch mich genervt. Man kann es zwar vertikal vergrößern, aber die beschränkte Breite bleibt unveränderbar.

lazy05

Es gibt aber eine tolle Lösung, die Chris im Support-Forum veröffentlicht hat:

Voraussetzung ist, dass der Kanal die Erlaubnis hat, Code auszuführen. Das muss der Admin des Hubs freischalten.

Man erstellt dann mit der App “Webseiten” einen HTML-Block mit folgendem Inhalt:

<style>
@media (min-width: 576px) {
.modal {
--bs-modal-width: 1000px !important;
}
.comment-edit-text.expanded {
height: 17rem;
}
}
</style>

lazy06

Diesen Block (ITEM) fügt man nun mit dem PDL-Editor im MODUL “network” an beliebiger Stelle in den Inhaltsbereich ein.

lazy07

(Nicht vergessen, die Änderung mit Klick auf “APPLY” dauerhaft zu speichern.)

Nun wird der Kommentar-Editor deutlich breiter dargestellt.

lazy05a

Bilder aus der Cloud einfügen

Eine weitere, schon lange überfällige Verbesserung des Kommentar-Editors gibt es noch zu vermelden: Er verfügt jetzt über ein Icon, mit welchem man Bilder, die bereits in der Cloud vorhanden sind, direkt in den Kommentar einfügen. Es ist nun nicht mehr erforderlich, es selbst mittels bbCode-Tags “zu Fuß” zu machen, oder über den Umweg eines separat aufgerufenen Beitrags-Editors.

lazy08

Lesezeichen / Bookmarks / Favoriten

Hubzilla bietet eine Lesezeichen-Funktionalität. Das darf aber nicht mit der so benannten Funktionalität anderer Fediverse-Dienste verwechelt werden. Während Misskey und Forkeys Lesezeichen anbieten, um interessante Postings aus der Timeline zu sammeln, funktionieren die Lesezeichen bei Hubzilla anders.

Die Lesezeichen (Bookmarks, Favoriten) sind bei Hubzilla eine echte Sammlung von Links, wobei diese aus Postings im Stream selbst stammen.

Wird einem Link

[url]…[/url]

oder

[url=…]…[/url]

die Zeichensequenz #^ vorangestellt, so wird der Link im Posting mit einem Lesezeichen-Symbol versehen.

bkm01

bkm02

Solche Links können per Klick auf das Symbol der Lesezeichensammlung zugefügt werden.

bkm03

Im App-Menü (⋮) findet man die App “Lesezeichen”. Mit dieser werden sämtliche erfassten Lesezeichen aufgelistet.

bkm04

bkm05

Hier kann man sie auch bearbeiten, löschen oder per Hand weitere Lesezeichen hinzufügen.

bkm06

Eine Funktionalität der Art, wie sie von anderen Fediverse-Diensten angeboten wird (Bookmark von Postings) bietet Hubzilla aber ebenfalls: Markieren von Beiträgen (Stern).

Es gibt aber auch die Möglichkeit, Bookmarks zu erzeugen, ohne diese aus Beiträgen zu übernehmen. Dazu ruft man die nicht über das Menü erreichbare Funktionsseite <URL_des_hub>/rbmark auf. Es erscheint eine Eingabemaske für Bookmarks. ^[1]^

bookm03

Hier kann man nun ein Lesezeichen zu einer beliebigen URL selbst eingeben und zu der Bookmark-Sammlung hinzufügen.

Erzeugt man ein Bookmarklet mit dem Inhalt

javascript:javascript:(function(){var%20url=location.href;var%20title=document.title||url;window.open('[observer.baseurl]/rbmark?&url='+encodeURIComponent(url)+'&title='+encodeURIComponent(title)+'&source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1');})();

und legt es z.B. in der Lesezeichenleiste ab, so kann man mit einem Klick darauf die aktuell betrachtete Seite als Lesezeichen ablegen.


Vielen Dank für den Tipp zum rbmark-Formular und zum Bookmarklet an Harald Eilertsen und Chris.

M

Markdown

Markdown ist eine Auszeichnungssprache zur Formatierung von Texten. Sie wurde von John Gruber entworfen und der einzige Beta-tester, Aaron Swartz, half maßgeblich bei der Entwicklung der Syntax. Als Auszeichnungselemente wurden vor allem Auszeichnungsarten verwendet, die in Plain text üblich sind.

Die Syntax von Markdown findet man auf der Seite Daring Fireball.

ElementMarkdown Syntax
Überschrift# H1``## H2``### H3
Fett**fetter text**
Kursiv*kursiver text*
Kommentar> zitat
Sortierte Liste1. erstes Element``2. zweites Element``3. drittes Element
Unsortierte Liste- erstes Element``- zweites Element``- drittes Element
Codecode
Horizontale Linie---
Link[titel](https://www.beispiel.com)
Bild![alt text](bild.jpg)
Tabelle`
Code Block``````{ “vorName”: “Max”, “nachName”: “Mustermann”, “alter”: 25 }` `````
FußnoteHier ist ein Satz mit einer Fußnote [^1]``[^1]: Dies ist die Fußnote.
Heading ID### Meine Überschrift {#custom-id}
Definitionslisteterm``: definition
Durchgestrichen~~Die Erde ist eine Scheibe.~~
Taskliste- [x] Pressemitteilung schreiben``- [ ] Webseite überarbeiten``- [ ] URL teilen
EmojiDas ist so lustig! :joy:
HervorhebungIch möchte diese ==sehr wichtigen Worte== hervorheben.
TiefergestelltH~2~O
HochgestelltX^2^

Markieren von Beiträgen (Stern)

Was bei anderen Fediverse-Diensten als Lesezeichen-Setzen bezeichnet wird, heißt bei Hubzilla “Markieren”. Damit werden Beiträge aus dem Stream markiert, also “gemerkt”. Man kann sich im Stream dann die gesammelten markierten Beiträge anzeigen lassen.

Im Post-Menü (unten rechts) findet man den Eintrag “Markierungsstatus (Stern) umschalten”. Klickt man darauf, so erscheint unten links am Beitrag ein Buttonmit einem Stern und der Stern im Posting-Menü wird ausgefüllt dargestellt.

star01

star02

Filtert man den Stream dann (linke Seitenleiste) nach markierten Beiträgen, so erscheint der markierte Beitrag im Stream. Die Markierung kann man per Klick im Posting-Menü oder per Klick auf das Stern-Symbol (Button unten links am Posting) wieder rückgängig machen.

star03

Eine weitere Möglichkeit, Beiträge zu sammeln und zusätzlich zu Kategorisieren, ist das Speichern in Ordnern (in etwa vergleichbar mit den Clips von Misskey und den Forkeys).

Mein Profil

Bei Hubzilla gibt es keine Klarnamenpflicht und man muss in seinem Profil keine zusätzlichen Angaben machen.

Klickt man im Hauptmenü (oben links) auf den Menüpunkt „Profile bearbeiten“, dann werden die vorhandenen Profile angezeigt. Das Standard-Profil ist immer vorhanden. Wählt man dies per Klick, landet man in den Profil-Einstellungen. Hier kann man (man muss aber nicht… das kannst Du selbst bestimmen) mehr oder weniger persönliche und auch allgemeine Angaben zu sich selbst festlegen. Bei den Einstellungen kann man übrigens festlegen, wer welche Profilangaben sehen kann… und wer nicht… das kann öffentlich sein oder auf Nutzer beschränkt, mit denen man verbunden ist etc.

Etliches wird man nicht angeben wollen… das ist ok… die Angaben sind optional.

Wirklich sinnvoll ist es aber, dort unter „Verschiedenes“ das Feld „Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden“ mit Begriffen zu befüllen. Diese Schlüsselwörter werden im Verzeichnis verwendet und erleichtern es anderen, den eigenen Kanal anhand von Interessen zu finden.

mprofil01

Weil viele, bevor die sich mit einem Kanal verbinden, im Profil schauen, mit wem sie es da evtl. zu tun haben, kann es auch von Vorteil sein, das Feld „Erzähle uns ein wenig von Dir“ mit einigen Informationen zu versehen.

Auch ein Profilbild macht einen Kanal persönlicher, einfacher zu erkennen und kann zu interessanten Verbindungsanfragen führen.

Aber wie gesagt… ALLE Angaben sind freiwillig…

Ist man mit der Verfeinerung des Profils fertig, sollte man sein Hubzilla „organisieren“… dazu mehr im Eintrag Organisieren

Du bist der Moderator!

DU bist der Moderator!

Viele heiße Diskussionen bezüglich des Fediverse drehen sich rund ums Thema Moderation. Es geht darum, unangemessene Beiträge zu entfernen, Verfasser ggf. zu sanktionieren, Themen auszublenden, Nutzer ggf. zu sperren oder zu blockieren… es geht um die Kontrolle, ob Gesetze eingehalten werden oder ob die Community- (Server-) Regeln beachtet werden.

Und es geht drum, ob Verantwortlichen die notwendigen Instrumente zur Verfügung gestellt werden, um diese Tätigkeiten auszuführen. Es geht um Vernetzung und gemeinsame Standards, um automatische Blocklisten und die Warnung vor “bösen” Nutzern.

Bei den meisten Fediverse-Diensten liegt die Verantwortung vollständig bei den Administratoren und Moderatoren. Sie müssen ständig aufpassen, ggf. eingreifen und auch Meldungen anderer Nutzer nachgehen. Bei größeren Instanzen ist das schon eine mächtige Aufgabe.

Hubzilla ist auch in dieser Hinsicht – wie in viele anderen Bereichen – etwas anders (das hat es gemeinsam mit (streams) und Forte). Denn bei Hubzilla bist erst einmal DU der Moderator.

Ja! Richtig! Du selbst trägst die Verantwortung für Deinen Bereich auf dem Hub.

Das ist ungewohnt. Schließlich werden wir ja schon lange Zeit dazu erzogen, Verantwortung an “übergeordnete” oder “externe” Stellen abzugeben. Macht das Leben leichter und einfacher, wenn man das Denken für einen selbst, einfach anderen überlässt. Und man kann meckern, wenn da mal was nicht so gemacht wird, wie man sich das wünscht. Ach ja… und die Schuld ist damit auch ausgelagert. Praktisch!

Nun, wer Hubzilla nutzt, der muss sich ein ganzes Stück weit von dieser Konditionierung befreien. Man ist zu einem großen Teil eigenverantwortlich.

Inhaltswarnung

Das fängt schon mit den Inhaltswarnungen (kein wirkliches Moderations-Thema) an. Während andere Fediverse-Dienste zum Teil die Möglichkeit bieten, Beiträge mit einer Inhaltswarnung zu versehen, so dass sie anderswo zunächst eingeklappt erscheinen, läuft es bei Hubzilla andersrum.

Das Problem mit den Inhaltswarnungen durch den Verfasser ist recht offensichtlich: Der Verfasser muss seinen eigenen Inhalt als möglicherweise problematisch für alle möglichen denkbare anderen Nutzer einordnen… und dann die Inhaltswarnung “aktivieren”. Er muss sich also in die Gedankenwelt nahezu aller Nutzer hineindenken, um zu erkennen, dass der Inhalt womöglich irgendwem unangenehm aufstoßen könnte.

Das KANN NICHT wirklich FUNKTIONIEREN! Es wird vermutlich immer irgendwen auf diesem Planeten geben, der sich durch einen ansonsten völlig harmlosen Inhalt getriggert fühlt. Das führt außerdem regelmäßig zur “Selbstüberregulierung”. Da werden ganz normale Themen mittels Contentwarning verborgen… besser einmal mehr verstecken, als vielleicht jemanden vor den Kopf zu stoßen.

Wenn es Themen gibt, die mich persönlich triggern könnten, dann weiß doch auch ICH SELBST am besten, um welche Inhalte es geht. Ich kann doch nicht erwarten, dass sich Fremde in meine verschrobene Gedankenwelt hinein versetzen und den Schutz meiner Seele für mich übernehmen.

Und so liegt die Verantwortung, wenn man Hubzilla nutzt, auch beim Rezipienten selbst. Dieser muss sich überlegen, was ihn “triggert” und kann dann entsprechende Schutzmaßnahmen treffen. Dafür gibt es die App “NSFW”. Mit dieser kann man Bedingungen festlegen, welche zu einem Einklappen eines Beitrags führen. Näheres dazu hier: Hubzilla KnowledgeDB - NSFW und Hubzilla-Hilfe - Inhaltswarnung/NSFW.

NSFW

Bei reinen Textbeiträgen, oder textlastigen Beiträgen sollte es mit “Triggerwörtern” gut funktionieren. Bei reinen Bildbeiträgen z.B., kann es aber trotzdem problematisch werden. Man ist darauf angewiesen, dass zumindest die Bildbeschreibung ein entsprechendes “Triggerwort” enthält oder der Verfasser mit sinnvollen Hashtags arbeitet.

Nun aber zu dem, was man grundsätzlich von von einer Moderation erwartet.

Beim lesen des Streams kann es vorkommen, dass man über Postings stolpert, die irgendwie nicht in Ordnung sind. Das müssen keine Beiträge oder Kommentare sein, die Nutzer des eigenen Hubs veröffentlicht haben, sondern es kann sein, dass solche Beiträge von Verbindungen wiederholt oder geteilt werden. Oder ein Kanal, mit welchem man verbunden ist, veröffentlicht einen Beitrag, welche dann von einem fremden Kanal kommentiert wird und eben dieser Kommentar beinhaltet “problematische” Dinge.

Löschen statt nur “ausblenden”

Während man bei anderen Fediverse-Diensten einen solchen Beitrag lediglich ausblenden (filtern) kann, ist es bei Hubzilla möglich, den Beitrag tatsächlich aus dem Stream auf dem eigenen Hub zu löschen.

loeschen

Oder als Admin:

admloeschen

Blockieren / Ignorieren / Superblock

Nutzer der eigenen Verbindungen kann man über die App “Verbindungen” oder durch das “kleine, unsichtbare weiße Dreieck” mit dem Menüeintrag “Verbindung bearbeiten” mit den Kontakt Tools blockieren oder ignorieren.

dreieck

biav

Das geht mit Kanälen, zu welchen man keine Verbindung hat, ebenfalls… wieder mit dem “kleinen, unsichtbaren weißen Dreieck”, sofern man die App “Superblock” installiert hat. Dort findet sich dann der Menüeintrag “Vollständig blockieren”.

superblock

(Als Admin hat man an der Stelle sogar die Möglichkeit, einen Kanal seitenweit zu blockieren.)

Die Berechtigungen genau einstellen

Generell ist es möglich und auch sinnvoll, die Berechtigungen (Berechtigungssystem von Hubzilla verstehen), welche der eigene Kanal Fremden und Verbindungen einräumt, genau zu planen und den Kanal so einzurichten, dass man – sofern man besonderen Schutz benötigt oder vor unliebsamen Überraschungen verschont bleiben möchte – nur bestimmten Kanälen weitergehende Rechte einzuräumen. Wer ganz auf Nummer sicher gehen möchte, vermeidet es außerdem, öffentlich zu posten, sondern beschränkt Postings auf Privacy Gruppen.

Eine weitere Art, der Selbstmoderation ist das Einrichten von Filtern (Filter für Verbindungen) für Verbindungen.

Generell trägt man bei Hubzilla selbst die Verantwortung für die “Hygiene”… man ist selbst der Moderator und belastet keinen Dritten mit dieser Aufgabe.

Für den seltenen Fall, dass es einmal erforderlich wird, bezüglich eines Postings oder eines Kanals einzuschreiten, kann man aber auch den Admin, welcher auch der “Ober-Moderator der Instanz ist, auf Probleme hinweisen (siehe: Einen Beitrag melden). Der Admin hat die Möglichkeit, bestimmte Kanäle oder andere Instanzen komplett zu blockieren und er kann auch Inhalte im öffentlichen Beitragsstream komplett löschen.

N

#neuhier bei Hubzilla - erfolgreiches Onboarding

#neuhier bei Hubzilla - erfolgreiches Onboarding

Der Einstieg ins Fediverse hält einige (kleine) Hürden bereit und manch einer gibt den Versuch, das Fediverse als Soziales Netzwerk zu nutzen aus diesen (und anderen) Gründen auch rasch wieder auf.

Inzwischen gibt es zahlreiche Anleitungen, Workshops und Hilfestellungen für ein möglichst erfolgreiches Onboarding. Diese Informationen sind überwiegend an Mastodon orientiert, es lassen sich aber auch etliche Hinweise auf andere Plattformen übertragen. Besonders rar sind solche Einstiegshilfen für Hubzilla.

Wer sich als bisheriger Nutzer von Facebook einmal ins Fediverse zu schauen, der wird von Mastodon (und anderen Microblogging-Plattformen) eher enttäuscht sein. Zum häufen sich aber für diese Zielgruppe (Macroblogging, Nutzung von Gruppen, Erstellen von Seiten) zumindest die Verweise, es vielleicht besser mit Friendica zu versuchen. Noch seltener sind Hinweise auf Hubzilla, obwohl es eigentlich optimal für die Verwirklichung solcher Vorstellungen geeignet ist (und für noch viel mehr).

Hier soll es nun um einen guten und erfolgreichen Start mit Hubzilla gehen. Man ist #neuhier und möchte es sich möglichst rasch “gemütlich machen”.

Die Qual mit der Server-Wahl

Bei jedem Fediverse-Dienst steht am Anfang die Wahl einer passenden Instanz. Bei Hubzilla heißen diese Hubs. In vielen Anleitungen wird bezüglich der Auswahl besonderer Wert auf eine “passende Gemeinschaft” gelegt. Man soll die Entscheidung anhand der Betreiber, eines eventuellen festgelegten Schwerpunkts der Instanz, anhand der Nutzer oder womöglich eines regionalen Schwerpunkts treffen, um “in eine passende Gemeinschaft” zu gelangen.

Diese Punkte sind sicherlich nicht unwichtig, die überwiegende Beschränkung auf diese Aspekte bei Anleitungen vermittelt aber gleichzeitig auch ein falsches Bild vom Fediverse an sich. Es ist nämlich egal, ob man eine Instanz mit einem bestimmten Schwerpunkt aussucht, um mit Gleichgesinnten in Kontakt zu treten und sich auszutauschen. Im Fediverse “kann jeder mit jedem”, egal wo man seinen Account hat.

Der einzige Vorteil passender regionaler oder thematischer Instanzen ist, dass man dort in der jeweils lokalen Timeline (bei Hubzilla heißt das Stream) Nutzer findet, mit welchen einen vielleicht ähnliche Interessen verbinden. Das kann das Finden interessanter Kontakte etwas erleichtern.

Viel wichtiger sind aber andere Gesichtspunkte.

Oft in Anleitungen erwähnt werden hier die Nutzungsbedingungen bzw. Instanzregeln, auf die man ein Auge werfen sollte. Und das ist auch ein wesentlicher Punkt. Die Möglichkeit, sich überhaupt einen Account anlegen zu können ist sowieso Grundvoraussetzung. Für wirklich wichtig halte ich die Aktualität der Instanz-Software. Eine Instanz, die mit der Software-Version deutlich zurückliegt, ist vielleicht nicht die beste Wahl. Neue Versionen bringen nämlich neben vielleicht neuen oder verbesserten Features in der Regel auch die Beseitigung von Fehlern oder gar Sicherheitslücken mit sich. Eine Instanz, die eine veraltete Software-Version nutzt könnte ein Hinweis darauf sein, dass Updates nicht unbedingt zeitnah durchgeführt werden. Ich persönlich würde von solchen Instanzen eher abraten.

Ob eine Instanz “nachhaltig” ist (im Sinne von: die wird noch lange, lange betrieben), kann man meist nur schwerlich beurteilen. Bei nicht-nomadischen Diensten kann das ein Problem sein, bei Hubzilla ist es hingegen eher relativ, weil man seine Kanäle einfach auf andere Hubs klonen oder übertragen kann.

Wie schon öfter beschrieben, ist die beste Möglichkeit der Hub-Auswahl der Aufruf einer hubzilla-Eigenen Instanzliste. Man erreicht diese auf nahezu allen Hubs, indem man an die URL des Hubs “/pubsites” anhängt. Kennt man noch keinen Hub, dann nutzt man einfach den Hub des Hubzilla-Projekts: https://hubzilla.org/pubsites.

Auf dieser Seite werden Hubs angezeigt, die offen für Registrierungen sind.

Bei dieser Übersicht kann man auch sofort sehen, mit welcher Version der Software der jeweilige Hub betrieben wird.

Klickt man nun auf den Link zu einer solchen Instanz, landet man beim Registrierungsformular. Man sollte aber an dieser Stelle zunächst noch einen Blick auf die Hub-Informationen werfen. Wie gesagt, befindet man sich auf der Seite für die Accountregistrierung, also auf https://<DOMAIN_DES_HUBS>/register. Die Informationen zum Hub findet man aber unter https://<DOMAIN_DES_HUBS>/siteinfo. Man löscht in der Adresszeile des also “register” und tippt dafür “siteinfo” ein. Hier werden dann Informationen über den Hub angezeigt. Meist eine Beschreibung des Hubs und Informationen zum Betreiber (Wichtig: hoffentlich auch Kontaktinfos, wenn man mit dem Admin Kontakt aufnehmen möchte). Außerdem werden die Installierten Addons des Hub und die vom Hub blockierten Fediverse-Instanzen, und schließlich Informationen zur Software angezeigt.

Der leere Stream

Wie bei allen Fediverse-Diensten erwartet einen nach der Registrierung (und bei Hubzilla dem Anlegen eines Kanals) eine leere Timeline, also ein leerer Stream. Grund dafür ist, dass es im Fediverse keinen “Algorithmus” gibt, der vermeintlich interessante Postings in den Stream bringt. Solange man noch keine Verbindung hat, bleibt der Stream leer. Und das sollte man möglichst bald ändern, indem man Verbindungen zu anderen Kanälen und Accounts herstellt.

Verbindungen herstellen

Kennt man das Fediverse-Handle eines Accounts oder Kanals, also die “Fediverse-Adresse”, so kann man sich mit diesem Verbinden, indem man die App “Verbindungen” aufruft. Auf dieser Seite findet man ganz oben einen Button “+ Add”,

der bei Klick ein Eingabefeld öffnet, in welches man das Fediverse-Handle einträgt und mit einem Klick auf den Button “+” neben diesem Feld die Verbindung herstellt.

Automatische kontra manuelle Verbindungsgenehmigung

Hat man sein Profil mit sinnvollen Informationen bestückt, kann es dann aber auch bald vorkommen, dass ein fremder Nutzer eine Verbindung zu unserem Kanal herstellen möchte. Über eine solche Verbindungsanfrage wird man im Benachrichtigungsfeld informiert.

In der Standard-Konfiguration eines neuen Kanals, muss man die Verbindung zunächst manuell bestätigen. Klickt man auf die Benachrichtigung oder auf den Eintrag in der App “Verbindungen” (erkennbar durch ein rotes Label “Wartet auf Genehmigung”), kann man sich durch Klick auf das Avatarbild des anfragenden Nutzers dessen Profil anschauen, um die Entscheidung zu fällen. Oder man genehmigt sofort, wenn man ahnt oder weiß, um wen es sich handelt.

Es gibt aber auch die Option, Verbindungen automatisch, also ohne manuelle Genehmigung, anzunehmen. Diese findet man unter Einstellungen → Privacy Einstellungen:

Man sollte, falls man diese Option einschalten möchte, bedenken, dass Verbindungen bei Hubzilla immer bidirektional, also beidseitig sind. Es ist nicht nur so, dass der fremde Kanal einem selbst “folgt” Und er damit unsere Inhalte in seiner Timeline findet, sondern wir selbst den fremden Kanal damit auch automatisch folgen, dessen Inhalte also auch in unserem Stream landen.

Wo finden wir interessante Kontakte?

Ist man nun ganz neu dabei, stellt sich die Frage, wie man denn interessante Kontakte überhaupt findet. Dafür gibt es zahlreiche Möglichkeiten. Die erfolgversprechendsten Methoden sind…

Öffentlicher Stream

Einige Hubs bieten den öffentlichen Beitragsstream an. Wenn diese Funktion aktiviert ist, kann man sich den öffentlichen Stream anschauen und dort nach interessanten Kanälen Ausschau halten. In der Regel ist dieser Stream auf die Beiträge des eigenen Hubs beschränkt, weil das Aufnehmen auch fremder Streams die Moderation ggf. unpassender oder verbotener Inhalte zu einem Fulltime-Job für den Admin mutieren kann.

Verzeichnis

Eine wirklich gute Möglichkeit ist das Kanal-Verzeichnis. Dies ruft man aus dem App-Menü auf.

Das Verzeichnis ist auf das Grid beschränkt, zeigt also ausschließlich Kanäle von Hubzilla-Hubs (und anderen Diensten, die ebenfalls Nomad/Zot6 als Protokoll nutzen).

Man kann das Verzeichnis über einen Optionsschalter auch ausschließlich auf die Kanäle, die auf der eigenen Instanz existieren, beschränken.

Eine Verbindung ist schnell mit dem Button “+ Verbinden” hergestellt.

Hashtags folgen

Eine weiter Möglichkeit ist, Hashtags zu folgen und damit Postings zum eigenen Interessensgebiet in den Stream zu bekommen. Hubzilla selbst verfügt über keinen Mechanismus, global irgendwelchen Hashtags zu folgen. Man muss dafür eine Adresse mit #FediBuzz Relay zum Hashtag erzeugen und diese dann als Verbindung hinzufügen. Künftig werden solche Beiträge im Stream wiederholt, so dass man auch Zugriff auf die Handles der Teilnehmer am Thread hat. Eine ausführlichere Anleitung findet man in der Hubzilla KnowledgeDB.

Andere Quellen

Möchte man Fediverse-Handles anderer Nutzer anderer Fediverse-Dienste finden, um sich ggf. mit diesen zu verbinden, muss man einen kleinen Umweg machen.

Wenn es um Trends bei Hashtags geht, kann man z.B. Fedi Buzz aufrufen und dort beim interessanten Hashtag auf die darunter angegebene Quelle klicken, worauf man alle öffentlichen Beiträge mit dem ausgewählten Hashtag auf der jeweiligen Instanz angezeigt bekommt.

In der Regel kann man andere Fediverse-Instanzen auch ohne Account aufrufen und sich deren lokale öffentliche Timeline anzeigen lassen, um auf interessante Kanäle/Accounts zu stoßen.

Irgendwann geht es dann von selbst

Hat man einige Verbindungen, dann erschließen sich neue Verbindungen aber auch über den eigenen Stream, denn die eigenen Verbindungen wiederholen (boosten, repeaten) oftmals auch Beiträge ihrer Verbindungen (zu denen wir selbst keine Verbindung haben), worauf diese nun auch in unserem Stream landen, von wo aus wir eine Verbindung eingehen können. Oder es kommentieren Nutzer einen Beitrag einer unserer Verbindungen. Und dieser Kommentar wird dann bei uns auch im Stream angezeigt, obwohl wir keine Verbindung zum Kommentator haben.

Quellen für neue Verbindungen werden auf diese Weise immer mehr und es läuft irgendwann quasi wie von selbst.

Wichtige Apps und ihre Einrichtung

Etliche Apps, ob als Addon oder zum Basis-System gehörend, werden bei Kanalerstellung entweder zunächst nicht installiert oder sie werden zumindest nicht ins App-Menü eingebunden.

Um es sich bei und mit Hubzilla gemütlich zu machen, gibt es aber einige Apps, die auf jeden Fall installiert und erreichbar sein sollten.

Im App Menü unter “Featured Apps” findet man in der Regel “Dateien” (für den Zugriff auf die Cloud und damit auf die eigenen Uploads), “Fotos” (ebenfalls eine Cloud-Anwendung zur Verwaltung und zum Anschauen der Fotos), “Hilfe”, “Kalender”, “Kanal” (für die Anzeige des eigenen Kanalstreams), “Netzwerk” (um den Stream aufzurufen), “Verbindungen” und “Verzeichnis“. Die App “HQ” ist immer installiert und als Icon für den Zugriff in der Navigationsleiste zu finden.

Installiert, aber weder in Navigationsleiste, noch im App Menü zu finden sind die Apps “Beitrag schreiben” (ruft den Beitrags-Editor auf), “Contact Roles” (für die Verwaltung der Kontaktrollen) und die “Suche”.

Kontaktrollen / Contact Roles

Wichtig ist auf jeden Fall, sich die App “Contact Roles” ins App Menü einzubinden.

Und dann gibt es noch einige wichtige Apps, die man installieren muss (sofern sie auf dem eigenen Hub vorhanden sind).

ActivityPub-Protokoll

Wenn man (wovon ich hier einmal ausgehe) das Fediverse nutzen möchte, ist es zwingend erforderlich, die App “ActivityPub-Protokoll” zu installieren. Die Installation ist ausreichend, die App muss nicht im App Menü verfügbar sein, weil keine Einstellungen vorzunehmen sind.

NSFW

Die App “NSFW” ist ebenfalls empfehlenswert, um Inhaltswarnungen im eigenen Kanal umzusetzen.

Privacy Gruppen

Die App “Privacy Gruppen” macht sowohl eine Berechtigungssteuerung, eine Filterfunktion für den Stream, als auch eine Gruppenkommunikation möglich und sollte ebenfalls unbedingt installiert werden.

Sprache

Die App “Sprache” kann bei Bedarf installiert werden. Mit ihr kann man die Sprache des Systems (und damit der grafischen Oberfläche) umstellen.

Superblock

Auch die App “Superblock” ist sehr wichtig. Mit ihr kann man unerwünschte Nutzer aus dem Stream verbannen.

Öffentlicher Beitrags-Stream

Sofern der eigene Hub einen öffentlichen Stream anbietet und man ihn nutzen möchte (z.B., um Kontakte zu finden), muss auch die App “Öffentlicher Beitrags-Stream” installiert werden.

Wie gesagt, ist lediglich die App “HQ” in der Navigationsleiste angepinnt und damit schnell und ohne Umweg über das App Menü erreichbar. Ich empfehle zusätzlich die Apps “Netzwerk” (für die Stream-Ansicht), “Kanal” und “Verbindungen” für den Schnellzugriff in der Navigationsleiste unterzubringen.

Installieren / ins App Menü bringen / an die Navigationsleiste anpinnen

Installiert werden Apps, indem man im App Menü den untersten Eintrag “+ Apps” anklickt, dort in der Seitenleiste zum Reiter “Verfügbare Apps” zu wechseln und die gewünschten Apps per klick auf den jeweiligen “Installieren” Button zu installieren. Die Apps ins Menü und ggf. in die Navigationsleiste zu bringen, erfolgt dann durch Wechsel zum Reiter “Installierte Apps” und dort durch Klick auf das Sternchen bei einer App (für den Eintrag ins App Menü) bzw. auf die Pin-Nadel (um die App in der Navigationsleiste für den schnellen Zugriff anzupinnen).

Apps für mehr “Gemütlichkeit”

Weil wir es uns ja vorgenommen haben, es uns bei und mit Hubzilla so richtig “gemütlich” zu machen, sollten auch noch einige weitere Apps installiert werden.

PDL-Editor

Der “PDL-Editor” ermöglicht es, in einem grafischen Editor das Design der verschiedenen App-Ansichten zu gestalten.

Webseiten

Mit der App “Webseiten” kann man nicht einfach nur Webseiten gestalten, sondern auch Blöcke erstellen, die man dann mit dem “PDL-Editor” in den verschiedenen Ansichten einbauen kann. Für die Gestaltung braucht man also auch diese App.

Den Stream nutzen

Im Stream (“Netzwerk”) werden uns sämtliche Postings unserer Verbindungen angezeigt. Ebenso Kommentare auf die eigenen Postings oder auf Postings der Verbindungen. Auch Wiederholungen (Repeats, Boosts) unserer Verbindungen landen im Stream.

Reihenfolge

Die Inhalte werden in umgekehrter chronologischer Reihenfolge angezeigt. Das bedeutet, dass die neuesten Inhalte ganz oben erscheinen und wir beim Scrollen nach unten immer weiter in die Vergangenheit “reisen”.

Die Reihenfolge der Sortierung lässt sich durch den Stream-Filter “Stream anordnen” (in der Seitenleiste) anpassen. Entweder wird nach neuestem Beitrag, nach neuestem Kommentar oder nach neuestem Eintrag sortiert.

Den Stream filtern

Ebenfalls in der Seitenleiste ist ein Block mit Streamfiltern zu finden:

  1. Direktnachrichten: Bei dieser Filterauswahl werden ausschließlich Direktnachrichten in der gewählten Reihenfolge angezeigt.
  2. Ereignisse: Dieser Filter zeigt ausschließlich Kalander-Ereignisse an.
  3. Umfragen: Mit diesem Filter werden nur Postings angezeigt, die ein Umfrage enthalten.
  4. Privacy Gruppen: Hier kann man eine Privacy Gruppe auswählen. Hat man eine ausgewählt, werden lediglich Inhalte von Kontakten angezeigt, die sich in der Privacy Gruppe befinden.
  5. Foren: Hat man Verbindungen zu Foren, so werden sie hier aufgeführt. Mit der Auswahl eines Foren-Kanals werden ausschließlich Postings aus dem betreffenden Foren-Stream angezeigt.
  6. Markierte Beiträge: Diese Auswahl zeigt ausschließlich Inhalte an, die man mit einem “Sternchen” markiert (sich gemerkt) hat.
  7. Meine Beiträge: Hiermit werden ausschließlich die eigenen Beiträge angezeigt.
  8. Gespeicherte Ordner: Hat man Beiträge in Ordnern abgelegt (ein kategorisiertes Lesezeichen gesetzt), kann man hier auswählen, dass nur Beiträge im Stream gezeigt werden, die einem bestimmten Ordner zugeordnet wurden.
  9. Nach Namen filtern: Gibt man in das Feld den Namen einer Verbindung ein, werden ausschließlich Beiträge des gewählten Kontakts im Stream angezeigt.

Den aktuellen Filter kann man durch Klick auf das “X” neben dem Block-Titel zurücksetzen. Dann wird wieder der gesamte Stream angezeigt.

Suche

Über das Suchfeld in der Navigationsleiste (öffnet sich nach Klick auf das Lupen-Symbol), das Suchformular, welches man über das App Menü erreicht (sofern es ins Menü integriert wurde) und über den Such-Block “Gespeicherte Suchanfragen” in der Seitenleiste kann man nach Begriffen im Stream suchen. Mit dem Suchformular und dem Block kann man Suchanfragen auch für später speichern. Die Suche wird bei Auswahl dann immer neu durchgeführt. Man speichert also den Such-Begriff an sich.

Filter

Mit den Filtern auf Kanalebene ist es möglich, Postings und Kommentare mit bestimmten Inhalten auszufiltern bzw. nur Postings und Kommentare in den Stream zu importieren, die bestimmte Inhalte enthalten. Man kann diesen Filter unter Einstellungen ➔ Kanal-Einstellungen: “Beiträge mit diesem Text nicht importieren” bzw. “Nur Beiträge mit diesem Text importieren”

Es besteht auch die Möglichkeit solche Filter für einzelne Verbindungen festzulegen. Dies erfolgt im Verbindungs-Editor:

Ausführliche Informationen über das Filtern findet man in den [Dokumenten zum ersten Hubzilla-Workshop](https://hub.hubzilla.hu/cloud/hz-workshop/Dateien/Workshop #1) vom 17. September 2025 und in der Aufzeichnung dazu.

Verbindungen verwalten

In der App “Verbindungen” werden unsere Verbindungen aufgelistet. Hier kann man die Verbindungen auch verwalten.

Über den Button “+ Add” können neue Verbindungen hinzugefügt werden. Das wurde hier ja schon besprochen.

Außerdem gibt es einen Button “Suchen”, über welchen man nach Verbindungen suchen kann (hilfreich, wenn man über viele Verbindungen verfügt).

Außerdem gibt es für die Anzeige der Verbindungen einen Schnell-Filter mit den Auswahlmöglichkeiten

  • Aktive Verbindungen (alle genehmigten Verbindungen, die weder versteckt, noch blockiert, ignoriert, archiviert oder versteckt sind)
  • Neue Verbindungen (alle neuen Verbindungen, die noch nicht genehmigt sind)
  • Blockiert (blockierte Verbindungen)
  • Ignoriert (ignorierte Verbindungen)
  • Archiviert/Unerreichbar (archivierte Verbindungen - Verbindungen, die nicht erreichbar sind, werden nach einer gewissen Zeit vom System automatisch archiviert - man kann sie aber aus dem Archiv zurückholen)
  • Versteckt
  • Alle Verbindungen

Zu jeder Verbindung werden einige wichtige Informationen angezeigt: Avatarbild, Berechtigungen (eine kleine farbige Scheibe im Avatar-Bild, die beim Überfahren mit der Maus anzeigt, welche Rechte einem von der Verbindung eingeräumt werden), zugewiesene Kontaktrolle, Kanalname, verbunden seit, Kanaladresse (Handle / Webbie), Fediverse-Protkoll. Außerdem kann man sich über einen Link die letzten Aktivitäten der Verbindung anzeigen lassen.

Ein Klick auf den Kanalnamen oder das Avatarbild führt zum Kanal der Verbindung auf dessen Instanz.

Klickt man auf das Bleistift-Symbol (“Verbindung bearbeiten”) gelangt man zum Verbindungs-Editor.

Rollen

In diesem Editor kann man der Verbindung eine Kontaktrolle zuweisen (Details dazu in [Das Berechtigungssystem Teil 1](https://hub.hubzilla.hu/cloud/hz-workshop/Dateien/Workshop #4/Berechtigungssystem I.pdf) vom 4. Hubzilla Workshop). Man kann sich die aktuell zugewiesene Kontaktrolle über den Button “Contact Roles” anzeigen lassen und diese auch ggf. modifizieren (bis auf die Standard-Rolle). Mit dem Button “Berechtigungen vergleichen” werden die Berechtigungen, welche der Kontakt einräumt und die Berechtigungen, die man dem Kontakt selbst einräumt nebeneinander dargestellt.

Privacy Gruppen

Im Reiter Privacy Gruppen kann man die Verbindung verschiedenen Privacy Gruppen zuweisen.

Über den Button “Privacy Gruppen” gelangt man zur App “Privacy Gruppen” (Details dazu in [Das Berechtigungssystem Teil 2](https://hub.hubzilla.hu/cloud/hz-workshop/Dateien/Workshop #5/Berechtigungssystem II.pdf) vom 5. Hubzilla Workshop).

Profile

Im Reiter “Profile” kann man der Verbindung ein Profil zuweisen, welches der Verbindung angezeigt wird (Details dazu in [Das Berechtigungssystem Teil 2](https://hub.hubzilla.hu/cloud/hz-workshop/Dateien/Workshop #5/Berechtigungssystem II.pdf) vom 5. Hubzilla Workshop).

Filter für den Inhalt

Im Reiter “Filter für den Inhalt” kann man die bereits erwähnten Filter für die Verbindung definieren.

Kontakt Tools

Mit dem Menü “Kontakt Tools”, welches man über den gleichnamigen Button erreicht, kann man mittels “Aktualisieren” die Informationen zu der Verbindung erneut von dessen Instanz abrufen. Außerdem kann man hier die Verbindung blockieren, ignorieren, archivieren (bei bereits archivierten Verbindungen kann man sie hier auch aus dem Archiv zurückholen), verstecken und löschen.

Verbindungseditor schließen

Einstellungen in den Kontakt Tools werden sofort nach Auswahl ausgeführt. Die anderen Einstellungen in den hier aufgeführten Tabs müssen mit dem Button “Absenden” bestätigt werden. Der Klick auf den Button schließt den Dialog jedoch nicht (um weitere Einstellungen zu ermöglichen). Um den Editor zu beenden, muss man ober rechts auf das Schließen-Feld “X” klicken.

In Farbe und buuunt

Nun soll es darum gehen, dass wir uns Hubzilla auch optisch an unseren Geschmack anpassen.

Themes

Das Standard-Theme von Hubzilla trägt den Namen “Redbasic” und stammt aus der Zeit, als Hubzilla bzw. sein direkter Vorgänger Friendica entstanden ist. Es basiert zum Teil auf dem Web-Framework Bootstrap (ursprünglich Version 3.x, inzwischen Version 5) und wurde aus dem Friendica-Theme “duepuntzero” entwickelt. Ziel des ursprünglichen Themes war es, den Look von Facebook aus der damaligen Zeit nachzuempfinden. Es wurde über die Jahre weiter entwickelt und modernisiert und ist inzwischen recht ansehnlich.

Vor allem lässt es sich auch durch den Nutzer schon recht gut anpassen.

Trotzdem wird es oft als “zu oldschool” bezeichnet. Und in der Standard-Einstellung erscheint es auch relativ trist.

Inzwischen gibt es aber eine Reihe neuerer, modernerer Themes, die durchaus einen Blick wert sind. Allerdings kann man auch nur dann ein Blick auf sie werfen, wenn der Admin des eigenen Hubs diese Themes auch installiert und aktiviert hat.

Als wirklich eigenständige Themes gibt es

  • Utsukta-Theme Adminlte in den Schemata
    • Standard:
    • Brite:
    • Cosmo:
    • Journal:
    • Morph:
    • Sandstone:
    • Sketchy:
    • Solar:
    • Superhero:
    • Vapor:
  • Utsukta-Theme Keepitsimple:
  • Utsukta-Theme LCARS:
  • Utsukta-Theme Spurgeon:
  • Utsukta-Theme Typerite:

Es gab auch noch das Theme Neuhub Tab, das derzeit aber aus nicht bekannten Gründen nicht weiterentwickelt wird und das mit den aktuellsten Hubzilla-Versionen teilweise fehlerhaft funktioniert.

Beim Theme „Volse Hubzilla Theme“ handelt es sich um ein modifiziertes Redbasic. Es stammt von Harald Eilertsen. Verweise auf die Themes findet man bei: https://hubzilla.org/page/info/themes

Die Themes Keepitsimple und Spurgeon eignen sich hervorragend, wenn man mit Hubzilla ein Blog erstellen möchte oder der Kanal viele Artikel anbietet.

Die Themen Adminlte und Typerite eignen sich für alle Anwendungsfälle und sind sehr gut für die Nutzung als Social Network geeignet.

Das Theme LCARS ist… äääh… “speziell”… und etwas für eingefleischte Trekkies. 

Themes für den eigenen Kanal wählt man im Hauptmenü unter Einstellungen → Anzeige Einstellungen → Design Einstellungen → Theme wählen. Sofern es Schemata für das Theme gibt, werden diese an der selben Stelle unter Schema wählen eingestellt.

Inhaltseinstellungen

Mit den Inhaltseinstellungen kann man bereits einige Anpassungen vornehmen:

Die meisten Einstellungen sind selbsterklärend.

“Links für neue Mitglieder” ist das Widget mit Hinweisen und internen Links, welcher bei jedem neu erstellten Kanal in der Seitenleiste angezeigt wird. Nach einiger Zeit benötigt man diese Hilfestellung nicht mehr und man kann sie hier abschalten.

Die Option “Threaded conversation view” wurde mit der Version 10 von Hubzilla eingeführt. Sie ist voreingestellt, also “opt-out”. Ist die Option abgeschaltet, werden Threads, also Postings mit Kommentaren, wie früher in einer flachen Hierarchie untereinander in chronologischer Reihenfolge angezeigt. Mit der neuen Option hat sich die grundsätzliche Darstellung von Threads verändert. Das Ausgangs-Postings und Kommentare werden hierarchisch gegliedert und die Hierarchie wird durch Einrückung sichtbar gemacht. Damit werden Antworten auf Kommentare als diesen zugehörig optisch sichtbar gemacht. Außerdem wurde ein “Lazy Loading” eingeführt. Das bedeutet, dass nicht alle Kommentare sofort geladen werden, sondern auf Anforderung, indem man auf die Sprechblase unter einem Posting oder Kommentar klickt. Das spart Netzwerklast.

Anpassung von Redbasic

Das Theme Redbasic ist auf jedem Hub vorhanden. Deshalb soll hier gezeigt werden, wie man es optisch anpassen kann.

Um das Standard-Schema von Redbasic anzupassen öffnet man im Hauptmenü unter Einstellungen  Anzeige Einstellungen den Reiter “Benutzerdefinierte Design-Einstellungen”.

Hier kann man auf ein dunkles Schema umstellen und eine schmale Navigationsleiste wählen (die Höhe der Navigationsleiste wird verringert).

Außerdem kann man die maximale Breite des Inhaltsbereichs (mittlere, größte Kolumne der Ansicht) in rem festgelegt werden.

img

rem? Was ist das?

rem steht für root em, eine relative Maßeinheit, die sich auf die Schriftgröße des Stammelements eines HTML-Dokuments bezieht.

Ist beispielsweise die Standard-Schriftgröße auf 16 Pixel eingestellt, so entspricht 1rem genau diesen 16 Pixeln. Und 2rem wären dann 32 Pixel.

img

Es ist hier auch möglich, die Standard-Schriftgröße für Hubzilla einzustellen.

Das ist insgesamt jetzt nicht besonders viel und auch nicht berauschend von den Möglichkeiten her. Aber es gibt da ja noch die Option “Erweiterte Einstellungen anzeigen”. Aktiviert man diese, klickt auf den Button “Absenden” und öffnet dann erneut den Reiter “Benutzerdefinierte Design-Einstellungen”, dann sind die Einstellungs-Möglichkeiten um ein Vielfaches umfassender.

Hier ist es nun zusätzlich möglich, das Farbschema des Themes exakter anzupassen. Die hier aufgeführten Farben entsprechen den Standardfarben von Bootstrap5:

  • Primary theme color → Bootstrap .text-primary
  • Success theme color → Bootstrap .text-success
  • Info theme color → Bootstrap .text-info
  • Warning theme color → Bootstrap .text-warning
  • Danger theme color → Bootstrap .text-danger

Diese Farben kann man nun in den entsprechenden Eingabefeldern den eigenen Wünschen anpassen. Dies tut man entweder, indem man in das Feld einen Farbwert in Hex-Schreibweise “#rrggbb” eingibt, oder einfach in das Feld klickt und die Farbe aus einem Farbwahl-Dialog auswählt. Des zur ausgewählten Farbe passende Hex-Wert wird dann automatisch in das Feld eingetragen.

Redbasic verwendet für Buttons und Rahmen abgerundete Ecken. Im Eingabefeld “Set radius of corners in rem” kann man den Radius abändern. Die Eingabe von “1” ergibt schon richtig deutliche “Bonbons”. Hier ist Ausprobieren angesagt, wenn man den Wert ändern möchte.

Mit “Größe der Avatare von Themenstartern” und “Größe der Avatare von Kommentatoren” kann man die Größe von Avatarbildern im Stream festlegen. Die Größenangabe erfolgt in Pixeln.

Darunter folgen zwei Blöcke. einmal ein Block für den hellen Modus und einmal ein Block für den dunklen Modus.

Hier kann man die “Hintergrundfarbe der Navigationsleiste” (“Dark navigation bar background color”) festlegen. Die Eingabe erfolgt entweder direkt im rgba-Format (“rgba(rrr,ggg,bbb,a)”, wobei rrr, ggg und bbb im Dezimalformat für die Farbwerte stehen und a für den Alpha-Kanal, also die Transparenz, die von 0 für vollkommen transparent – also unsichtbar – bis 1 für völlig deckend als Komma-Zahlen von 0.0 bis 1.0 angegeben werden können), oder man benutzt wieder den Farbauswahl-Dialog.

Verwendet man im hellen Modus für die Hintergrundfarbe der Navigationsleiste eine dunklere Farbe, so kann es sein, dass die Symbole in der Navigationsleiste aufgrund geringen Kontrasts schlecht zu erkennen sind. Deshalb gibt es für das helle Design die Option “Always use light icons for navbar”, mit welcher helle Symbole angezeigt werden, die auf dem dunklen Hintergrund besser zu erkennen sind.

Dann kann man die “Hintergrundfarbe” (“Set the dark background color”) ebenfalls im rgba-Format einstellen. Und schließlich kann man ein “Hintergrundbild” (“Set the dark background image”) einstellen, wobei hier die erreichbare URL eines Bildes im Internet eingegeben werden muss.

Hat man seine Auswahl getroffen und klickt man auf den Button “Absenden”, werden die Änderungen übernommen und Hubzilla im abgeänderten Design dargestellt.

Benutzerdefinierte Design-Einstellungen bei Adminlte

Beim Theme Adminlte gibt es nicht so viele Einstellungsmöglichkeiten (dafür aber eine ganze Menge Schemata).

Man kann hier die Hintergrundfarbe und ein Hintergrundbild für den hellen und den dunklen Modus festlegen. Zusätzlich ist es möglich, einzustellen, ob das Hintergrundbild gekachelt (“Tiled”) oder skaliert (“Cover”) angezeigt werden soll.

Adminlte verfügt über eine linke Seitenleiste (das App-Menü), die einklappbar ist. Man kan in den Einstellungen hier auswählen, ob sie per Default ausgeklappt (“Expanded”) oder eingeklappt (“Collapsed”) angezeigt werden, wenn man eine Hubzilla-Seite öffnet.

Auch ist es möglich den dunklen Modus zu erzwingen.

Zusätzlich gibt es die Option “HQ tour completed”. Ruft man nach dem Aktivieren des Tehems Adminlte erstmal das HQ auf, so erscheint eine geführte Tour durch die einzelnen Bedienelemente. Hat man die Tour einmal absolviert, wird sie nicht wieder angezeigt. Dies kann man mit dieser Option beeinflussen. Entweder man erzwingt eine neue einmalige Tour oder man verhindert sie von vornherein, weil man sich bereits auskennt.

Die Seitenansichten mit dem PDL-Editor anpassen

Es geht aber noch mehr, was die Anpassungen betrifft. Hier erläutere ich das anhand des Themes Redbasic. Die Anpassungen funktionieren aber auch z.B. mit Adminlte und den anderen Themes, wobei sich der Aufbau der Seiten unterscheiden kann, weil die Seiten unterschiedlichen Layouts folgen (z.B. entweder mit oder ohne zweiter Seitenleiste etc.).

Für diese Anpassungen nutzt man den PDL-Editor, mit welchem die Seitendefinitionen der einzelnen Ansichten mit einem grafischen Editor bearbeitet werden können.

Ruft man die App “PDL-Editor” auf, so sieht man zunächst den Editor für “HQ”:

Bei Redbasic ist das dreispaltige Layout voreingestellt. Man hat also links eine Seitenleiste, in der Mitte den Inhaltsbereich und rechts eine weitere Seitenleiste.

Am unteren Rand des PDL-Editors befindet sich das Menü.

  • Mit dem Menüpunkt “MODULES” kann man die zu bearbeitende Ansicht auswählen, also die Seite, die modifiziert werden. Z.B. “channel” für die Kanal-Ansicht, “network” für die Stream-Ansicht etc.
  • Mit dem Menüpunkt “TEMPLATES” kann die Seitenvorlage ausgewählt werden. Es gibt
    • default”, das bereits erwähnte dreispaltige Standard-Layout mit dem Inhaltsbereich und zwei Seitenleisten (rechts und links), sowie der Navigationsleiste.
    • doubleleft” - ein zweispaltiges Layout mit einer linken Seitenleiste und dem Inhaltsbereich, sowie der Navigationsleiste.
    • doubleright” – ein zweispaltiges Layout mit dem Inhaltsbereich und einer rechten Seitenleiste, sowie der Navigationsleiste.
    • full” - ein einspaltiges Layout nur mit dem Inhaltsbereich und der Navigationsleiste.
    • minimal” - ein einspaltiges Layout nur mit dem Inhaltsbereich, aber ohne Navigationsleiste.
  • Der Menüpunkt “ITEMS” enthält sämtliche Blöcke und Widgets, die im ausgewählten MODUL verwendet werden können.
  • Mit dem Menüpunkt “SOURCE” kann man sich den Quelltext des aktuellen Bearbeitungsstands des Layouts anschauen und per Hand modifizieren.
  • Der Menüpunkt “APPLY” sorgt schließlich dafür, dass die Modifikationen übernommen werden. Nicht vergessen, vor dem Verlassen der Editorseite auf diesen Punkt zu klicken, weil ansonsten alle Änderungen verworfen werden.

Hat man eine Ansicht mittels Klick auf “APPLY” bearbeitet, so erscheint ein weiterer Menüpunkt:

  • RESET” - Klickt man auf diesen Menüpunkt, werden sämtliche Änderungen rückgängig gemacht und das MODUL auf den Standard zurückgesetzt. “Zerschossene” Ansichten kann man damit also ganz einfach “reparieren”.

Jeder Block im Editor verfügt über ein Symbol img , welches als “Anfasser” dient und mit welchem man den Block per Drag and Drop im Editor verschieben kann. Außerdem gibt es jeweils zwei Buttons:

  • Edit” - Mit diesem kann man den Quelltext für den Block bearbeiten (z.B. bei Widgets, die mittels Variablen modifiziert werden können).
  • Remove” - Hiermit entfernt man den Block.

Um einen Block / ein Widget zur Ansicht hinzuzufügen, wählt man dieses aus dem Menü “ITEMS” aus, ergreift das gewünschte Objekt am “Anfasser” und zieht es an die vorgesehene Stelle im Editor.

Beispiel: Follow-Widget zum Herstellen von Verbindungen

Wie hier ja bereits erläutert, ist das Herstellen von neuen Verbindungen von denen das Webbie (Handle) bekannt ist, nur auf der Seite “Verbindungen” möglich. Und man muss zusätzlich dort erst noch auf den Button “+ Add” klicken, um das Eingabefeld für die Fediverse-Adresse zu öffnen.

Wer z.B. viel mit dem HQ agiert, würde sich vielleicht wünschen, dass auch auf dieser Seite das Hinzufügen von Verbindungen möglich wäre.

Mit dem PDL-Editor ist das kein Problem. Man wählt das MODUL “hq” und fügt aus den Items das Widget “FOLLOW” z.B. in die rechte Seitenleiste.

Nach einem Klick auf APPLY erscheint nun dieses Widget in der rechten Seitenleiste des HQ.

Und es hat einen Vorteil: Das Eingabefeld für das Webbie ist sofort sichtbar. Man muss das Handle der gewünschten Verbindung nur dort eingeben und auf “+” klicken, schon ist die Verbindung hergestellt bzw. die Verbindungsanfrage rausgeschickt.

Eigene Blöcke im PDL-Editor verwenden

Es ist außerdem möglich, selbst erstellte Blöcke im PDL-Editor in die verschiedenen Ansichten (MODULE) einzubauen. Sämtliche selbst erstellten Blöcke erscheinen am Ende des ITEMS-Menüs und können von dort aus in den Editor gezogen werden.

Blöcke erstellen

Zum Erstellen eigener Blöcke benötigt man die App “Webseiten”.

In der Seitenleiste findet man den Link zum Gestaltungswerkzeug für Blöcke.

Mit dem Klick auf den Button “Erstelle” öffnet man den Block-Editor.

Im Feld “Art des Seiteninhalts” kann man auswählen, mit welcher Auszeichnungssprache man den Block gestalten möchte. Es stehen

  • BBcode
  • HTML
  • Markdown
  • Text

zur Verfügung.

Wenn man im Feld “Titel” einen Titel eingibt, so wird dieser hervorgehoben über dem eigentlichen Block-Inhalt angezeigt. Das Feld Summary erfüllt den selben Zweck, wie beim Artikel- oder Beitragseditor. Bei Blöcken, die man im Seitenlayout nutzen möchte, fällt mir keine sinnvolle Benutzung ein. Man kann es einfach weglassen.

Pflichtfeld ist das Feld “Block-Name”, in welches man einen Namen für den Block eingibt. Unter diesem Namen erscheint er dann auch im PDL-Editor unter ITEMS.

Beispiel: Block mit dem Einstellungs-Menü für das HQ

Wer häufig an seinen Einstellungen manipuliert, möchte vielleicht nicht erst über das Hauptmenü zu den einzelnen Einstellungen gelangen, sondern würde sich ein Einstellungs-Menü in der HQ-Ansicht wünschen. Dieses sollte zusätzlich, die eigentlich nur über ihre URL erreichbaren “Features” enthalten.

Das könnte dann so aussehen:

Nun klickt man auf “Absenden”, um den Block zu speichern.

Wenn man nun den PDL-Editor startet und das MODUL “hq” aufruft, findet man unter ITEMS ganz unten den gerade erstellten Block.

Nun wird dieser z.B. in die rechte Seitenleiste gezogen und die Modifikation mit APPLY gespeichert.

Ruft man anschließend das HQ auf, befindet sich das selbst erstellte Menü als Block in der rechten Seitenleiste.

Bei der Nutzung von BBcode als Inhaltstyp und dem Einbinden von Links, stellt man bei der Nutzung fest, dass die jeweilige Einstellungs-Seite in einem neuen Browser-Tab (oder ggf. -Fenster) geöffnet wird. Das kann in diesem Fall sogar sinnvoll sein, bei anderen Anwendungen aber eventuell nicht erwünscht. Mit BBcode lässt es sich nicht erzwingen, den gewählten Link im selben Tab zu öffnen. Hierfür muss man das Menü mit dem Inhaltstyp HTML erstellen und dem <a href>-Tag die Option target="_self" mitgeben. Also z.B. <a href="https://klacker.org/settings/features" target="_self">Features</a>

Mit HTML – ggf. unter Nutzung des Bootstrap5-Frameworks – kann man außerdem noch wesentlich “schickere” Blöcke erstellen. Das Erlernen von HTML ist immer eine gute Idee! Z.B. hier: SelfHTML.

Und so kann ein (wirklich nur leicht) modifizierter Kanal dann aussehen (mein Kanal, wenn ich Redbasic nutze):

Und eine Hubzilla-App?

Es kommt immer wieder die Frage auf, ob es denn keine Hubzilla-App für das mobile Endgerät (Smartphone, Tablet etc.) gibt. Die Antwort ist: Nein!

Um eine App zu entwickeln, die wirklich das gesamte Funktionsspektrum von Hubzilla abbildet, müsste man Quasi das komplette Hubzilla-Frontend, das hauptsächlich auf PHP und Javascript basiert komplett z.B. für Android neu schreiben. Einfach nur irgendwie konvertieren funktioniert nicht. Nicht einmal mit Vibecoding. Dafür bräuchte man ein eigenes Team, welches 1. den Quelltext von Hubzilla vollumfänglich in allen Details verstanden hat, 2. fit in der Android-Programmierung ist und 3. mehrere Jahre Zeit hat, eine solche App zu entwickeln.

Denkbar wäre eine abgespeckte App, die nur die grundlegenden Fediverse-Features bietet. Das könnte sogar ausreichend sein, weil man viel mehr in der Regel auch nicht mit dem Mobiltelefon machen möchte.

Aber auch das ist nicht wirklich trivial und würde viele Entwicklerstunden verschlingen, sofern man Entwickle findet, die durch den Quellcode von Hubzilla durchsteigen.

Trotzdem kann man Hubzilla auch ohne eine solche App mobil sehr gut nutzen. Und damit es sich wie eine App anfühlt, muss man das nicht normal im Browser machen, sondern kann sich eine PWA auf dem Gerät installieren. Das Design von Hubzillas Oberfläche ist so gestaltet, dass sich die Anwendung auch sehr gut auf einem Mobilgerät mit kleinem Display nutzen lässt.

Kurz gefasst funktioniert das so: Man öffnet seinen Account im mobilen Browser (z.B. mit Chrome – was ich persönlich zwar nie und nimmer empfehlen würde, das aber auf nahezu jedem Android-Gerät vorhanden sein sollte), loggt sich ein und wählt dann im Browser-Menü die Funktion, die “Webseite auf dem Gerät zu installieren” (bei Chrome lautet der Menüpunkt “Zum Startbildschirm hinzufügen”). Man sollte keinesfalls nur die Verlinkung auf dem Startbildschirm wählen, sondern explizit die Installation als PWA (das ist die Webansicht im Browser, ohne dass die Bedienelemente des Browsers an sich sichtbar sind… sieht aus, wie eine eigenständige App).

Wie das im Detail funktioniert, kann man hier nachlesen: Hubzilla KnowledgeDB - Eine Hubzilla-App.

Neu hier

Willkommen in der Welt von Hubzilla, willkommen im Fediverse!

Du hast Dich erfolgreich bei einem Hubzilla-Hub registriert (vielleicht sogar nach meiner Anleitung), Deinen persönlichen Kanal angelegt und angemeldet.

Dir wird, wenn Du von anderen Sozialen Netzwerken (Facebook, Google+, Diaspora*, Friendica, Twitter, Mastodon…) kommst, auffallen, dass hier so einiges anders ist.

Hubzilla bietet eine schon verwirrende Anzahl von Möglichkeiten der Nutzung, die über die der typischen Sozialen Netzwerken (SN) hinausgehen. Hubzilla ist einfach mehr… es ist eher ein Soziales CMS (Content-Management-System) mit der Möglichkeit sozialer Interaktion.

Man sollte aber gerade, wenn man neu dabei ist, nicht versuchen, alle Funktionen besser gestern als heute zu nutzen und zu verstehen. Die meisten Einsteiger haben wahrscheinlich im Sinn, Hubzilla in der Art zu nutzen, wie sie es von anderen SN her gewohnt sind.

In der Standard-Konfiguration der meisten Hubs ist das auch gar kein Problem… man kann quasi sofort loslegen.

Was sofort auffällt ist, dass das Grid (auch der Stream - bei anderen Diensten heißt das auch „Timeline“) fürchterlich leer ist. Hier zeigt sich schon der Unterschied zu anderen Systemen wie X, Facebook etc.. Bei Hubzilla wird das Grid nicht einfach mit öffentlichen Beiträgen befüllt, es erscheint tatsächlich nur das, was man selbst darin haben möchte. Damit der Stream nicht leer bleibt, muss man sich mit anderen Kanälen verbinden. Doch die muss man erst einmal finden oder man muss welche kennen.

Ist man auf Anregung eines anderen Hubzilla-Nutzers zu Hubzilla gekommen, ist es natürlich sinnvoll, sich mit dessen Kanal zu verbinden… vielleicht (hoffentlich) kennt man dessen Kanaladresse schon. Wie man sich mit anderen Kanälen verbindet, ist im Eintrag So verbinden Sie sich mit anderen Hubzilla-Channels beschrieben, wie man Kanäle findet, erfährt man im Eintrag Schlüsselwörter und Verzeichnissuche.

Eine gute Möglichkeit, interessante Kanäle zu finden, ist die Ansicht des öffentlichen Beitrag-Streams (die von sehr vielen Hubs angeboten wird). Der öffentliche Stream bietet alle öffentlichen Posts von Hubzilla… das kann ne ganze Menge sein, aber so kann man auf interessante Beiträge stoßen (ein Besuch dieses Streams lohnt also auch dann, wenn man nicht nur auf der Suche nach interessanten Kanälen ist) und Kanäle finden, mit denen man sich, wegen ihres Inhalts, vielleicht gerne verbinden möchte.

Egal, wie voll der Stream ist… Du kannst aber trotzdem sofort loslegen. Um einen neuen Post zu erzeugen, wählst Du entweder den Eintrag „Beitrag schreiben“ im App-Menü (⋮ oben rechts) oder – noch einfacher – durch Klick in das Feld „Teilen“ ganz oben im Stream. Es öffnet sich der Editor. Die Nutzung ist sehr einfach und ungleich komfortabler, als die „Editoren“ z.B. bei FB oder G+.

nhier01

nhier02

Also einfach losschreiben, vielleicht Links oder Bilder einfügen… gerne auch mit Hashtags „würzen“… und dann auf „Teilen“ klicken. Wenn man nichts speziell konfiguriert hat, wird der Beitrag öffentlich geteilt. Er erscheint dann auch im öffentlichen Stream, im eigenen Stream… und in den Streams der Kanäle, mit denen man verbunden ist.

Hat man einen interessanten Beitrag gefunden, so kann man diesen auch kommentieren (es sei denn, der Ersteller hat es so konfiguriert, dass es nicht möglich ist), „liken“, ggf. „disliken“, meist auch selbst weiter teilen („weitersagen“) etc.

Am besten, man probiert einfach aus, was möglich ist. Stößt Du auf Probleme oder kommen Fragen auf, kannst Du hier nach Lösungen suchen oder auch direkt bei Hubzilla mit einem Post fragen.

Auf jeden Fall solltest Du Dein Profil „verfeinern“… wie das geht, erfährst Du im Eintrag Mein Profil

Neu hier / Verbindungen / Netzwerk Stream

Nun habt Ihr Euch entschlossen, eine Hubzilla-Identität anzulegen, habt meine Tipps für den Einstieg beherzigt und alle sinnvollen Einstellungen vorgenommen, loggt Euch ein und landet bei der Anzeige des Netzwerks (oder nennt es Pinnwand oder Stream, wenn Euch das vertrauter vorkommt).

Und was seht Ihr?

Genau, ihr seht nichts!

Das ist zunächst enttäuschend, gerade wenn man von einer Jahre dauernden Facebook- oder Google-Plus-Mitgliedschaft kommt. Hubzilla zeigt einem (in der Standardeinstellung) zunächst immer das eigene Netzwerk. Und das wird mit Beiträgen der Channels „gefüttert“, mit denen Ihr verbunden seid. Weil Ihr aber noch keine Verbindungen habt, ist das Netzwerk schlicht leer.

Um das zu ändern müsst Ihr Verbindungen knüpfen, also Euren Kanal mit anderen Kanälen verbinden. Habt Ihr Euch vielleicht mit anderen Aussteigern (oder Aussteigewilligen) aus einem der Datenkraken-Netzwerken (Facebook, Google+ etc.) verabredet, so ist es angebracht, untereinander die Adresse Eures Hubzilla-Kanals auszutauschen. Die wird Euch z. B. angezeigt, wenn Ihr Euch Euer Profil über das Systemmenü anschaut. Sie sieht aus wie eine eMail-Adresse (kann aber nicht als solche benutzt werden)… meine z. B. lautet pepecyb8806@hub.pericles.hu .

nhiervn01

Um Euch nun mit dem Kanal eines Bekannten zu verbinden, klickt Ihr im „App-Menü“ (⋮) auf Verbindungen. Dort werden Eure bestehenden Verbindungen angezeigt, Ihr könnt sie dort auch bearbeiten und in der linken Seitenleiste gibt es ein Eingabefeld „Neue Verbindung hinzufügen“.

nhiervn02

Dort gebt Ihr die Kanal-Adresse Eurer Bekanntschaft ein und klickt auf das Pluszeichen. Nun wird die Verbindung hergestellt.

Der Inhaber des Kanals wird über die Verbindungsanfrage per eMail benachrichtigt und kann die Verbindung akzeptieren (aber auch ablehnen). Verbindet sich ein Anderer mit Euch, so wird Euch das auch per eMail angekündigt. Wenn Ihr eine Verbindung annehmt oder eine bestehende Verbindung bearbeitet, könnt Ihr festlegen, welcher Gruppe der verbundene Kanal zugeordnet wird (das können auch mehrere Gruppen sein).

ACHTUNG: Die Gruppe bei Hubzilla ist nicht vergleichbar mit Gruppen z. B. bei Facebook. Es handelt sich um eine Kategorisierung von Verbindungen. Wenn Ihr eine Ressource (also einen Beitrag, eine Datei etc.) in der Sichtbarkeit einschränken wollt, könnt Ihr dies z. B. auf bestimmte Gruppen beschränken. Habt Ihr also z. B. eine Gruppe „Kegelverein“, in der Ihr die Verbindungen zu „Anton“, „Berta“, „Cäsar“ und „Dora“ habt, postet einen Beitrag und legt über das Vorhangschloss fest, dass dieser Beitrag nur mit „Kegelverein“ geteilt wird, so können auch nur Anton, Berta, Cäsar und Dora den Beitrag sehen. Mit dieser Funktionalität ließe sich auch sowas wie „Facebook-Gruppen“ simulieren… aber eigentlich ist es dafür nicht gedacht (das ist anders viel einfacher und besser möglich). Ihr könnt den Inhalt Eures Netzwerk-Streams über diese Gruppen auch filtern… also Euch nur Beiträge aus den gewählten Gruppen anzeigen lassen. Sehr praktisch!

Wenn es nicht anders eingestellt ist, findet Ihr auch (in der Seitenleiste) Verbindungsvorschläge. Hier werden Kanäle vorgeschlagen, die irgendwie zu Eurem Profil passen. Allerdings dürft Ihr nicht die „Qualität“ der Vorschläge z. B. von Facebook erwarten, denn Hubzilla wertet Eure Profile nicht aus und stalkt Euch auch nicht um Euer Profil noch zu verfeinern. Wenn Ihr dann (schließlich wolltet Ihr ja weg von den Datensammlern) auch noch keine Angaben in Eurem Profil gemacht habt, sind die Kanalvorschläge schon ziemlich „zufällig“. Ihr müsst aber auch nicht „die Katze im Sack kaufen“… ein Klick auf den vorgeschlagenen Kanal zeigt Euch, was dieser öffentlich gepostet und geteilt hat… da kann man dann schon einschätzen, ob das vielleicht passt.

Eine weitere Möglichkeit ist, Kontakte aus dem Verzeichnis (☰) auszuwählen. Es wird Euch zunächst das lokale Verzeichnis (also das Verzeichnis aller Kanäle auf Eurem Hub) angezeigt.

nhiervn03

Eine Schlagwörterwolke hilft dabei, Kanäle mit ähnlichen Interessen zu finden (es ist also auch sinnvoll, sein eigenes Profil zumindest in dieser Hinsicht zu vervollständigen… so werdet auch Ihr besser gefunden). Wenn Ihr bei den Verzeichnisoptionen den Schalter bei „Nur dieser Hub“ ausschaltet, wird Euch das gesamte öffentliche Hubzilla-Verzeichnis angezeigt (es ist also nicht auf den eigenen Hub beschränkt). Das ist sinnvoll, weil interessante Kanäle ja nicht unbedingt auf dem Hub liegen müssen, bei dem Ihr registriert seid. Bei „Finde Kanäle“ könnt Ihr nun z. B. nach Namen oder Interessen suchen.

Ein weiterer Tipp: Falls Ihr schon einen Diaspora*-Account habt, so besteht die Möglichkeit, die Kontakte von Diaspora* auch als Verbindung bei Hubzilla zu nutzen. Dafür gebt Ihr einfach die Kontaktadresse von Diaspora* (sieht ja auch aus wie eine eMail-Adresse und ist doch keine 😉 ) in das Feld „Neue Verbindung hinzufügen“.

Um einen Überblick zu bekommen, was bei Hubzilla so stattfindet und nicht am zunächst leeren Netzwerk-Stream zu verzweifeln, ist es sinnvoll, auch regelmäßig den „Public Stream“ (☰) aufzurufen.

nhiervn04

Hier landen alle öffentlichen Beiträge (also auch Eure, wenn Ihr öffentlich was teilt). Im Gegensatz zu Eurem Netzwerk-Stream (der ja nur durch Eure Verbindungen „gefüttert“ wird), findet Ihr da einen gut gefüllten Stream. Und da könnt Ihr auch auf Kanäle aufmerksam werden, die Euch vielleicht interessieren und mit denen Ihr Euch verbinden wollt.

Es dauert sicher ein paar Tage (oder etwas länger), bis Euer Netzwerk-Stream mit interessanten Inhalten gefüllt ist… und bis Ihr eine ordentliche Zahl an Verbindungen habt… aber das ist IMMER so (und war auch bei Facebook, als Ihr ganz neu dabei wart auch nicht anders). Hubzilla kann aber auch nur zu EUREM Netzwerk werden, wenn Ihr mitmacht und versucht, Freunde, Familie, Bekannte, Kollegen etc. ebenfalls zum Mitmachen zu animieren.

Nomad (vormals Zot)

Nomad ist das Protokoll, mit dem Hubzilla betrieben wird. Es ermöglicht die Kommunikation, das Identitätsmanagement und die Zugangskontrolle.

Die Kommunikation mittels Nomad kann öffentlich oder privat sein, wobei die private Kommunikation nicht nur einen vollständig verschlüsselten Transport, sondern auch eine verschlüsselte Speicherung zum Schutz vorsieht.

Nomad unterstützt eine breite Palette von Hintergrunddiensten im Grid, von Freundschaftsvorschlägen bis hin zu Verzeichnisdiensten. Neue Inhalte und Datenaktualisierungen werden im Hintergrund zwischen den Hubs im gesamten Grid gemäß den Zugriffskontrolllisten und den von den Sender- und Empfängerkanälen festgelegten Berechtigungen weitergegeben. Die Daten werden auch zwischen einer beliebigen Anzahl von Kanalklonen synchronisiert, so dass Hub-Mitglieder auch dann auf Daten zugreifen und nahtlos weiter zusammenarbeiten können, wenn ihr primärer Hub nicht erreichbar oder offline ist.

Nomad bietet auch eine nomadische Identität, so dass Ihre Kommunikation mit Freunden, Familie oder anderen Personen, mit denen Sie kommunizieren, nicht durch den Verlust Ihres primären Kommunikationsknotens beeinträchtigt wird - entweder vorübergehend oder dauerhaft.

Die wichtigen Teile Ihrer Identität und Ihrer Beziehungen können auf einem USB-Stick, dem Laptop oder PC gesichert werden und jederzeit an einem beliebigen Knoten im Netz erscheinen - mit all Ihren Freunden und Vorlieben.

Entscheidend ist, dass diese nomadischen Instanzen synchron gehalten werden, so dass jede Instanz übernehmen kann, wenn eine andere gefährdet oder beschädigt ist. Dies schützt Sie nicht nur vor größeren Systemausfällen, sondern auch vor vorübergehender Überlastung der Website und staatlicher Manipulation oder Zensur.

Die nomadische Identität, die einmalige Anmeldung und die Dezentralisierung von Hubzilla gewährleisten ein hohes Maß an Widerstandsfähigkeit und Beständigkeit in der Internetkommunikation. Mittels magic-auth meldet man nur einmal an Ihrem Heimat-Hub (oder einem nomadischen Backup-Hub) an. Dadurch kann man auf alle authentifizierten Dienste zugreifen, die überall im Netz angeboten werden - wie Einkaufen, Blogs, Foren und Zugang zu privaten Informationen. Das Passwort wird nicht auf tausend verschiedenen Websites gespeichert, sondern auf Servern, man selbst kontrolliert oder denen man vertraut.

Zugriffskontrolle: Die Identitätsschicht von Nomad ermöglicht es, fein abgestufte Berechtigungen für jeden Inhalt zu vergeben, den man veröffentlichen möchte. Diese Berechtigungen erstrecken sich über das gesamte Grid. Das ist so, als hätte man eine riesige Website, die aus einer Großzahl von kleinen, individuellen Websites besteht und bei der jeder Kanal im Grid seine Datenschutz- und Freigabepräferenzen für alle von ihm erstellten Webressourcen vollständig kontrollieren kann.

Derzeit unterstützt Hubzilla die Zugriffskontrolle für viele Datentypen, darunter Diskussionsbeiträge und -kommentare, Fotoalben, Veranstaltungen, Cloud-Dateien, Webseiten, Wikis und mehr. Jedes Objekt und die Art und Weise, wie und mit wem es geteilt wird, unterliegt vollständig Ihrer Kontrolle.

Im Grid braucht man keine riesige Benutzerdatenbank auf dem Rechner, denn das Grid ist die Benutzerdatenbank. Sie verfügt über eine im Grunde unendliche Kapazität (begrenzt durch die Gesamtzahl der Hubs, die im Internet online sind) und ist auf unzählige Computer verteilt.

Der Zugang kann, überall im Grid, für jede Ressource, jeden Kanal oder jede Gruppe von Kanälen gewährt oder verweigert werden. Andere können auf die eigenen Inhalte zugreifen, wenn es ihnen erlaubt wird, und sie müssen nicht einmal ein Konto auf dem selben Hub haben.

Aktuell verwendet Hubzilla das Nomad-Protokoll mit Programm-Routinen in der Version 6 (Zot6).

Nomad (formerly Zot)

Nomad is the protocol with which Hubzilla is operated. It enables communication, identity management and access control.

Communication using Nomad can be public or private, with private communication providing not only fully encrypted transport but also encrypted storage for protection. Nomad supports a wide range of background services in the grid, from friend suggestions to directory services. New content and data updates are passed in the background between hubs across the grid according to the access control lists and permissions set by the sender and receiver channels. Data is also synchronised between any number of channel clones so that hub members can access data and continue to collaborate seamlessly even if their primary hub is unavailable or offline.

Nomad also provides a nomadic identity so that your communication with friends, family or other people you communicate with is not affected by the loss of your primary communication node - either temporarily or permanently.

The important parts of your identity and your relationships can be saved on a USB stick, laptop or PC and appear at any time on any node in the network - with all your friends and preferences.

Crucially, these nomadic instances are kept synchronised so that each instance can take over if another is compromised or corrupted. This not only protects you from major system failures, but also from temporary website overload and government manipulation or censorship.

Hubzilla’s nomadic identity, single sign-on and decentralisation ensure a high degree of resilience and consistency in Internet communication. Using magic-auth, you only log in once to your home hub (or a nomadic backup hub). This allows you to access all authenticated services offered anywhere on the web - such as shopping, blogs, forums and access to private information. The password is not stored on a thousand different websites, but on servers that you control or trust.

Access control: Nomad’s identity layer makes it possible to assign finely graded authorisations for each piece of content that you want to publish. These authorisations extend across the entire grid. It’s like having a huge website made up of a large number of small, individual websites, where each channel in the grid can fully control its privacy and sharing preferences for all the web resources it creates.

Currently, Hubzilla supports access control for many types of data, including discussion posts and comments, photo albums, events, cloud files, websites, wikis and more. Each item and how and with whom it is shared is completely under your control.

In the grid, you don’t need a huge user database on your computer, because the grid is the user database. It has an essentially infinite capacity (limited by the total number of hubs that are online on the Internet) and is distributed across countless computers.

Access can be granted or denied, anywhere in the grid, for any resource, channel or group of channels. Others can access your content if they are allowed to, and they don’t even have to have an account on the same hub.

Hubzilla currently uses the Nomad protocol with program routines in version 6 (Zot6).

Nomadische Identität / Klonen

„Das Internet ist kaputt, Facebook funktioniert nicht mehr!“

So ähnlich (gut, ich übertreibe) klingt es immer, wenn FB mal Serverausfälle zu beklagen hat. Der FB-Nutzer ist nunmal abhängig davon, dass Facebook seine Dienste anbietet. Ist das mal durch irgendwelche Umstände nicht gegeben, dann kann man nichts mehr teilen, kommentieren, liken und man hat auch keinerlei Zugriff auf die eigenen oder fremde Inhalte. So ist das bei Systemen, die auf zentralen Servern liegen.

Wer eine Hubzilla-Identität / einen Hubzilla-Kanal hat, ist dem Facebook-Nutzer gegenüber klar im Vorteil!

Angenommen man hat einen Account beim Hubzilla-Hub „tollesfreiesnetz.de“) und da seinen Kanal „Karlheinz“. „tollesfreiesnetz.de“ wird von einer Privatperson betrieben und da kann es durchaus mal vorkommen, dass der Hub nicht erreichbar ist oder vielleicht bei einem Update auf dem Server was abkackt und somit der Hub nicht zur Verfügung steht. Oder der Betreiber von „tollesfreiesnetz.de“ kann oder will den Hub nicht länger betreiben (und sagt seinen Nutzern rechtzeitig bescheid). Nun, dann ist das für den Hubzilla-Nutzer kein Problem. Er legt sich einfach einen Account bei einem andern Hub – nennen wir ihn „meistensonline.net“) – an und klont seinen Kanal „Karlheinz“ dort.

Mit der nomadischen Indentität von Hubzilla ist es nun kein Problem, den eigenen Kanal, den man ja bei „tollesfreiesnetz.de“ angelegt hat zu klonen und bei „meistensonline.net“ zu betreiben… das geht sogar parallel… man kann also einen Kanal auf verschiedenen Hubs haben. Damit ist man dann sogar vor spontanen Ausfällen gefeit. Bockt der Hub „tollesfreiesnetz.de“ mal, loggt man sich einfach bei „meistensonline.net“ ein und hat Zugriff auf seine Verbindungen, Inhalte, kann kommentieren, liken, posten… es ist halt ein Klon.

Den eigenen Kanal zu klonen ist einfach! Man ruft im App-Menü (⋮) den Punkt „Kanalexport“ auf.

nom01

Dort hat man nun die Wahl, nur den Kanal zu exportieren (man lädt dann eine Datei mit den notwendigen Daten herunter), wobei nur die Verbindungen, Berechtigungen, Profile und Basisdaten enthalten sind, oder man exportiert Kanal (also die genannten Daten) UND Inhalte. Hier werden auch die eigenen Beiträge und Inhalte in einer Datei gesichert. Ist man schon länger dabei oder hat man sehr viel gepostet, kann die Datei mächtig groß werden und der Export dauert dann auch eine Weile. Man kann auch den Inhalts-Export auf bestimmte Zeitabschnitte beschränken.

nom02

Nun hat man eine json-Datei des eigenen Kanals (ggf. inklusive der Inhalte).

Will man nun diesen Kanal auf einem anderen Hub klonen, so loggt man sich beim „Ziel-Hub“ ein und ruft über das Systemmenü den Kanalmanager auf.

nom03

Hier wählt man „Neu anlegen“ und landet bei der Eingabemaske für das Anlegen eines neuen Kanals.

nom04

Ganz unten findet man einen Link „importiere einen bestehenden Kanal“, den man für das Klonen anklickt.

nom05

Nun erscheint die Eingabemaske für den Kanal-Import.

nom06

Beim Punkt „Hochzuladende Datei:“ wählt man die zuvor gesicherte Kanal-Datei aus. Setzt man ein Häkchen bei „Importiere die Beiträge einiger Monate, sofern möglich (beschränkt durch verfügbaren Speicher)“, so werden auch die Inhalte importiert (ob es alle sind, bzw. wie viele hängt von der Kapazität des neuen Hubs ab…).

Ein Häkchen bei „Dieser -Hub ist mein primärer Hub.“ führt dazu, dass der neue Hub nun der „Haupt-Hub“ wird, was Auswirkungen insbesondere auf die Ablage von Inhalten hat (z. B. Ablageort von Cloud-Inhalten).

Vorsicht bei der Option „Verschiebe diesen Kanal (deaktiviere alle vorherigen Adressen/Klone)“! Wählt man diese, so wird nicht nur der Kanal auf dem neuen Hub importiert, sondern es werden die Klone (also die Versionen des gewählten Kanals auf allen anderen Servern) auf den anderen Servern gelöscht.

Hat man alles ausgewählt (will man einfach einen Klon mit Inhalten zur eigenen Sicherheit und zur Absicherung gegen Serverausfälle anlegen, so wählt man den Import „einiger Monate“, setzt aber kein Häkchen bei „…primärer Hub“ und „Verschiebe…“), klickt man auf „Senden“. Nun kann es, je nach Umfang des Kanals einige Zeit dauern, bis der Import abgeschlossen ist. Man wird dann auf seinen Kanal-Klon auf dem neuen Hub weitergeleitet und kann sofort sehen, dass (bei mir hat das bisher immer geklappt) alles korrekt importiert wurde. Glückwunsch! Ihr habt jetzt einen Klon Eures Kanals angelegt.

Alternativ kann man auch unter Umgehung der Sicherungsdatei (ich würde es aber immer bevorzugen, es doch mit einer Datei zu machen) direkt vom ursprünglichen Hub klonen. Dazu gibt man die Adresse des zu klonenen Kanals an (diejenige, die so aussieht, wie eine eMail-Adresse), außerdem die Login-Mailadresse des Ursprungs-Hubs und das dazugehörige Passwort. Diese Variante kann aber mehr Zeit in Anspruch nehmen, als der Weg über die Datei… aber es funktioniert!


  • ) NICHT ärgern, wenn Ihr Euch bei diesen „Hubs“ nicht anmelden könnt… die gibt es so nicht… hab ich mir nur als Beispiel ausgedacht! 😉 😀

Nomadische Identität / Klonen - RELOADED

Eines der Kern-Features und eine herausragende Fähigkeit von Hubzilla ist die sogenannte “nomadische Identität”.

Nomadische Identität bedeutet echtes Eigentum an der Online-Identität. Mit Hubzilla habt Ihr kein Konto auf einem Server, sondern besitzt eine Identität, die Ihr über das gesamte Netz mitnehmen könnt. Ihr können einen Kanal über mehrere Hubs hinweg klonen, um gegen Netzwerkausfälle oder Zensur gewappnet zu sein, oder Ihr können einen Kanal komplett von einem Hub zu einem anderen verschieben und dabei Eure Daten und Verbindungen mitnehmen.

Gebundene Identität im Fediverse

Angenommen, Ihr habt einen Fediverse-Account bei einer (fiktiven!) ActivityPub-Instanz namens “mastoromakey.social”. Ihr habt Euch für Euren Account den Namen “festgenagelt” ausgedacht, dann lautet Euer Webbie (Fediversename/Handle) also @festgenagelt@mastoromakey.social. Das ist Eure Identität im Fediverse und jeder kann Euch über diese Adresse erreichen. Eure Identität setzt sich also aus dem gewählten Namen und der Instanz zusammen. Das zeigt in diesem Fall aber auch ganz deutlich, dass Eure Identität an eben diese Instanz gebunden ist. Ihr habt zwar die Hoheit über die Identität, aber nur solange die Instanz Euch den Zugang ermöglicht. Fällt sie aus, seid Ihr nicht mehr erreichbar und Ihr könnt mit dieser Identität auch Eure Kontakte nicht mehr pflegen. Und alles was Ihr unter dieser Identität gepostet oder kommentiert habt, steht auch nicht mehr zur Verfügung. Es ist (hoffentlich nur temporär) erstmal weg.

Oder Ihr stellt fest, dass Ihr mit dieser Instanz doch nicht so zufrieden seid (weil Euch im Nachhinein die Regeln doch nicht gefallen, weil sie elendig langsam ist, weil da übertrieben moderiert – oder gar nicht moderiert – wird…). Nun möchtet Ihr umziehen. Z.B. zur Instanz “gefaelltmirbesser.net”. Ihr könnt Euch dort nun einen neuen Account anlegen, der über das Webbie @festgenagelt@gefaelltmirbesser.net erreichbar ist. Nur… Eure Kontakte habt Ihr dort nicht, weder die Follower noch diejenigen, denen Ihr bisher gefolgt seid. Und auch Eure alten Inhalte sind dort nicht vorhanden. Und es findet Euch keiner so einfach, wenn er nur Eure alte Identität kennt.

Etliche ActivityPub-Dienste bieten eine Art Weiterleitung an, die man bei der alten Instanz aktivieren kann und die dann zur neuen führt. Womöglich erlaubt die Software der alten und der neuen Instanz den Ex- bzw. Import Eurer Kontakte… dann könnt Ihr die auch irgendwie mitnehmen.

Nun seid Ihr also umgezogen, aber ihr seid erneut “festgenagelt”, denn die Identität ist nun an die Instanz gefaelltmirbesser.net gebunden. Fällt die aus, steht ihr wieder vor dem alten Problem.

Die Lösung: Nomadische Identität bei Hubzilla

Hubzilla hingegen funktioniert da etwas anders. Wenn Ihr Euch bei einer Hubzilla-Instanz (= Hub) registriert, dann habt Ihr noch gar keine Identität. Ihr habt lediglich die Möglichkeit, Euch bei diesem Hub einzuloggen. Mehr ist aber erstmal nicht möglich. Deshalb wird nach erfolgreicher Registrierung immer auch gleich ein “Kanal” erstellt. Und DER ist Eure Identität im Fediverse. Auch der Kanal verfügt über eine “Fediverse-Adresse”, also ein Handle/Webbie, über das Ihr erreichbar seid und mit welchem Ihr im Fediverse auftretet. Angenommen, Ihr registriert einen Account bei hub.hubzilla.hu und wählt als Kurznamen für den Kanal “binfrei”, dann lautet Euer Webbie binfrei@hub.hubzilla.hu. Die Besonderheit ist, auch wenn sie zu diesem Zeitpunkt noch nicht greift, dass Euer Kanal, also Eure Identität nicht fest an den Hub gebunden ist. Sie wird zwar zu diesem Zeitpunkt von besagtem Hub verwaltet und ist dort auch gespeichert (so wie alle Eure Inhalte, Verbindungen, Daten in der Cloud, Artikel Webseiten etc.), sie ist aber eben nicht auf diesen Hub “festgenagelt”. So könnt Ihr Eure Identität exportieren. Sowohl den Kanal an sich, samt Kontakten, als auch die genannten Daten. Die könnt Ihr auf Euren Rechner herunterladen (sind komprimierte Archive) und wenn Ihr drauf steht, auf einen USB-Stick packen und in der Hosentasche mit Euch herumtragen.

Klonen

Das ist schön, hilft aber nicht unbedingt weiter, wenn man umziehen möchte oder der Hub einmal ausfällt.

Es ist aber die Grundvoraussetzung für die Funktionalität, die wir hier jetzt besprechen möchten. Wir können nämlich (über den Umweg dieser Sicherungsdateien oder online) einen Klon unseres Kanals auf einem anderen Hub anlegen. Um bei dem obigen Beispiel zu bleiben (mit dem Account bei hub.hubzilla.hu und dem Kanal “binfrei”), suchen wir uns nun einen anderen Hub aus, bei welchem wir ebenfalls einen Account registrieren… z.B. klacker.org.

Bei der Kanalerstellung (entweder der initialen nach Account-Erstellung oder bei einer späteren) habt Ihr die Möglichkeit, anstatt einen ganz neuen Kanal anzulegen, einen bereits (auf einem anderen Hub vorhandenen) Kanal zu klonen.

Das erledigt Ihr über den Link „importiere einen bestehenden Kanal“.

Wenn Ihr auf diesen Link klickt, öffnet sich das Formular für den Kanalimport.

Ihr steht jetzt vor der Wahl, wie Ihr Euren Kanal importieren und damit klonen wollt.

Ihr könnt den Kanal über die erwähnte Sicherungsdatei importieren oder direkt online vom bisherigen Hub.

Grundsätzlich empfehle ich die zweite Variante, also das Online-Klonen, weil hier die Daten auf aktuellstem Stand importiert werden.

Dafür müsst Ihr im Formular die notwendigen Informationen zu Eurem Ursprungs-Kanal eingeben:

  • ​ Die bisherige Kanaladresse (in unserem Beispiel: binfrei@hub.hubzilla.hu)
  • ​ Der Benutzername für das Login beim Ursprungs-Hub (Mailadresse)
  • ​ Das Passwort, dass Ihr für den Ursprungs-Hub verwendet

Außerdem könnt Ihr auswählen, ob die Inhalte des Ursprungskanals importiert werden (sofern der neue Hub die entsprechende Kapazität zur Verfügung stellt).

Ihr könnt außerdem hier festlegen, wenn der neue Kanal, also der jetzt anzulegende Klon Euer primärer Kanal sein soll (also der neue Hub – in unserem Beispiel klacker.org – der primäre Hub für Euren Kanal sein soll).

Falls Ihr für Euren Klon einen anderen Kurznamen verwenden möchtet, könnt Ihr diesen hier angeben. Bedenkt: Jeder Kanalname kann auf einem Hub nur einmal existieren. Sollte der gewählte andere Name oder der Originalname Eures Kanals auf dem neuen Hub schon vergeben sein, ändert Hubzilla automatisch den Kanalnamen (in der Regel werden Ziffern angehängt).

Nach einem Klick auf Absenden wird der Kanalklon erstellt. Dass kann, je nach Umfang (und Menge der Inhalte) eine ganze Weile dauern. Hier ist also ggf. etwas Geduld angebracht.

Hinweis: Selbst wenn ein Kanal des gewünschten Namens einmal existiert hat, aber wieder gelöscht wurde, steht er nicht mehr für die Kanalerstellung zur Verfügung. Dies dient dem Schutz vor dem Identitätsdiebstahl durch dritte.

Eine freundliche Nachfrage beim Hub Admin kann aber unter gewissen Umständen helfen, denn dieser kann den Kanalnamen auch wieder freigeben.

Inhalte importieren

Ihr werdet eventuell feststellen, dass beim Klonen nicht sämtliche Inhalte (also auch die Cloud-Dateien, Webseiten etc.) übertragen wurden. Um das nachzuholen, gibt es die App „Inhalte-Import“, die Ihr erst noch installieren und ins Menü bringen müsst.

Wenn Ihr die App aufruft, wird Euch ein Formular angezeigt, in welchem Ihr die Server-uRL (also die URL des Ursprungs-Hubs – in unserem Beispiel hub.hubzilla.hu) eingeben müsst. Ihr könnt festlegen, was alles importiert werden soll und die zu importierenden Inhalte auf einen bestimmten Zeitraum begrenzen.

Auch bei dieser Funktion ist – je nach Umfang der Inhalte – unter Umständen etwas Geduld gefordert.

Der primäre Hub / der primäre Kanal

Gerade tauchte der Begriff „primärer Hub“ bereits einmal auf. Der primäre Hub ist derjenige, mit welchem Ihr hauptsächlich unter Eurer Identität im Fediverse agiert. Auf diesem Hub sind auch die auf den Hub beschränkten Inhalte abrufbar (Cloud, Artikel, Webseiten etc.). Ihr könnt zwar mit jedem Kanal auf anderen Hubs am Fediverse teilnehmen, Postings veröffentlichen, kommentieren usw., aber die hub-gebundenen Inhalte erhalten eine Adresse beim primären Hub.

Sobald es auch nur einen Klon gibt, findet man bei den Einstellungen im Hauptmenü (das Menü unter dem Avatarbild des eigenen Kanals) einen weiteren Eintrag:

Klon-Adressen verwalten

An dieser Stelle könnt Ihr festlegen, welcher Kanal der primäre sein soll, Ihr könnt einen frischen Synchronisierungsprozess anstoßen (Button „Jetzt synchronisieren“) und auch Kanäle auf Hubs löschen. Letzteres ist aber nur dafür gedacht, einen Klon zu löschen, wenn der Hub, auf welchem er sich befand, nicht mehr existiert. Ansonsten sollen und müssen Kanäle über die Kanalverwaltung gelöscht werden.

Beim Auslösen eines frischen Synchronisierungsvorgangs ist es erforderlich, dass Ihr eine Weile wartet (damit die Synchronisierung abgeschlossen werden kann), bevor Ihr eine andere Funktion der Kanalverwaltung verwendet.

Umzug

Möchtet Ihr von einem Hub zu einem anderen Hub tatsächlich umziehen, also den alten Standort aufgeben, so müsst Ihr zunächst den Kanal zum neuen Hub klonen, diesen Hub (und damit den Klon) zum primären Hub machen und dann könnt Ihr Euch anschließend auf dem alten Hub einloggen und dort den ursprünglichen Kanal löschen. Lasst Euch mit diesem finalen Schritt aber bitte ein wenig Zeit, damit auch sicher alle Inhalte synchronisiert wurden.

Die Verbindungen im Klon-Kanal

Eine wichtige Sache ist beim Klonen, insbesondere in Hinblick auf das Wechseln des primären Hub, zu beachten:

Wenn Ihr einen Klonkanal zum primären Kanal macht, so ändert sich ja Euer Webbie (Fediverse-Adresse/Handle). Und das geschieht auch bei allen Euren Verbindungen zu anderen Hubzilla-Kanälen, also im sogenannten Grid (das Netzwerk der Hubzilla-Hubs). Diese Verbindungen bestehen also auch bei jedem Klon.

Leider versteht ActivityPub derzeit aber die nomadische Identität von Hubzilla nicht! Es gibt zwar Ansätze, eine solche dort zu implementieren und Mike Macgirvin hat das auch schon mit seiner Fediverse-Anwendung Forte realisiert, aber die derzeit genutzten ActivityPub Fediverse-Dienste unterstützen die nomadische Identität eben nicht.

Das seht Ihr z.B. daran, dass Ihr bei Eurem Kanalklon in der App „Verbindungen“ etliche Verbindungen seht, bei denen ein rotes Label signalisiert: „An diesem Ort nicht verbunden“. Es existiert bei diesen Kontakten aber auch ein grüner Button „+ Verbinden“. Auf diesen Button müsst Ihr klicken, damit der Kontakt auch mit dem Klonkanal verbunden wird.

Bedenkt dabei bitte: Die ActivityPub-Dienste kennen wirklich keine nomadische Identität. Wenn Ihr die Verbindung auf einem Klonkanal mit dem Button herstellt, dann bekommt der Kontakt eine neue Verbindungsanfrage. Und wenn die Verbindung eingegangen wurde, dann hat Euch der fremde Kontakt zweimal in der Kontaktliste. Einmal mit dem Webbie des Originalkanals und einmal mit dem Webbie des Kanalklons.

Das ist keine Unzulänglichkeit von Hubzilla und seinem Kommunikationsprotokoll Nomad/Zot6, sondern eine Unzulänglichkeit von ActivityPub bzw. der Implementierung von ActivityPub bei anderen Diensten.

Der Kanal in der Hosentasche

Die erwähnten Sicherungsdateien, die man, wenn man möchte, sogar mit sich herumtragen kann, sind nun noch eine Erwähnung wert. Sie sind nämlich nicht überflüssig. Man muss sich vergegenwärtigen, dass man seine Identität damit in den eigenen Händen hält. Fällt nun der genutzte Hub dauerhaft aus, so kann man mit einem Account auf einem anderen, funktionierenden Hub mittels dieser Sicherungsdateien seine Identität wieder online bringen. Dabei muss beachtet werden: Der Status der Verbindungen und der eigenen Inhalte ist aber auf dem Stand des Zeitpunkts, als diese Sicherungsdateien erstellt wurden. Man versetzt seine „tragbare Identität“ quasi in einen Kryoschlaf, aus welchen man sie wieder erwacht, sobald man den Kanal auf einen Hub importiert. Gibt es noch einen weiteren aktiven Klon, ist das gar kein Problem, weil die Klone wieder synchronisiert werden. Gibt es jedoch keinen, dann arbeitet man mit seinem Kanal auf dem letzten Stand vor der Sicherung weiter.

Die Sicherung erstellt man mit der App…

Kanalexport

Die App muss auch zunächst installiert und zugänglich (im App-Menü) gemacht werden.

Mit der App kann man seinen Kanal, also seine Identität und die Verbindungen exportieren.

Außerdem kann man seine Inhalte, also seine Beiträge, Direktnachrichten, Artikel und Karten in „Häppchen“ zu Jahren exportieren. Weiterhin kann man Sicherungsdateien der Webseiten, Wikis, Kalender und Chaträumen erzeugen und downloaden.

Wer aufgepasst hat, wird festgestellt haben, dass es bei dem Import-Dialog für die Kanalerstellung zwar möglich war, offline zu arbeiten, also eine Sicherungsdatei hochzuladen, dies ist aber beschränkt auf die Datei mit dem exportierten Kanal. Inhalte etc. kann man dort nicht gleichzeitig hochladen. Hat man also einen Kanal über eine Sicherungsdatei geklont, muss man die Inhalte noch importieren. Möchte man dies aus den anderen Sicherungsdateien tun, kann man nicht die App „Inhalte-Import“ verwenden sondern man muss das Formular für den Import direkt aufrufen. Dazu hängt man an die URL des Hubs „/import_items“ an: <URL_DES_HUB>/import_items.

Damit erreicht man ein Webformular mit welchem man (nacheinander) die verschiedenen vorhandenen Sicherungsdateien für den Import hochladen kann.

Kontakte importieren

Möchte man Kontakte („Followed“, nicht „Follower“) eines anderen Fediverse-Dienstes in seinen Kanal importieren, hält Hubzilla derzeit noch keine Funktion dafür bereit.

Viele Fediverse-Dienste erlauben das Exportieren seiner „Followed-Kontakte“, also der Kontakte denen man selbst folgt als CSV-Datei (Comma-separated values).

Es gibt nun ein Addon, mit welchem man solche Kontaktdateien in seinen Kanal zu importieren.

Das Addon stammt aus einer Drittquelle, gehört also nicht zum Standard-Umfang von Hubzilla und muss vom Admin erst hinzugefügt und aktiviert werden.

Wird es vom eigenen Hub zur Verfügung gestellt, kann man es in der Appverwaltung (App-Menü ➔ „+ Apps“) aus den „verfügbaren Apps. Der Name ist csvimport. Dann ist es möglich, diese App im Appmenü anzuheften und sie per Klick aufzurufen.

Es erscheint ein Formular, in welchem man die Sicherungsdatei auswählen kann.

Klickt man nun auf „Import starten“, wird die CSV-Datei nach Fediverse-Handles (Fediverse-Adressen / Webbies) durchsucht und die gefundenen Kontakte werden nacheinander mit Standard-Rechten als Verbindungen hinzugefügt.

Nach erfolgreichem Import findet man dann die Kontakte in der App „Verbindungen“.

NSFW

Inhaltswarnungen bzw. das Verbergen von bestimmten Inhalten wird bei Hubzilla mit der App “NSFW” realisiert.

Während man bei anderen Diensten im Fediverse darauf angewiesen ist, dass die Verfasser von Postings möglicherweise “sensible” Inhalte hinter einem Contentwarning (einer Inhalts- bzw. Triggerwarnung) verbergen, hat man bei Hubzilla diese Funktionalität als Rezipient selbst in der Hand. Mit der App NSFW kann man Filter erstellen, die dafür sorgen, dass Beiträge, die unter die Filterregeln fallen, eingeklappt angezeigt werden. Erst ein Klick auf den Button zeigt den Inhalt des Postings.

Sofern die App noch nicht installiert oder noch nicht ins App-Menü gepinnt wurde, muss dies nachgeholt werden (Apps installieren, ins Menü einfügen, anpinnen und konfigurieren.

nsfw01

Startet man die App, so erscheint die Eingabemaske für die Filter.

nsfw02

nsfw03

Hier kann man nun Schlüsselwörter und sogar reguläre Ausdrücke eingeben, auf welche das Posting durchsucht wird. Wird eines der Wörter oder ein Textmuster gefunden, so wird der Inhalt im Stream zugeklappt angezeigt.

Es ist hier auch möglich, nach Sprachen zu filtern (lang=xx oder lang!=xx).

nsfw04

nsfw05

O

Oberfläche und Bezeichnungen

Oberfläche / Bezeichnungen

Mittlerweile gibt es neben dem Hubzilla Standard-Theme “Redbasic” zwei weitere, die sich für die tägliche Nutzung anbieten, moderner aussehen und - auch für Einsteiger - die Bedienung vereinfachen: Neuhub-Tab und Utsukta-Theme.

Sie unterscheiden sich in der Position der wesentlichen Elemente vom Standard, weshalb ich hier einmal die Bezeichnungen darstelle.

Redbasic Theme

ui01


Utsuka Theme

bezeichnungenut

Das App-Menü wurde vollständig in die linke Seitenleiste verlegt. Alle Widgets und Blöcke, die sonst in der linken Seitenleiste angezeigt werden, werden bei diesem Theme zusätzlich in der rechten Seitenleiste angezeigt.


Neuhub-Tab Theme

bezeichnungennht

Das Neuhub-Tab Theme unterscheidet sich vor allem dadurch von “Redbasic”, dass die linke Seitenleiste für ein ausführliches und selbsterklärendes Menü für die verschiedensten Funktionen verwendet wird. Die Funktionen sind außerdem thematisch gegliedert. Die angehefteten Apps werden in der Navigationsleiste prominenter dargestellt und sind dadurch schneller zu erfassen. Alle Widgets und Blöcke, die sonst in der linken Seitenleiste angezeigt werden, werden bei diesem Theme zusätzlich in der rechten Seitenleiste angezeigt.


Posting-Menü

ui02

Ordner

Möchte man sich Postings für später merken, so kann man das durch Markierung (Stern) tun. Bei einer großen Zahl solchermaßen gemerkter Postings wird es aber leicht unübersichtlich.

Praktischer ist es, solche Beiträge in verschiedenen “Ordner” zu speichern. Das sind kategorisierte Markierungen.

Die Funktion zum Speichern in Ordnern findet man im Posting-Menü (unten rechts am Posting): “In Ordner speichern”.

ord01

Es öffnet sich ein Dialog mit einem Eingabefeld. Hier kann man entweder einen neuen Ordner anlegen (wenn man noch keine passende Kategorie hat) oder mit einem zweiten Klick in dieses Feld aus der Liste bereits vorhandener Ordner das passende Ziel auswählen.

ord02

ord03

In der Stream-Ansicht findet man in der linken Seitenleiste den Eintrag “Gespeicherte Ordner”. Klickt man darauf werden sämtliche vorhandenen Ordner angezeigt. Wählt man nun einen Ordner aus, so werden sämtliche Postings, die man in diesem Ordner abgelegt hat in chronologischer Reihenfolge im Stream angezeigt.

ord04

ord05

Dieses Feature ist vergleichbar mit den “Clips”, wie man sie von Misskey und den Forkeys kennt.

Organisieren

Schon zu Anfang sollte man Hubzilla für eine komfortable Benutzung „organisieren“. Dafür sollte man einige sinnvoll Apps installieren und im App-Menü (⋮, oben rechts) verfügbar machen.

Die App für die Einstellung der Sprache der Benutzeroberfläche gehört zu den wichtigen Apps, ebenso die App für den öffentlichen Beitragsstream.

orga01

Wie man Apps installiert und im App-Menü sichtbar macht, kann man im Eintrag Erste Schritte / Einstellungen nachlesen.

Von Beginn an ist es vernünftig, seine Kontakte (verbundene Kanäle) in Gruppen zu organisieren. Das ermöglicht, den Stream später nach Beiträgen von Kontakten, die bestimmten Gruppen zugeordnet sind, zu filtern, was das Auffinden bestimmter Beiträge erleichtert oder den Stream für bestimmte Zwecke zeitweise zu „entschlacken“. Außerdem ermöglichen Gruppen es, die Sichtbarkeit von Beiträgen auf bestimmte Gruppen zu beschränken (man kann die Berechtigten zwar auch einzeln anwählen, mit Gruppen kann man sich das aber vereinfachen).

Deshalb sollte man auch die App „Gruppen“ installieren.

orga02

orga03

Nun erscheint in der linken Seitenleiste bei den Streamfiltern auch der Eintrag „Gruppen“.

Mit der App „Gruppen am App-Menü” kann man sich anzeigen lassen, welche verbundenen Kanäle sich in den Gruppen befinden. Außerdem kann man neue Gruppen anlegen.

orga04

Neue oder bestehende Verbindungen kann man nun diesen Gruppen zuordnen.

orga05

Bei den meisten Hubs erscheinen, wenn man einen neuen Kanal angelegt hat, in der rechten Seitenleiste „Links für neue Mitglieder“. An diesen können sich Mitgliedern, die #neuhier sind, gut für die ersten Schritte orientieren. Irgendwann sind diese Hinweise aber eher überflüssig und stören vielleicht.

Im Hauptmenü (links oben) wählt man dann den Punkt „Einstellungen“, wo man unter „Anzeigeeinstellungen -> Inhaltseinstellungen‘ diese Links abschalten kann.

orga06

Praktisch ist es auch, die wichtigsten Apps anzupinnen… sie erscheinen dann für den schnellen Zugriff oben rechts neben dem App-Menü. Ich selbst finde es sinnvoll, dort die Apps „Stream“, „Mein Kanal“, „Öffentlicher Beitrags-Stream“ und vielleicht „Mail” zu pinnen… aber das muss jeder selbst nach seinen Vorlieben entscheiden.

Und nun vielleicht noch ein paar weitergehende Infos zum Posten? Die gibt es hier: Posten, teilen und kommentieren

Outqueue ‘Expert mode’ - Admin - en

Outqueue ‘Expert mode’ - Admin

The administrator of a hub has the option of displaying which items are currently in the queue. This can be done in “Admin” under ‘Inspect queue’. Selecting this menu item takes you to <URL_OF_THE_HUB>/admin/queue.

In this view, the entries are displayed in a table:

Total EntriesDestination URLPriority

It is not possible to edit the entries.

However, there is also an ‘expert mode’ for this view, which unfortunately cannot be accessed via the administration menu. It must be appended to the URL ‘?expert=1’, so the call is <URL_OF_THE_HUB>/admin/queue?expert=1.

Now, in addition to the three pieces of information previously displayed, three buttons are shown in the table:

  • x - Mark hub as permanently offline
  • trash - Empty queue for this hub
  • empty Button - Retry delivery to this hub

These three buttons can be used to perform the actions mentioned above.

To avoid having to append the string to the URL every time, you can, for example, create an app with this URL and add it to the app menu or pin it to the navigation bar.

app_outqx


Thanks for discovering this hidden feature go to Harald Eilertsen, who stumbled upon it while working on the source code.

P

Persönlicher Cloud-Speicher

Hubzilla bietet die Möglichkeit, private Dateien zu speichern und / oder beliebige Dateien mit Freunden zu teilen.

Sie können entweder Dateien von Ihrem Computer in Ihren Speicherbereich hochladen oder sie mithilfe des WebDAV-Protokolls direkt vom Betriebssystem kopieren.

Auf vielen öffentlichen Servern kann die Festplattennutzung eingeschränkt sein.

Dateianhänge

Dateien lassen sich am schnellsten und einfachsten über Dateianhänge freigeben. In der Reihe der Symbole unterhalb des Status-Post-Editors befindet sich ein Werkzeug zum Hochladen von Anhängen. Klicken Sie auf das Tool, wählen Sie eine Datei aus und senden Sie sie ab. Nachdem die Datei hochgeladen wurde, wird ein Anhangscode innerhalb des Textbereichs angezeigt. Bearbeiten Sie diese Zeile nicht, da Ihre Freunde den Anhang möglicherweise nicht sehen können. Sie können das Dialogfeld mit den Post-Berechtigungsdialogfeldern oder Datenschutz-Hashtags verwenden, um die Sichtbarkeit der Datei einzuschränken. Diese wird so festgelegt, dass sie mit den Berechtigungen des Posts übereinstimmt, den Sie senden.

Um Anlagen zu löschen oder die Berechtigungen für die gespeicherten Dateien zu ändern, besuchen Sie ihr_hub /cloud/ ihr_kanal

Web-Zugang

Ihre Dateien sind im Web am Standort ihr_hub /cloud/ ihr_kanal für jeden sichtbar, der sie sehen darf. Wenn der Viewer über ausreichende Berechtigungen verfügt, kann er auch neue Dateien und Ordner / Verzeichnisse erstellen. Dies sollte nur für kleinere Dateien und Fotos (bis zu einigen MB) verwendet werden, da der interne Speicher verwendet wird. Für größere Dateien (Videos, Musik usw.) laden Sie sie bitte mit WebDAV hoch. Diese Dateien können weiterhin über den Webzugriff abgerufen werden.

WebDAV-Zugriff

WebDAV bietet die Möglichkeit, Dateien direkt auf das Betriebssystem Ihres Computers zu kopieren, wo Ihre Cloud-Dateien als virtuelles Laufwerk angezeigt werden. Dies sollte verwendet werden, um große Dateien wie Video und Audio hochzuladen. da es nicht auf den verfügbaren Speicher beschränkt ist. Siehe Cloud-Desktop-Clients weiter unten.

CalDAV- und CardDAV-Zugriff auf Android

Sie können Kalender und Kontakte auf Android mit Ihrem Hub synchronisieren.

Die folgenden Schritte wurden auf DAVdroid getestet

• Installieren Sie ~DAVdroid

• Konto hinzufügen

• Verwenden Sie „URL“ und „Benutzername“, um sich anzumelden

◦ Basis-URL ist ihr_hub /cdav

◦ Benutzername ist ihr_kanal

Um Ihren Kalender zu teilen, rufen Sie ihr_hub /cdav/calendar auf.

Berechtigungen

Wenn Sie WebDAV verwenden, wird die Datei mit den Standard-Dateiberechtigungen Ihres Kanals erstellt. Diese Einstellung kann nicht innerhalb des Betriebssystems geändert werden. Es kann auch nicht so einschränkend sein, wie Sie möchten. Wir haben festgestellt, dass die bevorzugte Methode, Dateien privat zu machen, zuerst Ordner oder Verzeichnisse erstellt. Besuchen Sie dann ihr_hub /cloud/ ihr_kanal, wählen Sie das Verzeichnis aus und ändern Sie die Berechtigungen. Tun Sie dies, bevor Sie etwas in das Verzeichnis einfügen. Die Verzeichnisberechtigungen haben Vorrang, sodass Sie Dateien oder andere Ordner in diesen Container einfügen können und durch die Verzeichnisberechtigungen vor unerwünschten Viewern geschützt werden. Für Leute ist es üblich, einen „persönlichen“ oder „privaten“ Ordner zu erstellen, der auf sich selbst beschränkt ist. Sie können dies als persönliche Cloud verwenden, um überall im Internet oder auf einem Computer alles zu speichern, das vor anderen geschützt ist. Sie können auch Ordner für „Familie“ und „Freunde“ erstellen, deren Berechtigungen den entsprechenden Datenschutzgruppen erteilt werden.

Cloud-Desktop-Clients

Cloud-Desktop-Clients – Windows

  1. WebDAV mit dem Assistenten der grafischen Benutzeroberfläche von Windows 10/11:

    1. Öffnen Sie den Datei‑Explorer.
    2. Rechtsklick auf “Dieser PC” → “Netzlaufwerk verbinden…”
    3. Wählen Sie einen Laufwerksbuchstaben.
    4. Unter “Ordner” geben Sie die DAV‑URL in der Form https://<IHR_HUB>/dav/>KANALNAME> ein (z. B.https://klacker.org/dav/tutorial01).
    5. Setzen Sie Haken bei “Verbindung mit anderen Anmeldeinformationen herstellen”.
    6. Klicken Sie auf “Fertig stellen”.
    7. Geben Sie Benutzernamen und Passwort ein (ohne “@”).
    8. Optional: Haken bei “Anmeldeinformationen speichern”, wenn gewünscht.

Cloud-Desktop-Clients – Linux

Als Dateisystem einbinden

Mounten als Dateisystem

Um Ihr Cloud-Verzeichnis als Dateisystem zu installieren, müssen Sie zunächst davfs2 installieren. In 99% der Fälle wird dies in Ihre Distributions-Repositorys aufgenommen. In Debian

apt-get install davfs2

Wenn Sie normale Benutzer das Dateisystem mounten möchten

dpkg-reconfigure davfs2

und wählen Sie „Ja“ an der Eingabeaufforderung.

Jetzt müssen Sie jeden Benutzer hinzufügen, den Sie in die Gruppe davfs2 einbinden möchten

usermod -aG davfs2 desktopuser

Hinweis: Auf einigen Systemen kann die Benutzergruppe unterschiedlich sein, d. h. – „Netzwerk“. auf Arch Linux. Wenn Sie Zweifel haben, überprüfen Sie die Davfs-Dokumentation für Ihr spezielles Betriebssystem.

Bearbeiten Sie /etc/fstab

nano /etc/fstab

um Ihr Cloud-Verzeichnis durch Hinzufügen hinzuzufügen

ihr_hub /dav/ /mount/point davfs user,noauto,uid=,file_mode=600,dir_mode=700 0 1

Dabei ist ihr_hub die URL Ihres Hubs, / mount / point der Ort, an dem Sie die Cloud bereitstellen möchten, und desktopuser ist der Benutzer, an dem Sie sich an einem Computer anmelden. Wenn Sie als normaler Benutzer mounten (nicht als root), muss sich der Mountpunkt in Ihrem Home-Verzeichnis befinden.

Wenn ich zum Beispiel meine Cloud in ein Verzeichnis mit dem Namen „Cloud“ in meinem Home-Verzeichnis einbinden wollte und mein Benutzername bob war, wäre dies mein Fstab

https://hubzilla.pepecyb.hu/dav/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1

Erstellen Sie nun den Einhängepunkt.

mkdir /home/bob/cloud

Erstellen Sie außerdem eine Verzeichnisdatei zum Speichern Ihrer Anmeldeinformationen

mkdir /home/bob/.davfs2

Erstellen Sie eine Datei mit dem Namen „secrets“

nano /home/bob/.davfs2/secrets

und fügen Sie Ihre Anmeldeinformationen für die Cloud hinzu ihr_hub dav username passwort

Wobei benutzername der Benutzername und passwort das Passwort für Ihren Hub sind.

Lassen Sie nicht zu, dass diese Datei von jedem geschrieben werden kann, der sie nicht benötigt

chmod 600 /home/bob/.davfs2/secrets

Mounten Sie schließlich das Laufwerk.

mount https://hubzilla.pepecyb.hu/dav

Sie können Ihre Cloud jetzt unter / home / bob / cloud finden und verwenden, als wäre sie Teil Ihres lokalen Dateisystems – selbst wenn die von Ihnen verwendeten Anwendungen selbst keine Unterstützung für Davfs haben.

Fehlerbehebung

Bei einigen Webservern und bestimmten Konfigurationen stellen Sie fest, dass davfs2 Dateien mit einer Dateigröße von 0 Byte erstellt, bei denen andere Clients einwandfrei funktionieren. Dies wird im Allgemeinen durch Cache und Sperren verursacht. Wenn Sie von diesem Problem betroffen sind, müssen Sie Ihre davfs2-Konfiguration bearbeiten.

nano /etc/davfs2/davfs2.conf

Ihre Distribution enthält eine Beispielkonfiguration. Diese Datei sollte bereits vorhanden sein. Das meiste wird jedoch mit einem # am Anfang der Zeile auskommentiert.

Der erste Schritt ist das Entfernen von Sperren.

Bearbeiten Sie die use_locks-Zeile so, dass sie gelesen wird use_locks 0.

Hängen Sie das Dateisystem aus, mounten Sie das Dateisystem erneut und versuchen Sie, eine Datei von der Befehlszeile aus zu kopieren. Beachten Sie, dass Sie eine neue Datei kopieren und keine alte für diesen Test überschreiben sollten. Warten Sie ein oder zwei Minuten, dann führen Sie ls -l -h aus Überprüfen Sie, ob die Dateigröße Ihrer neuen Datei immer noch größer als 0 Byte ist. Wenn dies der Fall ist, stoppen Sie dort und machen Sie nichts weiter.

Wenn das immer noch nicht funktioniert, deaktivieren Sie den Cache. Beachten Sie, dass dies Auswirkungen auf die Leistung hat. Daher sollten Sie dies nur tun, wenn das Deaktivieren von Sperren Ihr Problem nicht gelöst hat. Bearbeiten Sie die cache_size und setzen Sie sie auf cache_size 0 und setze auch file_refresh auf file_refresh 0. Hängen Sie Ihr Dateisystem auf, mounten Sie Ihr Dateisystem erneut und testen Sie es erneut.

Wenn es immer noch nicht funktioniert, können Sie noch etwas versuchen. (Dieses Problem wird durch einen Fehler in älteren Versionen von dav2fs verursacht, daher kann auch das Update auf eine neue Version hilfreich sein). Erlaube schwaches etag-Setzen durch Setzen drop_weak_etags 1. Hängen Sie Ihr Dateisystem auf und stellen Sie es erneut bereit, um die Änderungen anzuwenden.

Dolphin

Besuchen Sie webdavs:example.com/dav, wobei „example.com“ die URL Ihres Hubs ist. Wenn Sie zur Eingabe eines Benutzernamens und Kennworts aufgefordert werden, geben Sie Ihren Kanalnamen (den ersten Teil Ihres Webbieers – kein @ oder Domänenname) und das Kennwort für Ihr normales Konto ein. Wenn Sie bereits über Konqueror an der Weboberfläche angemeldet sind, werden Sie nicht zur weiteren Authentifizierung aufgefordert. Konqueror Besuchen Sie einfach webdavs: example.com/dav, nachdem Sie sich bei Ihrem Hub angemeldet haben, wobei „example.com“ die URL Ihres Hubs ist.

Es ist keine weitere Authentifizierung erforderlich, wenn Sie auf normale Weise bei Ihrem Hub angemeldet sind.

Wenn Sie sich während ihrer normalen Browsersitzung an einem anderen Hub authentifiziert haben, wird Ihre Identität auch für diese Hubs in die Cloud übertragen. Dies bedeutet, dass Sie auf alle privaten Dateien auf jedem Server zugreifen können, sofern Sie über die Berechtigung verfügen, sie zu sehen. solange Sie diese Site zuvor in Ihrer Sitzung besucht haben.

Diese Funktionalität ist normalerweise auf die Webschnittstelle beschränkt und für andere Desktopsoftware als KDE nicht verfügbar.

Nautilus

  1. Öffne ein Fenster zum Durchsuchen von Dateien (das ist Nautilus)
  2. Wählen Sie im Menü Datei> Mit Server verbinden
  3. Geben Sie davs: ihr_hub /dav/ ihr_kanal ein und klicken Sie auf Verbinden #Sie werden aufgefordert, Ihren Kanalnamen (wie oben beschrieben) und Ihr Kennwort einzugeben #Ihr persönliches DAV-Verzeichnis wird im Fenster angezeigt Nemo Für (Dateibrowser) Nemo 1.8.2 unter Linux Mint 15, Cinnamon 1.8.8. Nemo ist dort der Standard-Dateibrowser. 1. Weg Geben Sie „davs:/dav/“ in die Adresszeile ein.
  4. Weg Menü > Datei > Verbindung zum Server herstellen

Füllen Sie den Dialog aus

  • Server: hubzilla_domain_name
  • Art: Secure WebDAV (https)
  • Verzeichnis: /dav
  • Nutzername: yourchannelname
  • Passwort: yourpassword

Nach dem Öffnen können Sie ein Lesezeichen setzen.

Server Anmerkungen

Hinweis: Es wurden Probleme mit Clients gemeldet, die „Chunked Transfer Encoding“ verwenden. Dazu gehören Apple iOS-Dienste sowie die Tools „AnyClient“ und „CyberDuck“. Diese funktionieren gut für Downloads, aber für Uploads werden häufig Dateien mit der Größe Null verwendet. Dies wird durch eine falsche Implementierung der Chunked-Codierung in einigen aktuellen FCGI-Implementierungen (Fast-CGI) verursacht. Bei Apache, der mit PHP als Modul ausgeführt wird, treten diese Probleme nicht auf. Wenn Sie jedoch unter FCGI ausgeführt werden, müssen Sie möglicherweise alternative Clients oder den Web-Uploader verwenden. Zum Zeitpunkt der Erstellung dieses Berichts war das Problem offen und es wurden mindestens ein Jahr lang keine Updates bereitgestellt. Wenn Sie bei anderen Clients auf Dateien mit der Größe null zugreifen, überprüfen Sie die Client-Notizen. da gelegentlich Konfigurationsprobleme auftreten, können diese Symptome ebenfalls auftreten.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Understanding Hubzilla's permission system - en

Understanding Hubzilla’s permission system

Hubzilla has an access authorisation system that may initially seem unmanageable for beginners. However, if you realise a few basic principles, it is ultimately understandable and comprehensible.

Identity = channel

With Hubzilla, you need an account with a hub (Hubzilla instance/Hubzilla server). However, unlike most other Fediverse services, this account is not your own identity. Whereas with Mastodon, for example, your account also creates the Fediverse identity with which you appear in the Fediverse, the Hubzilla account only authorises you to log in to the corresponding hub. If you have registered a new account, you do not yet have a Fediverse identity and cannot participate in the Fediverse.

The Hubzilla identity is called a channel. If you have an account with a hub, you can create such a channel. And with this identity, i.e. the channel, you can then also participate in the Fediverse.

permsys01

A special feature of Hubzilla is that you can create as many channels as you like. However, you only need one account for this. Different channels can now be used for different purposes. For example, you can set up a ‘classic’ Fediverse identity as a channel, as you would with other services. However, you can also create another channel, for example, which is not as public as the ‘classic’ channel. This can be used, for example, to only interact with certain people. Or you can choose to set up a community forum as a channel. Such a channel behaves in much the same way as a classic forum and offers a kind of community page on which the members (connections to the channel) can exchange information.

The possibilities are manifold. You can create a channel for any purpose and thus an additional identity.

Important: The principle of the whitelist

Hubzilla’s authorisation system is based on a kind of whitelist system. In principle, everything is initially forbidden to other people (Fediverse users or even pure Internet users without a Fediverse account).

! Info !
A whitelist, also known as a positive, exception or authorisation list, is a list that contains exceptions to a general prohibition.

Permission and access

What is generally referred to as ‘permission’ in this article can be further differentiated: Permission and access system. Access permissions, or access for short, regulate which content other people can access and what they can see, i.e. they relate to the object/content. The permissions regulate what others can do in and with our channel and our content (e.g. comment, repeat, share, like, etc., possibly also edit, modify or even add content) and what they can generally see.

The first level of the permission system: the channel role

When creating a channel, you must select the so-called channel role. You can choose between ‘Public’, ‘Personal’, ‘Community Forum’ and ‘Custom’.

permsys02

In order to be able to interact with your channel with other people, they must be granted certain permissions (unless you really want to use Hubzilla as a completely private space without any contact to the outside world… that is also possible).

Hubzilla provides three channel roles with a set of specific permissions to choose from when creating a channel:

  1. Public: This channel role is in principle the closest to the ‘classic’ social network profile as known from other services. A wide range of interactions is possible.
  2. Personal: This channel role is also close to the ‘classic’ social network profile. However, it initially restricts certain personal interactions (they are not on the whitelist, so to speak).
  3. Community Forum: This channel role is a special feature. The permissions are very similar to those of the “Personal” channel role. However, the ability to behave like a forum is also activated. This means that members (i.e. connections) of this forum channel can post directly to the ‘wall’ of the forum, which means that such a post ends up in the channel stream and can be seen by all other members (connections), who are also notified about it. In addition to the ‘Personal’ channel role, users are granted the right to view the channel’s connections (i.e. the member list).

The fourth selection option is ‘Custom’. Here you can define the permissions for each individual case yourself after creating the channel. However, the settings for the permissions are not found in the channel settings, where you select the channel role, but in the privacy settings. Here there is an additional button ‘Advanced configuration’, which takes you to the editor for the permissions of the channel role. When you open this editor, you are first warned: ‘Proceed with caution - Changing advanced configuration settings can impact your, and your contact channels functionality and security.

permsys03

permsys04

If you decide to accept the ‘risk’, click on the corresponding button and you will finally be taken to the permission settings for the channel.

permsys05

The warning may scare some people a little. It also sounds almost threatening. But if you have read and understood this article, there is little risk of creating an “unusable” channel. In addition, if the channel does not work as expected, you can change the channel role back to one of the three preset variants at a later date and have a channel that works accordingly. Here are the permissions for the channel roles:

PermissionPublicPersonalCommunity ForumCustom
Can view my channel stream and postsXXX
Can send me their channel stream and posts
Can view my default channel profileXXX
Can view my connectionsXX
Can view my file storage and photosXXX
Can upload/modify my file storage and photos
Can view my channel webpagesXXX
Can view my wiki pagesXXX
Can create/edit my channel webpages
Can write to my wiki pages
Can post on my channel (wall) page
Can comment on or like my postsX
Can send me direct messagesX
Can like/dislike profiles and profile thingsX
Can chat with meX
Can source/mirror my public posts in derived channels
Can administer my channel

The permissions listed here for the three preset roles cannot be changed.

With the user-defined authorisations, you have the option in the editor to choose between

  • Only me
  • Only those you spezifically allow
  • Approved connections
  • Any connections
  • Anybody on this website
  • Anybody in this network
  • Anybody authenticated
  • Anybody on the internet

The second level of the permission system: the contact roles

The channel roles apply to everyone who visits our channel. This includes guests without a Fediverse account and users of other Fediverse services (but also Hubzilla users) to whom we are not connected.

And of course they apply to users with whom we are connected.

However, with the second level of the permission system, the contact roles, we now have the option of granting further rights to certain connections.

Please pay attention to the wording here: ‘to grant further rights’!

With the contact roles, we can grant users options that are not granted in the channel role. However, we cannot remove permissions that have been granted by the channel role. The contact roles are also a positive list. Another positive list that supplements and extends the positive list of the channel role if necessary.

There is a ‘standard’ contact role that expands the permissions of the predefined channel roles. This standard role means that the channel actually behaves like a ‘classic’ social network account:

BerechtigungStandard
Can view my channel stream and postsX
Can send me their channel stream and postsX
Can view my default channel profileX
Can view my connectionsX
Can view my file storage and photosX
Can upload/modify my file storage and photos
Can view my channel webpagesX
Can view my wiki pagesX
Can create/edit my channel webpages
Can write to my wiki pages
Can post on my channel (wall) pageX
Can comment on or like my postsX
Can send me direct messagesX
Can like/dislike profiles and profile thingsX
Can chat with meX
Can source/mirror my public posts in derived channelsX
Can administer my channel

This default role is assigned to all new contacts by default. If we have not configured our channel under Privacy settings so that all contact requests are automatically approved, we can also change the contact role directly when approving the connection (if there are other channel roles). The contact role of each connection can be changed retrospectively.

With the ‘Contact Roles’ app, we can view the permissions of the default contact role (the default role cannot be changed) and create new contact roles of our own.

As already mentioned, the channel role of your own channel has top priority. Each contact role inherits the authorisations specified by the channel role. You cannot revoke these permissions in the contact role; you can only add further permissions.

permsys06

The inherited permissions are displayed in red in the “Contact Roles” app. The new contact roles created here can now be assigned to new and existing contacts. When creating a contact role, we can also specify that this role is to be assigned to new contacts as the default in future. Of course, this only works for one role.

The third level of the permission system: permission settings (access / access permission)

While the channel role and the contact roles define the basic permissions, the permission settings for individual content offer the option of explicitly defining access. Here we are in the access (access permission) system layer. This system basically determines whether a user can see our content.

The permission settings can be accessed via a button with a padlock symbol in connection with the respective content (posting, files and file folders, appointments, articles, websites, etc.). With these access permissions, in addition to the permissions granted by channel roles and contact roles, you can specify who can see the content.

You have the choice between

  • Public
  • Only me
  • Privacy Groups
  • Custom selection

permsys07

With the customised selection, we have the option of granting each individual contact, user group and guest access permission to view the content.

permsys08

The settings for the access permissions can be used to override the permissions granted with the channel and contact roles to a certain extent. If you select ‘Public’ for both access authorisations, the rules for the channel and those for contacts remain unaffected and access to the content/object is granted as provided for by these permissions.

If you select ‘Only me’, the permissions assigned for the content/object no longer apply. The content is only made available to the channel owner. They can always see their own content anyway.

If you select a privacy group or individual contacts and groups from the ‘User-defined’ area, the permissions granted for the channel roles and contact roles are no longer taken into account directly, but only for the contacts and/or contact groups to whom we grant access to the object/content. This means that contacts who have been granted certain permissions, i.e. who have been given the ability to see objects/content, for example, can be granted this right for a specific object/content with the access permissions, while all others are denied this right in this individual case. It is important to note that this mechanism cannot be used to grant access permissions if they have not been granted via the channel role or contact role. If, for example, the channel role does not allow users to view the channel’s websites and this is also not permitted via a contact role, the contact cannot be allowed to view the website using the permission settings (access).

If you grant users who do not have an account on your own hub, but on a third-party Hubzilla hub, rights to content / objects, they must authenticate themselves on their own hub. It is best to send them the link to the content using the tags [zrl][/zrl] or [zrl=][/zrl], as this automatically authenticates them. For more information, see the article Authentication.

Fediverse users who are using other services in the Fediverse can see posts with the appropriate access permission because these are federated and distributed to the stream/timeline and are therefore visible to the recipient. Other content / objects, such as files or file folders, or even articles, websites etc. are not federated and remain exclusively on the owner’s hub. You can now share a link to such content, for example. The recipient then receives the link in their timeline. However, clicking on it then leads to the original hub. However, if the object behind the link is access-restricted, the recipient cannot see it, even if they have been specified as authorised in the access permissions. This only works within the Hubzilla network (grid) because only one Hubzilla channel can log in remotely to the target hub via ‘magic authentication’. This capability is a speciality of the Nomad protocol and is not available with ActivityPub. In order to make such content / objects accessible to users of other services or users without any Fediverse account, the guest access mechanism must be used.

Using the permission settings also makes it possible to send direct messages. If we select one or more contacts, a posting will only be distributed to these contacts. The post will also appear in their filter for direct messages. Such posts cannot be forwarded or shared. Comments, i.e. replies to these direct messages, are also only distributed to those contacts who were specified as authorised in the original post.

Individual contacts can also be selected for such direct messages by bypassing the authorisation setting using a private mention (@!<HANDLE>).

Another type of permission system: privacy groups

The ‘Privacy Groups’ app makes it possible to assign contacts to privacy groups. These groups are collections of contacts and are used to filter the stream, but also for simple communication that is restricted to certain contacts.

You can create privacy groups with the app. You assign a name to the group and specify whether the members of the group are visible to other channels, whether posts should be made to this group by default and whether new contacts should be assigned to this group by default.

permsys09

The option ‘Post to this group by default’ ensures that the permissions in the permission settings (padlock next to the ‘Submit’ button) of a content item are preset to the corresponding privacy group. This setting can be explicitly overridden for individual content items using the permission settings. The option therefore affects not only the posting of Messages, but also the visibility of other content, such as files and folders, articles, web and wiki pages, etc.

If we have created such a privacy group and now call it up in the ‘Privacy groups’ app, the above-mentioned settings are displayed again. Below this we find two columns:

  • Not in this group All connections that have not been assigned to the group are displayed here
  • Group members All connections that have already been assigned to the group are listed here.

By clicking on one of the connections, it is moved to the other column. This means that we can assign contacts to a group and remove contacts from a group.

However, it is also possible to edit a contact in the ‘Connections’ app and assign it to a privacy group there.

Privacy groups fulfil two basic tasks. Firstly, they serve as a filter for the stream. This has nothing to do with ‘’permissions‘’. If you select a specific privacy group in the stream view in the sidebar, only content from the group members will be displayed in the stream.

And then they are also used for group communication in the form of direct messages.

If you select a privacy group in the permission settings when writing a post, the post will only be distributed to the members of the group.

You can also assign a specific contact role to a privacy group in the ‘Contact roles’ app. This means that the corresponding contact role is assigned to all group members. However, the assignment only takes place at that moment. Contacts that are added to the group later do not inherit this assignment, but retain the default contact role.

Another type of permission system: OCAP Access

An important setting for access control is OCAP Access. OPAC stands for ‘Object-capability model’ and allows Hubzilla to make images that are generally restricted from access visible to others in posts for which access is permitted.

If you cannot see images in certain posts or comments, you should check whether the ‘Enable OCAP access’ option is activated under Settings → Privacy settings.

If there is a privacy group to which posts are made by default, or if read access to the cloud is restricted, the icons for uploading and inserting media that already exists in the cloud are only available in the comment editor if OCAP Access is enabled.

Another type of permission system: profiles

The channel, i.e. our identity in the Fediverse, has a standard profile. In this profile, we can enter details about ourselves. It is possible to specify a profile photo and a cover picture, a channel name, information about the channel itself and other, sometimes personal, details.

However, we have the option of creating several profiles for one channel… with different information and data. And for each profile, we can specify which contacts it is shown to.

permsys10

This makes it possible to disclose different information about ourselves to different contacts and thus determine which information each contact receives.

Considerations regarding authorisations - What makes sense? What is not useful?

If you simply want to use Hubzilla as a social media system, like many others, you don’t need to worry too much about the permission system. Simply select a sensible channel role (usually ‘Public’) and that’s it. Direct messages are handled via tagging or the permission settings… but that’s it for the permission system.

If you only want to make content accessible to certain contacts from time to time, you can also do this using the permission settings.

If you want less public interaction, select the ‘Private’ channel role.

However, if you want to specify who is allowed to do and see what in the channel, you should proceed differently and select a very private and therefore restricted channel role. ‘User-defined’ is a good choice here. When making the settings, you should really think about what permissions or restrictions will have in practice and what basic functionality you want. And then only grant the permissions that you really want to grant in each case.

Remember: The permissions in Hubzilla follow the principle of a whitelist. And the channel roles have the highest priority. What is permitted there cannot be prohibited again in the contact role.

It is also important to realise that the channel roles really do apply to everyone(!). This includes guests without a Fediverse account (‘Anyone on the Internet’) and users to whom we have no connection.

These functions can also be used to realise a follow/don’t follow functionality.

If we specify in the channel role that people cannot send us posts and cannot comment on our posts, we could, for example, create contact roles that still allow certain contacts to do so. If we receive a connection request but do not want to see any posts from this contact, but still want to allow them to ‘follow’ us, i.e. receive our content in their stream, we create a contact role that still prohibits them from sending posts to our stream and commenting on our posts, but allows them to see our posts and comments. And we create another contact role in which sending posts to our stream and making comments is permitted. We then assign this contact role to all contacts with whom we want to interact in both directions.

We also think about other possible interactions in the same way and create suitable contact roles for them, which we then assign to the corresponding contacts.

This makes it possible to define exactly what we allow and to whom, and we can keep our stream free of unwanted content. The possibilities are really diverse.

If we want to be on the Fediverse for different reasons or with different interests, it makes sense to create several channels for this. However, if we only want to disclose different information to different users, it is sufficient to create several profiles for one channel and assign them accordingly. You should bear in mind that - unless you generally prohibit it with the channel role - everyone on the Internet can see the standard profile. You should only enter the really necessary information here and create profiles with further or other information for friends, colleagues or other contacts.

tl;dr

Hubzilla’s permission system is very fine-grained and, due to its multi-layered form, really well suited to determining how you want to interact with whom on the Internet. It may seem confusing at first, but once you have familiarised yourself with the system, it is easy to understand.

The outermost limit for our ‘I’ on Hubzilla is the channel role. It defines what is generally permitted for others in relation to your own channel. These permissions cannot be revoked at lower levels. The permissions defined in the channel role to do or see something apply to everyone, regardless of their status (guest, Fedi user, etc.) when they access our channel. It is therefore important to think about the channel roles for your own channel and to carefully consider what you would like to grant to Internet users who are complete strangers.

The Fediverse thrives on interaction and making connections (i.e. having ‘followers’ or being ‘followed’ on other services). If you have created or selected a fairly restrictive channel role so as not to allow complete strangers too many options, you can now assign further permissions to contacts with the next limit, the contact roles. These add to the permissions specified by the channel role, but cannot revoke the permissions granted by the channel role.

Each channel can have exactly one channel role, but any number of contact roles. This makes it possible to grant different permissions to different contacts.

Regardless of the contact roles, users can also restrict access when creating content (posts, images and files, appointments in the calendar, etc.). The contact role rules still apply, but we can use the access permissions to restrict access to selected contacts for individual content/objects. This is done using the permission settings for the content, which can be used to specify who exactly should have access to the content.

Each channel can also have several profiles. Profiles are used to provide Internet users with information about the channel (including personal information).

If you have selected or created a channel role that allows everyone on the Internet to see the channel profile, you should carefully consider how much information you want to make available in the standard profile that each channel has. You should be ‘economical’ here, but still provide enough information to generate interest in your channel so that Fediverse users may connect to (or ‘follow’) your channel.

In order to display further information to certain contacts, you then create additional profiles with different information and assign these to the corresponding contacts. These contacts can then view the other, extended information. However, information from other profiles remains hidden from them.

You can create privacy groups to filter your own stream for content from certain users and to hide other content, but also to enable communication limited to certain connections. If you select them in the stream view in the filter area, only content from the users in the group will be displayed. If you define such a privacy group as the recipient for a post or the sharing of data (images, websites, articles, etc.) using the permission settings, only the members of this group will see the content.

Posten, teilen, kommentieren

Die Meisten werden Hubzilla zu Beginn als Soziales Netzwerk (SN) benutzen wollen… also Beiträge posten und Beträge teilen (weitersagen).

Um einen Betrag zu erstellen oder zu posten, kann man (wenn die App „Beitrag schreiben“ installiert ist) im App-Menü (⋮, oben rechts) die App „Beitrag schreiben“ aufrufen oder im Stream ganz oben auf das Feld „Teilen” klicken.

Man landet dann im Beitrags-Editor.

poteko01

Nun kann man dem Beitrag (optional) einen Titel geben, ihn bestimmten Kategorien zuordnen und natürlich den Beitrag gestalten. Der Editor bietet etliche Formatierungen (fett, kursiv, unterstrichen, Zitat und Code) und ermöglicht das Einfügen von Anhängen, Links, Bildern und des Standorts. Ein weiterer Button ermöglicht das Erstellen einer Umfrage. Je nach Fähigkeiten und Einstellungen des Hubs gibt es auch eine Schnelleingabe für Emoticons.

Generell kann der Beitrag darüber hinaus mit weiteren Markdown-Auszeichnungen formatiert werden (durchgestrichen, Aufzählungen, Überschriften, Tabellen etc.). Eine gute Markdown-Referenz findet man z.B. hier: Markdown-Referenz

Die über den Editor erreichbaren Formatierungen genügen in der Regel aber für die meisten Posts.

Rechts unter dem Editor findet man weitere Funktions-Buttons. Das „Auge“ offnet unter dem Editor-Bereich eine Vorschau des Beitrags. Sofern der Hub die Funktion anbietet, kann man mit dem Button daneben festlegen, dass der Beitrag auch auf anderen Plattformen geteilt wird.

Der nächste Button zeigt ein Vorhangschloss. Hier kann eingestellt werden, wer den Beitrag sehen kann. Ändert man nichts, dann kommen die Voreinstellungen zum Zuge, die, wenn man sie in den globalen Einstellungen nicht geändert hat, den Beitrag öffentlich posten. Der Beitrag landet im öffentlichen Stream und in den Streams der verbundenen Kanäle. Klickt man auf das Symbol, so kann man die Sichtbarkeit auswählen: „Öffentlich“, ggf. sofern App installiert und eingerichtet die Gruppen, „Nur ich“ und „Benutzerdefinierte Auswahl“. Bei der benutzerdefinierten Auswahl kann man ganz genau festlegen, wer den Beitrag sehen kann.

Klickt man nun auf „Teilen“, so wird der Beitrag veröffentlicht.

Hat man im Stream einen fremden Beitrag gefunden, den man gerne mit anderen teilen möchte (den man „weitersagen“ will), so kann man auf das kleine Zahnrad-Symbol unter dem Beitrag (rechts) klicken und dort auf „Teilen“ klicken. Es öffnet sich wieder ein Beitrags-Editor, in dem die Referenz zu dem Betrag, den man teilen möchte, bereits eingetragen ist. Hier kann man dann den Beitrag noch selbst ergänzen.

Um einen fremden Beitrag zu kommentieren, klickt man einfach auf das Antworten-Icon kommentieren01a unter dem Beitrag (nur vorhanden, wenn die Möglichkeit zum Kommentieren gegeben ist). Es öffnet sich dann wieder ein Editor mit grundlegenden Formatierungs-Möglichkeiten, in den man seinen Kommentar eingeben kann. Ein Klick auf „Absenden“ veröffentlicht den Kommentar.

Privacy Gruppen

Die App “Privacy Gruppen” erlaubt das Anlegen von Gruppen, denen man Kontakte zuordnen kann. Sie dienen einerseits dem Filtern des Streams (so kann man sich nur Beiträge von Nutzern anzeigen lassen, welche sich in einer Privacy Gruppe befinden) und andererseits erlauben sie es, in Bezug auf Berechtigungen, bestimmten Gruppen Rechte an Inhalten einzuräumen.

Die erste Funktion ist einfach zu verstehen. Hat man Kontakte (ein Kontakt kann durchaus auch in mehreren Gruppen vorhanden sein) in einer Gruppe und wählt man in der linken Seitenleiste bei der Stream-Ansicht eine bestimmte Gruppe aus, so werden nur Beiträge von Kontakten angezeigt, die sich in der Gruppe befinden. Diese Funktion fungiert also als Stream-Filter.

Die zweite Funktion ist auch einfach zu begreifen, aber eher ungewohnt für viele Fediverse-Nutzer, da es sie in dieser Form nur bei Hubzilla und verwandten Diensten (Streams, Friendica etc.) gibt. Wie die Bezeichnung “Privacy Gruppen” nahelegt, geht es hier auch um eine beschränkte Kommunikation. Wählt man beim Verfassen eines Beitrags als Berechtigung eine Gruppe aus, so wird das Posting nur an die Kontakte, die in dieser Gruppe enthalten sind, verteilt und nur diese können es sehen. Es ist den Empfängern (Gruppenmitglieder) auch nicht möglich, ein solches Posting öffentlich zu teilen. Damit kann eine geschlossene Gruppenkommunikation reaisiert werden.

Ruft man die App auf, werden in der linken Seitenleiste bereits vorhandene Gruppen angezeigt und in der Hauptansicht das Eingabeformular zum Erstellen einer neuen Gruppe.

priva01

priva02

Wählt man in der Seitenleiste ein der Gruppen auf, so kann man diese bearbeiten.

priva03

Hier kann auch die Mitgliedschaft für Kontakte festgelegt werden. Ein Klick auf einen Eintrag wechselt die Mitgliedschaft zwischen “Nicht in der Gruppe” und “Gruppenmitgliedschaft”. So kann man Mitglieder aus einer Gruppe entfernen oder Nutzer als Gruppenmitglieder hinzufügen.

Das Hinzufügen eines Kontakt zu einer Gruppe kann auch in der App “Verbindungen” mit dem Kontakt-Tool erfolgen:

priva04

Um eine neue Gruppe hinzuzufügen, klickt man in der Seitenleiste auf den Eintrag “+ Neue Gruppe hinzufügen”.

priva05

Privacy Gruppe als "Stream"

Privacy Gruppe als “Stream”

Kürzlich wurde ich gefragt, ob es möglich sei, den Stream bei Aufruf des Hub auf Inhalte einer bestimmten Privacy Gruppe zu beschränken, um die Möglichkeit zu haben, den Stream auf für einen selbst wesentliche Inhalte zu beschränken.

Leider gibt es diese Möglichkeit nicht als “Einstellung”.

Privacy Gruppen sind von der Funktionsweise her auch kein eigener Stream, sondern ein Streamfilter, welcher den den eigenen Stream auf Inhalte der gewählten Gruppe beschränkt und alle anderen Inhalte herausfiltert.

Ruft man aber die App Stream auf oder surft man seinen Hub über die Adresse <MEIN HUB>/networkdirekt in der App “Stream” an, so wird der ungefilterte Stream angezeigt, also derjenige, welcher sämtliche Inhalte der eigenen Kontakte enthält.

Es gibt allerdings eine App “Startseite”, mit welche man festlegen kann, welche Seite bei Aufruf des Hub angezeigt wird. Sie muss in der App-Verwaltung (App-Menü ⋮ ganz am Ende “+ Apps”) installiert und ins App-Menü gebracht werden. Findet man die App nicht unter “Verfügbare Apps”, so liegt das daran, dass der Admin des Hub das Addon “Start Page” nicht aktiviert hat. In dem Fall kann man bei diesem einmal höflich anfragen, ob er das nicht nachholen könnte (die Kontaktmöglichkeit zum Admin sollte man unter Hilfe → About this Hub → Site Info oder direkt über <MEIN HUB>/siteinfo in Erfahrung bringen können).

Ruft man die App auf, so wird ein Eingabefeld für die Auswahl der zu zeigenden Startseite angezeigt. Hier muss man für einen durch eine Privacy Gruppe gefilterten Stream folgendes eingeben: network?f=&gid=XX. Dabei steht das “XX” hinter gid= für die Gruppen-Id.

pgstream01

pgstream02

Um diese herauszufinden, ruft man entweder die App “Privacy Gruppen” auf und wählt dort in der linken Seitenleiste die gewünschte Gruppe aus. Im Adressfeld des Browsers erscheint nun “<MEIN HUB>/group/XX”. Und da haben wir unser “XX”.

Alternativ kann man auch aus der Stream-Ansicht heraus die Privacy Gruppe in der linken Seitenleiste aufrufen. Dann sieht man im Adressfeld des Browsers “<MEINHUB>/network/?f=&gid=XX”, womit wir wieder unser “XX” haben. Man kann auch gleich den Teil “network/?f=&gid=XX” aus dem Adressfeld herauskopieren und dann in der App “Startseite” einfügen. Fertig!

Damit hat man nach dem Aufruf des Hub den privacy-group-gefilterten Stream. Allerdings ist es so, dass man ihn nicht ganz einfach wieder mit einem einfachen Klick erreichen kann, hat man einmal die App “Stream” verlassen. Ein erneuter Aufruf der App “Stream” (durch Auswahl im App-Menü oder Klick auf das Symbol in der Navigationsleiste) führt wieder zum ungefilterten Stream.

Will man nun wieder nur die Inhalte der bestimmten Privacy Gruppe sehen, braucht man zwei Klicks (plus ggf. Scrollen, wenn man einige Privacy Gruppen mehr hat), um den gefilterten Stream wieder zu bekommen. Man klickt in der linken Seitenleiste auf “Privacy Gruppen” und wählt dann aus der nun aufgeklappten Auswahlliste die entsprechende Gruppe aus.

Aber ich prahle ja immer, dass Hubzilla sehr flexibel ist und sich vieles individuell anpassen lässt. Keine Angst, hier soll jetzt nicht gleich eine App, ein Widget oder ein eigenes Theme entwickelt werden. Man benötigt lediglich die App “PDL-Editor” und die App “Webseiten”. Diese muss man ggf. installieren und ins App-Menü integrieren. Und mit diesem Editor lässt sich eine Vereinfachung für einen gefilterten Stream einfach verwirklichen.

Wer sich für die Nutzung des PDL-Editors interessiert, kann im Artikel “Individuelle Anpassungen mit dem PDL-Editor (Einsteiger)” eine Einführung lesen.

Hier jetzt aber eine Schritt-für-Schritt Anleitung, um die gewünschte Funktion bequem erreichbar zu machen.

Ich nutze in der Anleitung hier als Beispiel einmal eine Privacy Gruppe meines Tutorial-Kanals (den ich für Screenshots nutze). Es handelt sich um die (einzige bisher dort vorhandene) Privacy Gruppe “Freunde”, welche die Gruppen-Id 54 hat. Von meinem Tutorial-Kanal kann ich den Stream also durch Aufruf von “https://klacker.org/network/?f=&gid=54” nach “Freunde-Inhalte” filtern.

Nun möchte ich in der Stream-Ansicht beispielsweise einen Link, welcher genau zu dieser URL (und damit zur gefilterten Stream-Ansicht) führt, haben.

Das ließe sich (wie in o.g. Artikel zum PDL-Editor beschrieben) über ein Menü erreichen. Ich wähle hier aber einen anderen Weg, um den Link noch ein wenig “prominenter” zu gestalten (nix besonderes, nur auffälliger).

Ich erstelle hierfür einfach mit der App “Webseiten” einen Block. Solche Blöcke lassen sich nämlich mit dem PDL-Editor ganz einfach via Drag-and-Drop an die passende Stelle ziehen.

Wir rufen also die App Webseiten auf. Und dort wählen wir in der linken Seitenleiste das Gestaltungswerkzeug “Blöcke”.

pgstream03

Nun erstellen wir über den Button “Erstelle” einen neuen Block.

pgstream04

Unter “Art des Seiteninhalts” wählen wir HTML. Titel und Summary lassen wir offen. In Block-Name tragen wir z.B. “pgfriends” ein.Der Name erscheint später auch im PDL-Editor und macht das Auffinden des Blocks leicht.

In den Inhalts-Bereich schreiben wir dann

pgstreamcode

Für Euren eigenen Kanal müsst Ihr natürlich die URL entsprechend anpassen und diejenige verwenden, welche Eurem Filterwunsch, also der passenden Privacy Gruppe, entspricht.

pgstream05

Dann klicken wir auf “Teilen” und der Block erscheint in der Block-Liste.

pgstream06

Jetzt ist der Moment gekommen, den PDL-Editor aufzurufen.

pgstream07

Der Editor wird im Modul für die App “HQ” geöffnet. Am Unteren Rand des Fensters sehen wir das Hauptmenü des PDL-Editors mit den Einträgen “MODULES TEMPLATES ITEMS SOURCE APPLY”

pgstream07a

Wir möchten unseren Shortcut für den gefilterten Stream aber grundsätzlich erst einmal in der Stream-Ansicht haben. Dafür wählen wir nun in dem Menü unter “MODULES” das Modul “network” auf, welches für die Streamansicht steht.

pgstream08

pgstream09

Unseren gerade erstellten Block finden wir im Menüpunkt “ITEMS”.Diesen ziehen wir mittels Drag-and-Drop (am Doppelkreuz-Pfeil “anfassen”) nach rechts in den Bereich der rechten Seitenleiste.

pgstream10

pgstream11

Schließlich klicken wir im Hauptmenü noch auf “APPLY”, damit die Änderungen übernommen werden.

Wenn wir nun die Stream-Ansicht aufrufen, erscheint in der rechten Seitenleiste eine kleine Box, in welcher “▦ Freunde - Stream” steht. Ein Klick darauf öffnet nun den durch die Privacy Gruppe “Freunde” gefilterten Stream unseres Kanals.

pgstream12

Wer mag, kann den Shortcut auch noch in andere Module einfügen. Das “HQ” würde sich auch anbieten… insbesondere, wenn auf dem eigenen Hub die App “Startseite” nicht aktiviert ist. Denn als Default landet man bei Aufruf des Hubs ja immer im HQ.

pgstream13

Und? Ist keine schwarze Magie! Und damit haben wir uns ein wenig Komfort verschafft.

Vielleicht habt Ihr nun etwas Lust bekommen, Euch mit den Möglichkeiten der individuellen Anpassung von Hubzilla zu befassen. Ich werde sicher noch weitere Artikel hier schreiben, die sich um dieses Thema drehen.

Privacy Gruppe als "Stream" - zweite Variante

Privacy Gruppe als “Stream” - zweite Variante

Ich habe ja beschrieben, wie man einen schnell zugänglichen 1-Klick-Zugang auf einen privacy-gruppen-gefilterten Stream mit den PDL-Editor verwirklichen kann: Privacy Gruppe als “Stream”

Der Vorteil ist, dass der Link schön groß und Prominent zu sehen ist… im Bereich wo eh oft Filter etc. liegen. Ein Nachteil sollte aber auch nicht verschwiegen bleiben: Man muss das für alle Module einrichten, also in allen Modulen den Block an die gewünschte Stelle ziehen. Trotzdem kann es vorkommen, dass man in Bereich gerät, wo der Link nicht angezeigt wird.

Schöner wäre es, wenn es als Icon z.B. in der Navigationsleiste immer zugänglich wäre. Doch da kann man so ohne weiteres nur Apps unterbringen.

Na… ok… dann erstellen wir halt eine App.

Und jetzt keine Panik! Wir “erstellen” eine App, wir programmieren keine. Für das Erstellen der benötigten App braucht man keinerlei Programmier-Kenntnisse. Es ist im Endeffekt nur der Aufruf einer URL, die man zusätzlich auch noch mit einem passenden Icon repräsentieren kann.

Und nun geht’s los!

Um eine App zu erstellen, muss man in die App-Verwaltung. Die ist ein wenig versteckt. Also nicht die “normale”, sondern die “echte” App-Verwaltung. In die App-Verwaltung gelangt man über den untersten Punkt des App-Menüs (oben rechts ⋮) “+ Apps”.

apperst01

Den kennen wir schon. Und vielleicht ist jemanden auch aufgefallen, dass auf der Seite “Installierte Apps” im Inhaltsbereich oben rechts ein Button zu sehen ist, auf dem “Apps verwalten” steht.

apperst02

Wenn wir darauf klicken, können wir die installierten Apps bearbeiten (davon lassen wir aber vorerst die Finger), Apps deinstallieren (solche Apps können aber wieder aus den verfügbaren Apps erneut installiert werden) und eine eigene App erstellen. Und deshalb klicken wir nun auf den Button für diesen Zweck(wieder oben rechts im Inhaltsbereich).

apperst03

Jetzt befinden wir uns im App-Editor.

apperst04

In das Formular müssen wir nun die notwendigen Informationen eintragen, um die App zu erstellen.

Die Felder “Name der App” und “Ort (URL) der App” sind Pflichtfelder. In ersteres schreiben wir einen passenden Namen (unter welchem die App später im App-Menü und auch in der App-Verwaltung zu finden ist) und in das zweite Feld schreiben wir die gewünschte UL, die bei Aufruf der App geöffnet werden soll.

Also, entsprechend dem Beispiel aus der ersten Teil dieses kleine Tutorials, nenen wir die App “Freunde - Stream” und als URL geben wir die komplette URL des durch die Privacy Gruppe “Freunde” gefilterten Streams ein, also “https://klacker.org/network/?f=&gid=54”. Alle weiteren Felder sind optional.

Weil wir aberdie App auch in die Navigationsleiste anpinnen möchten, braucht sie ein Icon. Hier kann man einfach “icon:<gewünschtes Icon>” eingeben. Wie die nutzbaren Icons aussehen und wie ihre Namen sind, kann man z.B. auf dieser Seite herausfinden: Bootstrap-Icons.

Ich habe mich für icon:filter-circle entschieden.

apperst05

Klickt man nun auf “Absenden”, wird die App erstellt und wir landen wieder in der normalen App-Verwaltung bei den installierten Apps.

Hier stellen wir dann fest, dass unsere App in dieser Liste an passender Stellen (alphabetische Sortierung) auftaucht. Nun können wir sie durch Klick auf das Sternchen ins App-Menü bringen und durch Klick auf die Pin-Nadel auch in die Navigationsleiste (sinnvoll, wenn wir nur einmal klicken möchten, um den gefilterten Stream aufzurufen).

apperst06

Und schon haben wir ein Icon, mit welchem wir den “Freunde-Stream” überall in Hubzilla mit einem einfachen Klick aufrufen können.

apperst07

Privacy Gruppe als "Stream" - dritte Variante

Privacy Gruppe als “Stream” - dritte Variante

Ich habe bereits erklärt, wie man einen schnell zugänglichen 1-Klick-Zugang auf einen privacy-gruppen-gefilterten Stream mit den PDL-Editor verwirklichen kann: Privacy Gruppe als “Stream”. Und dann die noch komfortablere Methode mit einer selbst erstellten App, die dann in der Navigationsleiste angepinnt werden kann, um den Zugriff auf den gefilterten Stream an jeder Stelle von Hubzilla mit einem Klick zu haben: Privacy Gruppe als “Stream” - zweite Variante

Damit können wir den gefilterten Stream nun mit zwei Methoden aufrufen.

pgnotes01

Hier nun noch eine dritte Variante, die als Tipp von @Chris eingebracht wurde: Die Notes-App als Linksammlung verwenden.

Dafür benötigen wir die App “Notes” (die wir ggf. über die App-Verwaltung noch installieren und ins Menü bringen müssen).

pgnotes02

pgnotes03

Rufen wir die App erstmals auf, so sehen wir eine leere Notiz im “Lesemodus”. Um hier nun unseren Link zum gefilterten Stream unterzubringen, müssen wir in den “Bearbeitungsmodus” wechseln, was mittels Doppelklick auf das Notizfeld erfolgt.

pgnotes04

Jetzt können wir (am elegantesten mit den Tags [url=][/url]) unseren Link dort eingeben und auf “Bearbeiten…” (oben rechts im Notiz-Fenster) klicken. Die Notiz wird gespeichert und wir haben unseren Link, auf den wir klicken können.

pgnotes05

pgnotes06

Schließlich müssen wir dann noch, wie im ersten Teil beschrieben, das ITEM “Notes” im PDL-Editor an die für uns passende Stelle (z.B. im MODUL “network” für die Stream-Ansicht) ziehen. Fertig!

pgnotes07

Posten mit Hubzilla

Posten mit Hubzilla

Postings

Als Postings werden in der Regel sogenannte "Start-Beiträge" genannt, also Beiträge, die nicht als Antwort oder Kommentar in Fediverse veröffentlicht werden.

Ein Posting kann bei Hubzilla auf verschiedenen Wegen erstellt werden. Die üblichste Variante erfolgt aus dem Stream heraus. Über dem Stream wird ein Feld mit der Beschriftung "Start a conversation" angezeigt, in welches man klicken muss. Dann öffnet sich der Beitragseditor.

Hier können nun ein optionaler Titel, eine optionale Zusammenfassung (diese wird nach dem Posten zunächst angezeigt, der eigentliche Beitragsinhalt erscheint erst nach einem Klick; kann deshalb auch als Inhaltswarnung verwendet werden) und optionale Kategorien eingegeben werden. Und natürlich der eigentliche Beitrag.

Am unteren Rand befinden sich die Formatierungshilfen in Form einer Icon-Leiste, der Button zum Veröffentlichen des Beitrags, sowie ein Button für eine Vorschau und ein Button für die Berechtigungseinstellungen. Im eigentlichen Beitrasfeld befindet sich oben rechts ein Zahnrad-Symbol, mit dem man zu den Editor-Einstellungen gelangt.

Editor-Einstellungen:

Textformatierung

Hubzilla bietet zahlreiche Gestaltungsmöglichkeiten für Postings. Als Textauszeichnungssprache kommt BBcode zu Einsatz. Es handelt sich hierbei um eine spezielle Variante von BBcode, die zusätzlich weitere hubzilla-spezifische Tags bereithält. Eine Übersicht findet man hier:BBcode.

In der Toolbar des Beitrags-Editors stehen folgende Textauszeichnungen, Gestaltungswerkzeuge und Funktionen zur Verfügung:

  • fett

  • kursiv

  • unterstrichen

  • Zitat

  • Code

  • Marker

  • Datei-Anhang

  • Bild einfügen

  • Link einfügen

  • Standort einfügen

  • Verfallsdatum für Beitrag

  • Veröffentlichungs-Datum

  • Inhalt verschlüsseln

  • Umfrage

  • Kommentare erlauben/verbieten

Fügt man eine Umfrage ein, werden Eingabefelder für zwei Auswahlmöglichkeiten angezeigt. Über einen Button lassen sich weitere Auswahlmöglichkeiten zugefügt. Die Anzahl ist bei Hubzilla nicht begrenzt. Man kann außerdem auswählen, ob mehrere Antworten gleichzeitig möglich sein sollen. Außerdem muss man die Laufzeit der Umfrage in Tagen angeben.

Medien wie Videos und Audi-Tracks können innerhalb eines Postings an festgelegter Stelle eingebettet werden.

[video]video_URL[/video]

oder

[video='URL_TO_POSTER']video_URL[/video]

bzw.

[audio]audio_URL[/audio]

Bei der Angabe eines Titelbilds für ein Video sind die Anführungszeichen um die URL zur Bilddatei obligatorisch!

Der WYSIWYG-Editor

Sofern der Admin Ihres Hubs das entsprechende Addon installiert hat,gibt es die Möglichkeit, die App „Wysiwyg Status“ zu installieren. Diesefügt dem Beitragseditor (und nur diesem) eine Leiste mit Menübuttons zu, über welche Sie Ihren Beitrag gestalten können, was unmittelbar im Editor angezeigt wird.

Wer aufgepasst hat, wird feststellen, dass mit dem WYSIWYG-Editor das Feld für die Zusammenfassung verschwunden ist. Um trotzdem eine Zusammenfassung (ggf. auch als Inhaltswarnung) verwenden zu können, muss diese manuell mit den Tags [summary][/summary] am Anfang des Beitrags eingefügt werden.

Einfügen von Bildern

Die einfachste Methode, Bilder an Ort und Stelle einzufügen, ist das Einfügen als Anhang .

Die Bilder werden in einen ggf. automatisch neu angelegten Order „JJJJ-MM“ (Jahr/Monat) hochgeladen und stehen auch später weiter zur Verfügung.

Bereits in der Cloud vorhandene Bilder werden über das Symbol eingefügt. Durch Klick auf eines der Bilder in der angezeigten Galerie, fügt dieses am Ende des bisherigen Inhalts ein.

Ist die URL eines einzufügenden Bildes bekannt, kann man es auch mit [img]<URL_DES_BILDS>[/img] einfügen.

Außerdem kann man Bilder per Drag-and-Drop aus dem Dateimanager in das Editorfeldziehen. Das Bild wird dann in die Cloud hochgeladen und an aktueller Stelle im Editor verlinkt.

Hat man seinen Kanal auf einem Hub, der das Addon “Paste Image Upload” installiert und aktiviert hat, so kann man diese App installieren. Damit lassen sich Bilder aus der Zwischenablage mit dem Kontext-Menü ➔ “Einfügen” oder mittels strg-v in den Editor einfügen. Das Bild wird in die Cloud hochgeladen und an aktueller Stelle im Editor verlinkt.

Das Alt-Text-Drama

Nutzer mit eingeschränkter Sehfähigkeit nutzen oftmals Bildschirm-Reader, welche ihnen den Text einer Webseite vorlesen. Ein Bild kann aber nicht „vorgelesen“ werden. Deshalb ist es höfliche Praxis, Bilder im Internet möglichst mit einer Bildbeschreibung (Alt-Text) zu versehen.

Hubzilla bietet mit Bordmitteln leider keine Möglichkeit, Alt-Text direkt mit einem Bild zu speichern und diesen beim Einfügen des Bildes anzubieten.

Hier ist ein wenig „Handarbeit“ erforderlich.

Es gibt mehrere Methoden, um Alt-Text zu Bildern hinzuzufügen.

Fügt man Bilder manuell in den Editor ein, so verwendet man folgende Syntax:

[img=<URL_DES_BILDES>]<BILDBESCHREIBUNG>[/img]

bzw.

[zmg=<URL_DES_BILDES>]<BILDBESCHREIBUNG>[/zmg]

Bei dem Einfügen über den Button wird eine skalierte Version unseres Bilds eingefügt, die automatisch erstellt wird. "Eingerahmt" wird die Bild-Referenz von den bbCode-Tags [zrl=][/zrl], was dafür sorgt, dass das nunmehr skalierte Bild bei Klick als Original angezeigt wird.

Alt-Text – Variante 1

Wir markieren die ZRL, die sich zwischen den Tags [zmg=][/zmg] und schneiden sie aus.

Nun markieren wir die Skalierungsangabe \<Breite\>x\<Höhe\> und fügen dort die gerade ausgeschnittene ZRL ein.

Jetzt geben wir unsere Bildbeschreibung zwischen den Tags [zmg=<ZRL_des_Bildes>][/zmg] ein.

Fertig!

Alt-Text – Variante 2

Noch einfacher und schneller geht das Versehen von Bildern, die mit dem Einfüge-Button eins Postig eingefügt wurden, auf diese Weise: Der Teil [zmg=<Breite>x<Höhe>] wird so abgeändert, dass die Skalierungs-Angaben erhalten bleiben und die Bildbeschreibung auch dort angegeben wird. Es muss also nur dieser Bereich verändert werden.

Hier ändert man ihn, so dass er so aussieht: [zmg width="<Bildbreite>" height="<Bildhöhe>" title="<Bildbeschreibung"] (Beachte: Die Anführungszeichen sind erforderlich!)

Fazit:

Es ist kein Problem, bei Hubzilla Bilder mit Bildbeschreibungen zuversehen. Es nur leider ein klein wenig umständlich. Vielleicht wird ja das Einfügen mit dem Button um ein entsprechendes Formular irgendwann ergänzt.

Direktnachrichten

Direktnachrichten (DN) sind Nachrichten, die nur zwischen dem Verfasser und einem oder mehreren Empfängern ausgetauscht werden.

Sie sind nicht öffentlich und sie können auch nicht weitergesagt (Boosting) order geteilt (Zitatposting) werden.

Die Konversation findet nur innerhalb der vom Startposting-Verfasser festgelegten Teilnehmergruppe statt.

Um eine Direktnachricht mit Hubzilla zu starten, gibt es mehrere Möglichkeiten:

Einmal das Adressieren mit einer Erwähnung: Die Empfänger werden mittels @!-Erwähnung adressiert (statt nur einem „@“ wird ein „!“ an dieses angefügt, bevor das Handle folgt, Oder das Festlegen der Adressaten mit den Berechtigungseinstellungenlock.

Dafür wählt man in den Berechtigungseinstellungen die „Benutzerfefinierte Auswahl“ und legt dort fest, wer die DN empfangen soll.

Konversationscontainer

Seit Version 10.0 verwendet Hubzilla sogenannte Konversationscontainer. Sie wurden von Mike MacGirvin ursprünglich für (streams) entwickelt und wurden inzwischen von Forte, Mitra und Hubzilla übernommen.

Sie sind in FEP-171b beschrieben.

Während bei anderen Diensten (insbesondere bei Mastodon) aufgrund der Verteilung von Kommentaren an unterschiedliche Empfänger Konversationen fragmentieren (nicht jeder kann jeden Kommentar und jede Antwort sehen), sind durch Konversationscontainer die Threads von Konversationen immer vollständig.

Bei Mastodon und etlichen anderen Diensten werden Antworten auf Postings nur an die eigenen Follower verteilt.

Um andere an der Antwort teilhaben zu lassen, muss man sie zwingend zusätzlich erwähnen.

Mit Hubzilla und den anderen Diensten, die FEP-171b umsetzen, werden Antworten/Kommentare immer an alle verteilt, an welche das Startposting vom Verfasser auch verteilt wurde. Erwähnungen sind nicht erforderlich.

Mit Containern wird ein Ausgangsposting an alle Verbindungen (mit entsprechender Berechtigung) verteilt. Wird kommentiert, so wird der Kommentar an den Verfasser des Startpostings geschickt und dieser verteilt ihn wieder an alle ursprünglichen Teilnehmer.

Der Verfasser des Startpostings kann die Konversation moderieren.

Erwähnungen und wozu sie dienen

Erwähnungen ("@") dienen in erster Linie dazu den adressierten Nutzer über das Posting zu benachrichtigen.

Die DN-Erwähnung ("@!") dient dazu, einen oder mehrere Empfänger konkret zu adressieren. Sie bekommen ebenfalls eine Benachrichtigung.

Konversationscontainer machen die Benachrichtigung ursprünglicher Teilnehmer eigentlich überflüssig. Sie dienen hier nur der Benachrichtigung des Adressaten.

Konversationen mit Mastodon-Nutzern machen es erforderlich, dass diese andere Konversationsteilnehmer erwähnen.

Berechtigungs-Einstellungen

Die Berechtigungs-Einstellungen, die über das Symbol lock erreicht werden können, dienen dazu, festzulegen, wer ein Posting letztlich empfängt. Einmal festgelegte Berechtigungseinstellungen lassen sich später nicht mehr verändern!

Mehr über Postings...

Haben wir selbst ein Posting abgesetzt, dürfen wir es…

  1. editieren

  2. löschen

Editieren von Postings

Um ein Posting nachträglich zu bearbeiten, klicken wir auf das Posting-Menü (⋮ unten rechts am Posting) und wählen im Menü den Punkt „Bearbeiten“.

Nun können wir das Posting bearbeiten und durch Klick auf den Button „Absenden“ die Änderungen speichern. Die Änderungen werden, je nach Dienst der Verbindungen, welche das Posting erhalten haben, nach und nach föderiert.

Löschen von Postings

Analog zum Editieren von Postings kann man aus dem Post-Menü auch den Menüpunkt „Löschen“ auswählen.

Damit wird das Posting gelöscht.

Wall-to-Wall Posting

Wall-to-Wall Postings sind eine besondere Art zu posten.

Man veröffentlicht ein Posting damit nicht nur „normal“ (Verteilung nach Kanalrollen und/oder Kontaktrollen an die Verbindungen oder öffentlich), sondern veröffentlicht das Posting auch im Kanal-Stream der Verbindung, bei welcher man das Posting im Kanalstream erstellt.

Das funktioniert nur, wenn die Verbindung uns dazu die Berechtigung erteilt.

Für ein Wall-to-Wall Posting müssen wir den Zielkanal unserer Verbindung öffnen. Dies können wir Tun, indem wir in unserem Stream auf das Handle des verbundenen Kanals klicken, sofern dieser dort auftaucht. Es öffnet sich der Kanal der Verbindung und wir sind automagisch authentifiziert. Nun können wir direkt in den Kanalstream der Verbindung posten. In unserem eigenen Stream erscheint das Posting als Wiederholung ("via*<VERBINDUNGSKANAL>*").

Man kann den Kanal einer Verbindung auch aus der App Verbindungen heraus aufrufen.

Posten in einen Foren-Kanal

Das Posten in einen Foren-Kanal kann entweder per Wall-to-Wall Posting erfolgen, oder indem man in einem Startposting mittels @!-Erwähnung inden Kanal sendet. Man erwähnt den Kanal und setzt hinter das führende „@“ ein Ausrufezeichen.

Kommentarhandhabung

(Urheber: Jupiter Rowland)

Im Vergleich zu den Microblogging-Anwendungen im Fediverse, ganz besonders Mastodon, funktionieren Posts und Kommentare auf Hubzilla völlig anders, ebenso auf Hubzillas Vorfahr Friendica und seinen Nachfahren (streams) und Forte.

Der erste Unterschied liegt darin, dass insbesondere Mastodon nur Posts und noch mehr Posts kennt, die mehr oder weniger lose miteinander zu einem Thread verknüpft sind.

Auf Mastodon-Timelines sieht man nur Stückwerk aus einzelnen Beiträgen. Wenn diese Antworten haben, erkennt man das nur an einem Icon. Und wenn sie selbst Antworten sind, kann man das nur daran erahnen, dass sie jemanden erwähnen, und auch das ist nicht verlässlich. Es ist ein ziemlicher Aufwand, überhaupt auch nur den Zweig der Diskussion zu sehen, in dem sich ein spezifischer Post befindet, geschweige denn, die komplette Diskussion.

Im krassen Gegensatz dazu funktioniert Hubzilla wie Facebook oder wie ein Forum oder wie ein Blog. Es nimmt Konversationen immer als in sich geschlossene Objekte wahr. In jeder Konversation gibt es einen und genau einen Post, und das ist der Startpost. Antworten auf den Post sind keine Posts, sondern Kommentare. Auf Hubzilla ist das ganz etwas anderes. Antworten auf diese Antworten sind auch wieder keine Posts; teilweise werden sie als Antworten bezeichnet, teilweise aber auch als Kommentare.

In einem Hubzilla-Stream sieht man standardmäßig auch normalerweise immer komplette Konversationen mit dem Post und allen Kommentaren und Antworten. Wenn man erstmal einen Post im Stream hat, wird man auch sämtliche Kommentare zum Post und sämtliche Antworten zu sämtlichen Kommentaren empfangen, und zwar, ohne den Kommentatoren zu folgen oder von den Kommentatoren erwähnt zu werden.

Damit das funktionieren kann, nehmen Kommentare und Antworten auf Hubzilla einen anderen Weg als auf Mastodon.

Stellen wir uns einmal folgende Konstellation vor:

  • Bob, Carol und Dave folgen Alice, aber nicht sich gegenseitig.

  • Alice verschickt einen Post.

  • Bob, Carol und Dave kommentieren jeweils den Post.

  • Erin antwortet auf Bobs Kommentar.

Auf Mastodon bekommt man einen Post nur unter drei Bedingungen auf natürlichem Wege zugestellt.

  • Entweder man folgt dem Poster.

  • Oder der Poster erwähnt einen.

  • Oder man folgt jemandem, der den Post bekommen und geboostet hat.

Wenn Alice ihren Post verschickt, bekommen ihn Bob, Carol und Dave, weil sie Alice folgen. Ob sie ihn lesen oder nicht, hängt davon ab, wie weit sie auf ihrer Timeline nach unten scrollen. Mastodon hat ja keinen Zähler für noch nicht wahrgenommene Ereignisse.

Wenn Bob antwortet, erwähnt er automatisch Alice. Ohne diese Erwähnung wird sie nie erfahren, daß Bob geantwortet hat. Carol und Dave erfahren von Bobs Antwort nichts, weil sie Bob nicht folgen und Bob sie nicht erwähnt. Dafür bekommen diejenigen Bobs Antwort, die Bob folgen, aber als Einzelpost ohne jeglichen Zusammenhang.

Entsprechend verhält es sich, wenn Carol und Dave antworten: Nur Alice erfährt davon per Benachrichtigung. So kann es durchaus vorkommen, dass Bob, Carol und Dave praktisch dasselbe antworten, weil sie nicht voneinander wissen. Und wieder erfahren Leute von den Antworten, die zu der Diskussion gar keinen Bezug haben, aber eben Carol bzw. Dave folgen.

Nun antwortet Erin auf Bob. Damit erwähnt sie automatisch Bob. Außerdem erwähnt sie automatisch alle, die in Bobs Kommentar sichtbar erwähnt wurden, wobei das nur Alice ist. Alice und Bob werden über Erins Antwort benachrichtigt, weil sie erwähnt worden sind. Carol und Dave erfahren von Erins Antwort nichts, weil sie Erin nicht folgen und Erin sie nicht erwähnt. Dafür aber bekommen diejenigen, die Erin folgen, Erins Antwort als Einzelpost ohne jeglichen Zusammenhang.

Somit ist Alice die einzige, die die ganze Diskussion gelesen hat. Bob kennt neben seinem eigenen Kommentar nur Alices Post und Erins Antwort auf ihn selbst. Carol und Dave kennen wiederum neben ihren Kommentaren nur Alices Post.

Auf Hubzilla funktioniert das völlig anders: Alle Kommentare und Antworten gehen über den Startposter, und alle Kommentare und Antworten gehen an alle, die den Startpost in ihren Stream bekommen haben. Gleichzeitig gehen auf Hubzilla Kommentare und Antworten nur an den Startposter (und von da an alle, die mit dem Startposter verbunden sind) und nicht zusätzlich an die eigenen Kontakte.

Wenn Alice ihren Post verschickt, bekommen ihn Bob, Carol und Dave, weil sie mit Alice verbunden sind. Sie bekommen ihn angezeigt als neues Ereignis, und der entsprechende Zähler wird um einen erhöht, so dass sofort ersichtlich ist: Da ist etwas Ungelesenes. Sofern also Bob, Carol oder Dave nicht händisch diesen Zähler auf null zurücksetzt, werden alle drei Alices Post lesen.

Wenn Bob Alices Post kommentiert, kann er Alice erwähnen oder nicht. Mit dem neuen Kommentareditor erwähnt er sie automatisch. Das muss er aber nicht. Auf Hubzilla haben Erwähnungen zwei Funktionen: Zum einen signalisieren sie, auf wen geantwortet wird, weshalb mehr als eine Erwähnung eigentlich unsinnig ist. Zum anderen bewirken sie, dass, wer auch immer erwähnt wird, eine Benachrichtigung darüber bekommt, erwähnt worden zu sein. Zugestellt wird der Kommentar aber so oder so.

Und wem wird er zugestellt? Zunächst einmal natürlich Alice. Als Threadstarterin bekommt sie alle Kommentare und Antworten zugestellt. Von Alice aus geht Bobs Kommentar dann zu Carol und Dave. Die sind ja mit Alice verbunden und haben daher Alices Post in ihrem Stream. Und wenn sie Alices Post haben, bekommen sie auf diesem Wege auch alle Kommentare und Antworten unter Alices Post.

Das heißt: Alice, Carol und Dave haben nun Bobs Kommentar zunächst einmal in ihrem Zähler neuer Ereignisse. Wenn sie den aufklappen, bekommen sie einen Direktlink zu Bobs Kommentar. Wenn sie den anklicken, bekommen sie nicht etwa nur Bobs Kommentar angezeigt, sondern die komplette Konversation mit Alices Post und Bobs Kommentar darunter.

Ebenso verhält es sich, wenn Carol und Dave Alices Post kommentieren: Ihre Kommentare gehen zur Threadstarterin Alice und von da zu allen anderen, die Alices Post im Stream haben. Carol und Dave bekommen dabei wiederum jeweils die komplette Konversation angezeigt. Nachdem Carol kommentiert hat, sehen Alice, Bob, Carol und Dave also, wenn sie auf den Hinweis auf Carols Kommentar klicken:

  • Alices Post

    • Bobs Kommentar

    • Carols Kommentar

Nachdem Dave kommentiert hat, sehen alle vier, wenn sie auf den Hinweis auf Daves Kommentar klicken, wieder die komplette Konversation:

  • Alices Post

    • Bobs Kommentar

    • Carols Kommentar

    • Daves Kommentar

Nun antwortet Erin auf Bob (mal komplett ungeachtet dessen, woher sie überhaupt über Alices Post oder Bobs Kommentar weiß). Der Kommentareditor baut automatisch eine Erwähnung von Bob ein. Aber er baut keine Erwähnung von Alice ein, auch wenn Bobs Kommentar Alice erwähnt haben sollte. Wenn Alice erwähnt würde, würde das nur irritieren. Außerdem ist es komplett unnötig.

Jetzt kommt der nächste Unterschied: Erins Antwort auf Bobs Kommentar geht nicht an Bob. Sie geht statt dessen an Bob vorbei direkt zu Alice. Bob bekommt die Antwort von Alice, weil er Alices Post im Stream hat, und wird daher auch darüber benachrichtigt, dass Erin ihn erwähnt hat. Gleichzeitig geht der Kommentar auch an Carol und Dave, weil auch sie Alices Post mitsamt Bobs Kommentar im Stream haben.

Sie sehen also:

  • Alices Post

    • Bobs Kommentar

      • Erins Antwort (wenn sie die ausklappen)
    • Carols Kommentar

    • Daves Kommentar

Auf Hubzilla gibt es noch zwei weitere Besonderheiten. Zum einen gehört jede Konversation exklusiv dem Konversationsstarter. Das heißt, Alice ist nicht nur die Eigentümerin ihres Posts, sondern auch die Eigentümerin von Bobs, Carols und Daves Kommentaren und von Erins Antwort auf Bobs Kommentar.

Damit hat sie auch die Möglichkeit, ihre eigene Konversation zu moderieren. Wenn ihr ein Kommentar oder eine Antwort gegen den Strich geht, dann kann sie den Kommentar oder die Antwort sogar aus der Konversation löschen. Zumindest auf Hubzilla, (streams) und wohl auch Forte wird diese Löschung meines Wissens sogar bis zum Kommentator durchgereicht. Woanders, z. B. bei Kommentaren, die von Mastodon kommen, wird aber keine Löschung eingeleitet.

Zum anderen definiert der Startpost die Berechtigungen der ganzen Konversation. Beispielsweise: Wer berechtigt ist, den Startpost zu sehen, ist auch berechtigt, alle Kommentare und Antworten zu sehen.

Das heißt: Alice hätte gezielt nur an Bob, Carol und Dave posten können, also nur den dreien die Berechtigung erteilen können, ihren Post zu sehen. Dann hätten auch nur Alice, Bob, Carol und Dave die Berechtigung, Kommentare und Antworten zu sehen, aber sie hätten die Berechtigung, auch die Kommentare und Antworten voneinander zu sehen.

Das heißt aber auch: Kommentare und Antworten können keine gegenüber dem Post eingeschränkte Berechtigungen haben. Wenn man von Mastodon aus auf einen öffentlichen Hubzilla-Post (oder auf einen Kommentar auf einen öffentlichen Hubzilla-Post oder noch tiefer) mit einer DM antwortet, dann kann Hubzilla das nicht als echte DM auffassen. Wenn auf Hubzilla der Post öffentlich ist, dann ist auch jeder Kommentar zunächst einmal öffentlich. Allerdings zeigt Hubzilla dann ein rotes Vorhängeschloß an, das Berechtigungskonflikte signalisiert, und lässt Teilen (Mastodon: "Zitieren") und Wiederholen (Mastodon: "Boosten") nicht zu. Hubzilla kann darauf aber nicht mit einer DM antworten, sondern nur mit einer öffentlichen Antwort.

An dieser Stelle greifen auch andere Features von Hubzilla ein. So hat Hubzilla etwas, was sich Nutzer anderer Fediverse-Serveranwendungen sehnsüchtig wünschen: Antwortenkontrolle.

Antwortenkontrolle

(Urheber: Jupiter Rowland)

Antwortenkontrolle in Hubzilla ist zunächst einmal simpel: Man lässt Kommentare und Antworten zu, oder man lässt sie nicht zu. Allerdings kann Hubzilla nur andere Hubzilla-, (streams)- und Forte-Anwender wirklich am Antworten hindern.

Bei anderen Nutzern, z. B. auf Mastodon, funktioniert es etwas anders. Hubzilla kann das Kommentieren da nicht verhindern, also nicht z. B. dafür sorgen, dass die entsprechenden Schaltflächen auf Webinterfaces und in Apps entfernt oder ausgeblendet werden. Es blockiert statt dessen den Empfang des Kommentars, damit auch das Einfügen des Kommentars in die Konversation und das Weiterleiten des Kommentars an all diejenigen auf Hubzilla & Co., die den Post im Stream haben. Allerhöchstens bekommen den Kommentar die, die dem Kommentator folgen. Der Poster bekommt den Kommentar nicht zu sehen, und auch die Konversation bleibt sauber.

Hubzillas Antwortenkontrolle ist Teil des Berechtigungssystems und arbeitet wie einige andere Teile des Berechtigungssystems auf drei Ebenen.

Erstens gibt es Antwortenkontrolle in Form einer Berechtigung für den ganzen Kanal: "Darf meine Beiträge kommentieren und mögen/nicht mögen". Die deckt also auch Daumen hoch und Daumen runter mit ab. Sie gehört zu den Berechtigungen, die auf acht Stufen erteilt werden können, also auch allen Internetnutzern. Das entspricht quasi einer Blog-Kommentarsektion, für die man sich zum Kommentieren nirgendwo registrieren und anmelden muss; immerhin kann Hubzilla auch als Blog verwendet werden.

Meines Wissens erlauben alle voreingestellten Kanalrollen das Kommentieren grundsätzlich nur denen, welchen man es explizit erlaubt. In der benutzerdefinierten Kanalrolle hat man dann die acht Wahlmöglichkeiten.

Wenn hier "Nur die, denen du es explizit erlaubst" gewählt wird, wird die Antwortenkontrolle von der Kanalebene auf die zweite Ebene delegiert, und zwar Berechtigungen pro Kontakt per Kontaktrolle. Damit kann man, je nachdem, welche Kontaktrolle man einem Kontakt zuweist, Kontakte zum Kommentieren berechtigen und andere Kontakte eben nicht. So kann man tatsächlich auswählen, welche der eigenen Kontakte die eigenen Posts kommentieren dürfen und welche nicht. Nichtkontakte, also alle anderen Fediverse-Nutzer, dürfen die Posts dann natürlich nicht kommentieren.

Möchte man es jedem Fediverse-Nutzer, unabhängig davon, ob er zu den Verbindungen gehört, oder nicht, ermöglichen zu Kommentieren muss man in der Berechtigung die Option „Jeder authentifizierte“ auswählen.

Die dritte Ebene ist dann die Antwortenkontrolle per Post. In der unteren Symbolleiste des Post-Editors gibt es eine Schaltfläche in Form einer Sprechblase . Normalerweise hat sie drei Punkte drin, was bedeutet, dass der Post kommentiert werden darf. Klickt man darauf, verschwinden die Punkte , und der Post darf nicht kommentiert werden. Diese Funktion betrifft dann natürlich nur diejenigen, die an sich zum Kommentieren berechtigt sind.

Die Antwortenkontrolle auf Hubzilla ist optional und standardmäßig abgeschaltet (Kommentare sind also grundsätzlich zunächst erlaubt). Der Schalter "Kommentare deaktivieren" befindet sich hinter dem Zahnrad im Post-Editor.

Und dann gibt's da noch für den ganzen Kanal einen Schalter in den Privatsphäre-Einstellungen: "Accept unsolicited comments for moderation". Der bewirkt, dass eigentlich unberechtigte Kommentare einem zur Moderation vorgelegt werden. Das heißt, man kann jeweils bei jedem solchen Kommentar entscheiden, ob er doch zugelassen und in die Konversation eingefügt oder statt dessen gänzlich gelöscht wird.

Falls jemand darüber nachdenkt, den Schalter zu aktivieren: Spambots nehmen Hubzilla-Kanäle als Blogs wahr und versuchen, dort Spam-Kommentare zu verteilen. Und die begreifen es nicht, wenn sie das nicht dürfen. Das heißt: Wenn man den Schalter aktiviert hat, wird man wahrscheinlich irgendwann einiges damit zu tun haben, Spam-Kommentare abzulehnen.

Aber auch Filter und Superblock können mit Konversationen interferieren. Weil Hubzilla so auf in sich geschlossene Konversationen fixiert ist, kann und wird es keine losen Kommentare und Antworten importieren, zu denen es den Bezug nicht hat und nicht finden kann.

In dem Konversationsbeispiel oben heißt das beispielsweise: Wenn man Bob superblockt, sieht man nicht nur Bobs Kommentar nicht mehr, sondern man sieht auch Erins Antwort auf Bob nicht mehr, weil Erins Antwort damit der Kontext fehlt. Wenn man gar Alice superblockt, sieht man die ganze Konversation nicht mehr. Genauso sieht's aus, wenn beispielsweise Bobs Kommentar oder Alices Post in einem Filter hängenbleibt.

Q

R

Repeats / Wiederholungen / Boosts unterdrücken

Einige Fediverse-Dienste bieten eine Funktion “Mute Boosts from…”. Mit dieser Funktion werden Wiederholungen/Repeats/Boosts von bestimmten Kontakten aus der Timeline ausgeblendet. Das kann bei Kontakten sinnvoll sein, deren Postings man schätzt, welche aber sehr viele Postings eigener Kontakte wiederholt (“boostet”). Möchte man diese Wiederholungen ausblenden, dann nutzt man besagte Funktion.

Dies ist auch bei Hubzilla möglich. Dafür öffnet man den Verbindungs-Editor einer bestimmten Verbindung in der App “Verbindungen” und gibt dort im Tab “Filter für den Inhalt” im Feld “Beiträge mit diesem Text nicht importieren” den Filter

?verb == Announce

ein. Zukünftig werden Wiederholungen dieses Kontakts nicht mehr in den Stream importiert.

rwbunter01

rwbunter02

rwbunter03

Repeating (repeat) / boosting posts

By repeating posts, the post is distributed to your own connections. Comments end up in the original post (unlike shared posts).

If the post has not yet been repeated (no number next to the symbol), a simple click will lead to a repeat.

repeat01b

If the post has already been repeated at least once (number next to the symbol), clicking on it opens a menu that shows who has already repeated the post. Click on ‘+ Add yours’ to repeat the post yourself.

repeat01a

This behaviour corresponds to ‘boosting’, as we know it from Mastodon or the Forkeys, for example.

Reporting a post

Hubzilla does not (yet?) offer an easy way to report posts that a user considers to be possibly illegal (punishable, violation of the instance rules, etc.).

The user has to take a somewhat roundabout route, namely to report the post to the hub admin via direct message. To do this, the internal link to the post is needed to indicate exactly which post (or comment) is involved.

Unfortunately, the post menu (⚙ bottom right of posts and comments) only offers the menu item ‘Link to source’. However, this link leads to the original location in the Fediverse where the post is stored. For posts that do not come from your own hub, it refers to the original instance at some Fediverse service. Unfortunately, this is not very helpful for the administrator to whom the post should be reported. He can only delete or moderate the post on his own hub. However, he cannot find it via the link to the source. The ‘local link’ would be needed, but such an entry cannot be found in the menu.

report01

But: It is still accessible via this menu (⚙). The ‘secret’ is the menu item ‘View Source’.

report02

This solution is not obvious (which is why I explain it here). If you click on it, a popup window will open that displays the source code of the post. At the top of the window, you will also find the post ID, a link to the source (i.e. what you can also access directly in the post menu), labelled ‘plink’ (for permalink), and the local link, labelled ‘llink’. The latter is the link that you have to share with the admin in the direct message (right-click in the browser to copy the link address).

report03

Now you can send a direct message to the hub administrator (to @!<handle-of-admin>) with the internal link and an explanation of the reason for the report. It’s a bit of a hassle, but it can be done if you know how. ;-) I’ll submit a feature request asking for the internal link to be made directly accessible and for a ‘Report post’ option to be added to the post menu. If and when that will happen? No idea.

RSS

Sofern der Administrator eines Hub RSS als Kanalquelle erlaubt hat, kann man RSS-Feeds als Kontakte hinzufügen. Eine Interaktion ist zwar nicht möglich, es landen aber sämtliche, im Feed veröffentlichten Beiträge künftig im eigenen Stream.

Um einen RSS-Feed als Quelle für den Stream hinzuzufügen, gibt man in der App Kontakte die vollständige URL des Feeds ins Eingabefeld “Enter channel address” ein und klickt aufs “+”.

rss01

rss02

rss03

Auch “umgekehrt” funktioniert RSS. Man kann einem Hubzilla-Kanal mit seinem RSS-Reader folgen. Dazu gibt man als Feed-Adresse eine URL nach folgendem Schema ein:

<hub>/feed/<kanalname>

rss04

Die Crux mit der Registrierung

Die Crux mit der Registrierung

In der letzten Zeit habe ich wieder vermehrt “Beschwerden” oder “Klagen” über den Registrierungs-Prozess bei Hubzilla gehört und gelesen. Und der eine oder andere, hat sogar verzweifelt aufgegeben.

Dabei ist die Registrierung bei Hubzilla nicht wirklich komplizierter, als bei anderen Diensten (innerhalb und außerhalb des Fediverse).

Es gibt aber offenbar ein paar “Stolperfallen” und Verständnisprobleme… und ich zeige hier, wie man die bewältigt.

Im Gegensatz zu Mastodon gibt es (noch?) keinen “Referenz-Hub”, der einem auf einer Art “Joinhubzilla-Seite” als Server für die Registrierung vorgeschlagen wird.

Man ist also darauf angewiesen, die Adresse eines Hubs zu kennen. Eine solche in Erfahrung zu bringen, ist nicht kompliziert. FediDB oder Fediverse Observer führen aktuelle Listen. Noch empfehlenswerter ist es, direkt auf die Liste von Hubs, welche Neuanmeldungen erlauben, zuzugreifen.

Auf dieser sieht man auch gleich, ob die Registrierung mit oder ohne Zustimmung des Administrators möglich ist.

reg02

Hat man sich nun für einen Hub entschieden, klickt man in der Liste auf diesen und gelangt so zur Seite für die Registrierung eines Accounts.

reg03a

Hat man einen Hub ausgewählt, der eine Account-Erstellung nur mit Genehmigung des Administrators erlaubt, sieht die Eingabemaske ein wenig anders aus:

reg03

Hier gibt es 1. einen Hinweis, dass die Registrierung der Zustimmung durch den Admin bedarf und 2. ein weiteres Eingabefeld für einen kurzen Text, weshalb man dem Hub beitreten möchte.

Es empfiehlt sich, in dieses Feld etwas wirklich sinnvolles einzutragen, denn der Admin weiß ja nicht, mit wem er es zu tun hat. “Buchstabensalat”, nur damit etwas drin steht, führt in nahezu allen Fällen dazu, dass der Registrierungswunsch abgelehnt wird.

Was einem bewusst sein muss: Hubzilla unterscheidet zwischen Account (Nutzerzugang) und der Identität (Kanal mit eigenem Handle).

Nach der erfolgreichen Registrierung muss ein solcher Kanal angelegt werden.

Es kann aber auch sein, dass man eine solche Registrierungs-Seite zu sehen bekommt (hängt davon ab, wie der Hub konfiguriert ist):

reg03b

Bei diesen Hubs wird die Erstellung eines Kanals gleich mit der Registrierung erledigt. Hier muss man also im Feld “Wähle einen Namen” den Namen für die eigene Identität eingegeben werden (diesen Namen kann man später beliebig ändern) und im Feld “Wähle eine kurze Kennung für die Kanaladresse” eine Kurzbezeichnung eingeben. Diese Kurzbezeichnung ist nachträglich nicht änderbar. Aus ihr und dem Domainnamen des Hub setzt sich das Handle (die Fediverse-Adresse) zusammen (<kurzname>@<hub>), wie man es auch von allen anderen Fediverse-Diensten kennt.

Hat man nun alles ausgefüllt, kann man auf den Button “Registrieren” klicken.


ACHTUNG “Fallstrick”: Abgesehen von einer eventuell erforderlichen “Begründung”, muss man auch unbedingt das eigene Alter und das Akzeptieren der Nutzungsbedingungen bestätigen.

reg04

Hier gibt es immer wieder einmal Probleme, weil der Schalter kein Kontrollkästchen ist, das man per Anklicken mit einem Häkchen oder Kreuz versieht, sondern der eher unbeliebte “Schiebeschalter”. Ist er ausgegraut und es steht “Nein” darin, hat man die Bedingungen nicht bestätigt. Man muss ihn anklicken, worauf die Schrift kräftiger angezeigt wird und “Ja” im Schalter steht. Erst dann hat man die Bedingungen akzeptiert.

reg04a

Leider ist es so (ich hoffe, das wird irgendwann noch geändert), dass man, vergisst man das “Einschalten” oder die Begründung, wieder bei der Registrierungs-Maske landet, ohne dass man darauf hingewiesen wird, was man denn vergessen hat.


Hat alles geklappt, wird man auf eine Seite weitergeleitet, auf welcher man einen Bestätigungs-Code (“Verifizierungs-Token”) eingeben muss. Diesen Code erhält man als E-Mail (ggf. im Spam-Ordner nachschauen oder erneut anfordern).

reg06a

reg05

Hat man sich bei einem Hub registriert, der eine Genehmigung durch den Administrator erfordert, wird folgender Hinweis angezeigt: “Nachdem Ihr Konto von unserem Administrator genehmigt wurde, können Sie sich mit ihrer Login-ID und dem von Ihnen angegebenen Passwort anmelden.”

reg06


ACHTUNG “Fallstrick”: Viele Hubs, insbesondere kleinere, werden von einer oder sehr wenigen Personen betrieben. Und diese Betreiber sind nicht 24/7 am Rechner. Deshalb kann es durchaus etwas dauern, bis der Account genehmigt wird. Bitte nicht ungeduldig werden und gerne auch mal bis zu einem Tag abwarten. Versucht man sich vor Freischaltung mit seinen Anmeldedaten einzuloggen, landet man ohne weiteren Hinweis wieder bei der Login-Maske.


Anschließend wird einem nach dem Einloggen die Eingabemaske für das Anlegen eines Kanals angezeigt (es sei denn, ein solcher wurde schon bei der Accounterstellung angelegt).

reg08

Hat man den Kanal erstellt, wird man auf eine Seite, die durch den Admin festgelegt wurde (in der Regel die Seite für die Eingabe von Profilinformationen) weitergeleitet.

Ist man hier angelangt, ist man drin im Fediverse… mit Hubzilla!

Ist doch gar nicht so schwierig, oder?

Die beiden “Fallstricke” verlieren ihre Gefährlichkeit, wenn man sie kennt… und ich hoffe, dass einige Unzulänglichkeiten (der bekloppte Schalter für das Akzeptieren der Nutzungshinweise müsste echt durch ein Auswahl-Feld ausgetauscht werden… und man müsste Hinweise bekommen, weshalb das Absenden der Registrierung nicht geklappt hat…) in zukünftigen Versionen abgestellt werden.

S

Schlüsselwörter und Verzeichnissuche

Auf der Verzeichnisseite können Sie nach Personen mit veröffentlichten Profilen suchen. Momentan werden nur das Namensfeld und die Schlüsselwörter durchsucht. Sie können solche Keywords auch in Ihr Standardprofil aufnehmen, mit dem Sie nach gemeinsamen Interessen mit anderen Mitgliedern suchen können. Keywords werden im Kanalvorschlagstool verwendet und obwohl sie im Verzeichnis nicht sichtbar sind, werden sie angezeigt, wenn Personen Ihre Profilseite aufrufen.

Auf der Seite „Verbindungen“ und im Verzeichnis gibt es einen Link zu „Vorschläge“ bzw. „Kanalvorschläge“. Dies wird Kanäle finden, die passende und / oder ähnliche Keywords haben. Je mehr Keywords Sie bereitstellen, desto relevanter sind die Suchergebnisse, die zurückgegeben werden. Diese sind nach Relevanz sortiert.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Sharing posts

Sharing / re-sharing posts means that a post from another user is posted again on your own channel. A new conversation is created in your own channel. Comments on it are added to the new conversation and not to the original one.

share01a

Sharing posts only works from the stream or your own channel, but not from a ‘third-party’ channel.

So verbinden Sie sich mit anderen Hubzilla-Channels

Rufen Sie ihr Profil auf, indem Sie im Verzeichnis, in der Matrix oder in den Kommentaren auf ihr Foto klicken. Daraufhin wird ihre Kanalhomepage in der Kanalanzeige geöffnet. Auf der linken Seite des Bildschirms sehen Sie normalerweise einen Link namens „connect“. Klicken Sie darauf, und Sie sind fertig. Abhängig von den Einstellungen des Kanals, zu dem Sie eine Verbindung herstellen, müssen Sie möglicherweise darauf warten, dass diese Ihre Verbindung genehmigen. Es sind jedoch keine weiteren Schritte erforderlich. Sobald Sie die Verbindung hergestellt haben, werden Sie zum Verbindungseditor weitergeleitet. Dadurch können Sie bestimmten Berechtigungen für diesen Kanal zuweisen, wenn Sie Änderungen vornehmen möchten.

Sie können sich auch mit einem beliebigen Kanal verbinden, indem Sie die Seite „Verbindungen“ Ihrer Site oder des Verzeichnisses aufrufen und ihr „Webbie“ in das Feld „Neue Verbindung hinzufügen“ eingeben. Verwenden Sie diese Methode, wenn Ihnen jemand seinen Webbie nennt und Sie sich mit ihm verbinden möchten. Der Vorgang ist der gleiche, wie die Verbindung über die Schaltfläche „Verbinden“ – Sie werden dann in den Verbindungseditor gebracht, um Berechtigungen zu setzen.

So stellen Sie eine Verbindung zu Kanälen in anderen Netzwerken her:

Der Prozess zum Verbinden mit Kanälen in anderen Netzwerken (wie GNU-Social, Mastodon und Diaspora) ist ähnlich – geben Sie ihr „Webbie“ in das Feld „Neue Verbindungen hinzufügen“ auf der Seite „Verbindungen“ ein. Bevor Sie dies jedoch tun, besuchen Sie bitte Ihre Einstellungsseite (Feature / Addon-Einstellungen) und stellen Sie sicher, dass das relevante Protokoll (Diaspora, GNU-Social / OStatus oder ActivityPub) auf Ihrem Hub bereitgestellt und für Ihren Kanal aktiviert ist. Diese Netzwerke / Protokolle unterstützen keine Kontenmigration und Standortunabhängigkeit. Wenn Sie also den Standort verschieben oder Ihren Kanal anderweitig kopieren, kann die Kommunikation mit diesen Verbindungen fehlschlagen. Aus diesem Grund werden diese Protokolle nicht standardmäßig aktiviert, sondern nur durch Ihre Zustimmung. Die Aktivierung dieser Protokolle beinhaltet eine wichtige Entscheidung zwischen der Kommunikation mit Freunden in diesen Netzwerken oder der Bereitstellung einer ausfallsicheren Ausfallsicherheit, wenn Ihr Server ausfällt.

Einige Kommunikationen bieten mehr als ein Protokoll. Wenn Sie sich beispielsweise mit jemandem auf Mastodon verbinden möchten, können Sie entweder das Protokoll ‚ostatus‘ oder ‚activitypub‘ für die Kommunikation verwenden. Im Allgemeinen wird das „activitypub“ -Protokoll eine bessere Erfahrung als „ostatus“ bieten, aber Hubzilla wählt oft das erste Protokoll, das es entdeckt, und dies ist möglicherweise nicht das, was Sie wollen. Sie können sich mit jemandem über ein bestimmtes Protokoll verbinden, indem Sie den Protokollnamen in eckigen Klammern dem „Webbie“ voranstellen. Zum Beispiel

[activitypub]https://foo.bar/foobar

[ostatus]foobar@foo.bar

[diaspora]foobar@foo.bar

[zot]foobar@foo.bar

[feed]https://foo.bar/foobar

Um sich mit RSS-Feeds zu verbinden:

Ihr Hub-Administrator kann die Verbindung zu RSS-Feeds zulassen. Der Prozess zum Herstellen einer Verbindung mit einem RSS-Feed ist derselbe, außer dass Sie die URL des Feeds in das Feld „Neue Verbindung hinzufügen“ eingeben (oder einfügen). Feeds werden nur ein- oder zweimal pro Tag verarbeitet. Ihr Hub-Administrator kann Beschränkungen für die Anzahl der Feeds festlegen, die Sie hinzufügen können.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Sperren / Ignorieren / Archivieren / Verbergen von Kanälen

Kanäle in Ihrem Adressbuch können Status wie blockiert, ignoriert, archiviert und ausgeblendet haben. Auf Ihrer Verbindungsseite können Sie Registerkarten sehen, auf denen die Kanäle mit diesen Status angezeigt werden. Auf den Seiten zum Bearbeiten der Verbindung können Sie die Status eines Kanals ändern.

Hier ist ihre Bedeutung:

Blockiert: Der Kanal kann deine Beiträge nicht lesen, unabhängig von den Berechtigungen, noch kann er in deinen Kanal schreiben.

Ignoriert: Der Kanal kann deine Beiträge lesen, wenn er eine Erlaubnis hat, aber nicht in deinen Kanal schreiben kann.

Versteckt: Der Kanal wird nicht in der Verbindungsliste Ihres Profils angezeigt, niemand kann sehen, dass Sie verbunden sind, aber seien Sie vorsichtig, dass er sich möglicherweise noch bei Ihren anderen Verbindungen zeigt, z. B. in Postantworten.

Archiviert: Wenn ein Kanal 30 Tage lang nicht erreichbar ist, wird er automatisch als archiviert markiert. Dadurch werden alle Daten gespeichert, der Kanal wird jedoch nicht mehr nach neuen Informationen abgefragt und die automatische Vervollständigung wird aufgehoben. Wenn du später erfährst, dass der Kanal wieder online ist, kannst du ihn manuell entfernen.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Stream

Der Stream ist die Liste der Beiträge, Kommentare und Boosts von Nutzern im Fediverse. Er ist umgekehrt chronologisch sortiert (die neuesten Beiträge erscheinen zuoberst). Welche Beiträge Ihnen hier genau gezeigt werden, hängt weitgehend von Ihren Berechtigungseinstellungen ab.

Der Stream (bei anderen Fediversedienste wird er auch “Timeline” genannt) kann durch verschiedene Filter gefiltert werden: nach Direktnachrichten, Ereignissen, Umfragen, Privacy Gruppen, Foren, Markierten Beiträgen, den eigenen Beiträgen, gespeicherte Ordner, Namen.

Der Stream im Fediverse wird nicht durch Algorithmen, die vermeintlich interessante Inhalte für den Nutzer auswählt, erstellt, sondern wird ausschließlich durch den Nutzer selbst bestimmt. Im Fediverse sind Sie, der Nutzer, der Algorithmus für den Stream.

Stream-Ansicht

Die Stream-Ansicht zeigt den gesamten eigenen Stream, also sämtliche eigenen Beiträge und Beiträge von Nutzern, mit denen man verbunden ist. Außerdem erscheinen hier Beiträge mit Hashtags, denen man z.B. bei Diaspora folgt.

sans01

sans02

In der linken Seitenleiste befinden sich Stream-Filter, mit denen man sich nur Beiträge anzeigen lassen kann, die bestimmte Voraussetzungen erfüllen.

sans03

Suchanfragen / Schlagworte / Speichern

Auch Hubzilla bietet Schlagworte (Hashtags), wie z.B. Twitter, Mastodon oder Diaspora. Diese werden ebenfalls mit ‚#‘ gekennzeichnet.

Die Suchfunktion von Hubzilla erlaubt es, nach Hashtags zu suchen. Es werden dann Beiträge angezeigt, die das gesuchte Schlagwort enthalten. Auf diese Weise kann man auch Kanäle finden, bei denen es sich lohnt, sich mit ihnen zu verbinden.

suchs01

suchs02

suchs03

Bei Diaspora* hat man die Möglichkeit, Hashtags zu „folgen“, d.h. Beiträge mit dem „gefolgten“ Hashtag erscheinen im Stream. Diese Möglichkeit gibt es bei Hubzilla so nicht. Man kann aber Suchanfragen speichern. Dies ist im Bereich „Gespeicherte Suchanfragen“ in der Seitenleiste (nicht bei Nutzung der Suche aus dem „App-Menü ⋮“ - ein Bug?) möglich (Disketten-Symbol). Hat man hier ein Hashtag eingegeben, so wird diese Suchanfrage durch Klick auf das Disketten-Symbol gespeichert und erscheint in der Liste der gespeicherten Suchanfragen, von wo die entsprechende Suche künftig einfach per Klick ausgelöst werden kann.

suchs04

suchs05

suchs06

Die Suche ist aber nicht auf Hashtags beschränkt. Man kann auch eine Volltextsuche nach einfachen Begriffen anstoßen oder nach Benutzernamen suchen.


INFO: Hashtags

Ein Hashtag (Neutrum, zusammengesetzt aus engl. hash für das Schriftzeichen Doppelkreuz „#“ und engl. tag für Markierung) ist ein mit Doppelkreuz versehenes Schlagwort, das dazu dient, Nachrichten mit bestimmten Inhalten oder zu bestimmten Themen in sozialen Netzwerken auffindbar zu machen. Die so ausgezeichnete Zeichenkette fungiert (pragmatisch) als Meta-Tag und Meta-Kommentierung. Diese Form der Verschlagwortung erfolgt innerhalb des Fließtextes. Kontaktnetze wie Pinterest, Facebook und Mikroblogging-Dienste wie Twitter nutzen diese Angaben, um die Suche innerhalb ihres Netzwerks nach so verschlagworteten Begriffen zu erleichtern.

Quelle: Wikipedia

Superblock

Die App “Superblock” ist eine Moderationsmethode für den eigenen Stream. Während man mit der normalen Funktionalität von Hubzilla mittels Kontakt-Tool ausschließlich Nutzer, mit denen man verbunden ist, blockieren kann, funktioniert Superblock unabhängig davon, ob man mit einem Kontakt verbunden ist, oder nicht.

Bemerkt man im Stream einen Nutzer, mit welchem man nicht verbunden ist (weil dessen Beiträge von einem Kontakt aus dem eigenen Adressbuch geteilt werden), und möchte man - aus welchem Grund auch immer - keinerlei Beiträge von diesem Fediversenutzer im Stream haben, so kann man dies mit der App “Superblock” erreichen.

Dafür klickt man auf das kleine weiße Dreieck im Avatar des zu blockenden Nutzers.

superb01

Es öffnet sich ein Pulldown-Menü, welches zu unterst den Menüpunkt “Vollständig blockieren” enthält. Mit einem Klick auf diesen Menüpunkt landet der Nutzer in der Superblock-Liste.

superb02

Dadurch ist es diesem Nutzer nicht mehr möglich, deine Beiträge zu lesen, unabhängig von den Berechtigungen, noch kann er in deinen Kanal schreiben. Seine Beiträge erscheinen nicht mehr im Stream.

Wählt man im App-Menü (oben rechts ⋮) die App “Superblock”, so wird die Liste sämtlicher blockierter Kontakte angezeigt.

superb03

superb04

Neben jedem Kontakt ist ein “Mülltonnen-Icon” zu sehen. Ein Klick auf dieses Icon entfernt den Nutzer von der Blockliste. Anschließend kann der Nutzer dir wieder folgen, deine Beiträge sehen und auch bei dir kommentieren und seine Postings erscheinen (z.B. durch Teilen von einem Kontakt) auch wieder im Stream.

Außerdem ist es möglich, dort manuell Kanäle durch Eingabe des Fediverse-Handles zur Superblock Liste hinzuzufügen.

superb04

Superblock ist bei neuen Kanälen nicht per Standard installiert und aktiviert. Die App einfach wie hier (Apps installieren, ins Menü einfügen, anpinnen und konfigurieren beschieben, installieren und aktivieren.

T

Tags und Erwähnungen

Wie viele andere Plattformen verwendet Hubzilla in Nachrichten eine spezielle Notation, um „Tags“ oder kontextabhängige Links zu anderen Entitäten anzuzeigen.

Erwähnungen (Mentions)

Channels werden gekennzeichnet, indem ihrem Namen einfach das @ -Zeichen vorangestellt wird. @Jack

Wenn Sie jemanden erwähnen, wird ein Feld für die automatische Vervollständigung erstellt, aus dem Sie Ihre unmittelbaren Verbindungen auswählen können. Wählen Sie entsprechend aus.

Befindet sich die genannte Person in der Liste der Empfänger des Postings, erhält sie eine Tagbenachrichtigung.

Lieferbare Erwähnungen (Deliverable Mentions)

Das ! Zeichen bezeichnet eine lieferbare Erwähnung für ein Forum oder einen speziellen Kanal, der „erneute Zustellung von Erwähnungen“ ermöglicht.

@Gardening – Erwähnen Sie das Gartenforum

!Gardening – Erwähnen Sie das Gartenforum und posten Sie auch in das Garten-Netzwerk (z.B. an alle Forumsmitglieder senden; wenn Sie die Erlaubnis dazu haben)

Hinweis: In früheren Versionen wurden Foren mit @ forum + mit einem Pluszeichen am Ende bereitgestellt. Dieser Mechanismus wird nicht mehr unterstützt.

Private Erwähnungen (Private Mentions)

Wenn Sie einen Beitrag auf eine einzelne Person oder auf mehrere Personen beschränken möchten, können Sie dies tun, indem Sie im Datenschutz-Tool Kanäle oder Datenschutzgruppen auswählen. Sie können sie auch einfach mit einem Datenschutz-Tag versehen. Ein Datenschutz-Tag ist ein Name, dem die beiden Zeichen vorangestellt sind @! – Neben dem Kennzeichnen dieser Kanäle werden auch die Datenschutzberechtigungen des Beitrags dahingehend geändert, dass sie nur diese enthalten. Sie können beispielsweise mehr als ein Datenschutz-Tag haben @!bob und @!linda schickt den Post nur an Bob und Linda. Dieser Mechanismus überschreibt die Privatselektion.

Foren können auf dieselbe Weise erwähnt werden. !!dogs wird im Hundeforum privat posten. Das Forum wird den Beitrag an alle Forenmitglieder weiterleiten, aber Ihre eigenen Anhänger werden den Beitrag nicht sehen, es sei denn, sie sind auch Mitglieder des Hundeforums.

Sie können auch Datenschutzgruppen kennzeichnen, die „öffentlich“ sind. Wenn Sie eine Datenschutzgruppe erstellen oder bearbeiten, gibt es ein Kontrollkästchen, um die Gruppenmitglieder für andere Personen sichtbar zu machen. Wenn dieses Kästchen für eine Gruppe markiert ist und Sie einen Tag (zum Beispiel) @!Friends – Der Posten wird auf die Freundesgruppe beschränkt. Überprüfen Sie, ob die Gruppe öffentlich ist, bevor Sie dies tun. Es gibt keine andere Möglichkeit, einen Post zurückzunehmen, als ihn zu löschen. Der Gruppenname wird im Beitrag angezeigt und die Mitglieder dieser Gruppe werden darauf hingewiesen, dass sie Mitglieder dieser Gruppe sind.

Erwähnungen und Kommentare

Die oben genannten Mechanismen gelten nur für von Ihnen erstellte „Top-Level-Posts“. Das Erwähnen eines Kanals mit einem der oben genannten Mechanismen hat in Kommentaren keine Auswirkung, außer dass der erwähnte Kanal möglicherweise eine Benachrichtigung erhält, wenn er bereits als Empfänger in die Konversation aufgenommen wurde.

Thematische Tags (auch Hashtags genannt) (Topical Tags)

Aktuelle Tags werden angezeigt, indem Sie den Tagnamen mit dem Zeichen # voranstellen. Dadurch wird im Beitrag ein Link zu einer verallgemeinerten Website-Suche nach dem angegebenen Begriff erstellt. Zum Beispiel, #cars stellt einen Suchlink für alle Beiträge bereit, die „Autos“ auf Ihrer Website erwähnen. Aktuelle Tags sind in der Regel mindestens drei Zeichen lang. Kürzere Suchbegriffe führen wahrscheinlich nicht zu Suchergebnissen, dies hängt jedoch von der Datenbankkonfiguration ab.

Thematische Tags werden normalerweise auch nicht verknüpft, wenn sie rein numerisch sind, z. #1. Wenn Sie einen numerischen Hashtag verwenden möchten, fügen Sie bitte einen beschreibenden Text wie z.B. #2012-Wahlen oder das gesamte Tag in doppelte Anführungszeichen setzen (z. B. #“2012″). Doppelte Anführungszeichen sind auch erforderlich, wenn das Tag Leerzeichen enthält (# „Mein Tag“) und möglicherweise erforderlich, wenn das Tag Satzzeichen enthält (# „EndsWithPeriod.“ Oder # „Exciting !!!“).

Lesezeichen (Bookmarks)

Lesezeichen geben einen Link an, der in Ihrem Lesezeichenordner gespeichert werden kann. Sie verwenden die Zeichenfolge #^ gefolgt von dem Link. Oft werden diese automatisch generiert. Wenn das Addon ‚bookmarker‘ installiert ist, wird diese Sequenz beim Online-Ansehen des Beitrags oder Kommentars in ein Lesezeichensymbol konvertiert. Wenn Sie auf das Symbol klicken, wird das Lesezeichen durch Klicken auf das Symbol gespeichert. Wenn das Add-In für das Lesezeichen nicht installiert ist, enthält das Post-Dropdown-Menü einen Link zum Speichern des Lesezeichens oder der Lesezeichen.

Manuelle Erwähnungen (Manual Mentions)

Verwenden Sie nach Möglichkeit das Fenster für die automatische Vervollständigung, um das Tag auszuwählen und die Empfänger anzugeben, da ein codiertes Tag generiert wird, das einen Kanal eindeutig identifiziert. Namen sind manchmal mehrdeutig. Sie können einen Kanal jedoch „manuell“ kennzeichnen, indem Sie den Namen oder die Adresse des Kanals angeben.

@billy

markiert eine Verbindung, deren Name oder Netzwerkadresse „billy“ lautet (genaue Übereinstimmung). Wenn Sie zwei Verbindungen mit einem Namen oder einer Netzwerkadresse von billy haben, z. B. billy@server1.hubzilla.org und billy@server2.hubzilla2.org, müssen Sie die vollständige Adresse angeben. Andernfalls sind die Ergebnisse mehrdeutig und die falsche Person kann markiert werden.

@“Robert Johnson“

wird Robert Johnson markieren. Die Anführungszeichen sind erforderlich, wenn der markierte Name Leerzeichen enthält.


Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Teilen von Beiträgen

Mit dem Teilen / Weitersagen von Beiträgen wird ein Beitrag eines anderen Nutzers mit dem eigenen Kanal erneut gepostet. Es wird eine neue Konversation im eigenen Kanal erzeugt. Kommentare dazu landen bei der neuen Konversation und nicht bei der ursprünglichen.

teilen01a

Das Teilen von Beiträgen funktioniert nur aus dem Stream oder dem eigenen Kanal, nicht jedoch aus einem „fremden“ Kanal.

U

Wo ist was bei den Utsukta-Themes?

Wo ist was bei den Utsukta-Themes?

Wenn ein Hub die “Utsukta-Themes” von Saiwal installiert und aktiviert hat, dann hat man die Möglichkeit, Hubzilla ein moderneres, frischeres Aussehen zu spendieren.

Das Theme, welches man quasi als “Standard-Theme” bezeichnen kann, weil es universell, besonders gut aber für die Nutzung als Social Network verwenden kann, heißt “Adminlte”.

Es unterscheidet sich deutlich vom Standardtheme “redbasic”, weshalb sich bestimmte Bedienelemente und Menüs nun an anderer Stelle befinden.

So befindet sich das Hauptmenü (Avatar-Bild), über welches man zur Kanalwahl, den Einstellungen und zur Profilansicht gelangt, und in welchem man sich abmelden kann, nicht mehr oben links in der Navigationsleiste

uts01

sondern als oberster Eintrag im App-Menü, welches sich in der linken, einklappbaren Seitenleiste befindet.

uts02

Die angepinnten Apps befinden sich bei “redbasic” in der Navigationsleiste und werden rechtsbündig angeordnet.

uts03

Bei den “Utsukta-Themes” befinden sie sich in der linken Navigations-Seitenleiste.

uts04 uts05

Das App-Menü, über welches man die installierten Apps auswählen und zur Appverwaltung gelangen kann befindet sich bei “redbasic” oben rechts (⋮).

uts06

uts07

Bei den “Utsukta-Themes” sind diese Apps ebenfalls in der linken Navigations-Seitenleiste erreichbar.

uts08

Die Widgets, welche sich bei den verschiedenen Ansichten bei “redbasic” in der linken und rechten Seitenleiste befinden, sind bei den “Utsukta-Themes” allesamt in die rechte Seitenleiste gewandert.

Die linke Navigations-Seitenleiste wird nach Auswahl eines “Utsukta-Theme” zunächst aufgeklappt dargestellt. Das kann, je nach Bildschirmgröße den Inhaltsbereich zu sehr verkleinern.

Deshalb kann sie eingeklappt werden. Dies geschieht über das kleine Symbol uts09a.

uts09

Nun sind nur noch die Symbole zu sehen.

uts10

Fährt man aber mit dem Mauszeiger über den Bereich dieser Seitenleiste, so klappt diese temporär (sie schließt sich wieder, sobald der Mauszeiger den Bereich verlässt) auf, damit man alles einfach erreichen und die Beschriftungen lesen kann.

uts11

Ebenfalls in der linke Navigations-Seitenleiste lässt sich ganz oben umschalten, ob man eine dunkle oder eine helle Darstellung haben möchte, oder ob zwischen hell und dunkel je nach Tageszeit automatisch umgeschaltet wird.

uts12

Das HQ-Widget (rechte Seitenleiste) weist außerdem einige praktische Erweiterungen und Funktionen auf.

So können die Benachrichtigungen zu Beiträgen per Klick auf ein Icon gefiltert werden. Möchte man sich alle Beiträge anzeigen lassen, wählt man das erste Icon.

uts16

Das Zweite Icon zeigt alle neuen Beiträge an.

uts17

Und das dritte Icon schließlich alle Beiträge, bei welchen es neue Aktivitäten gab (Reaktionen, Kommentare etc.).

uts18

Im Tab für die gespeicherten Ordner wird eine Dropdown-Liste aller vorhandenen Ordner angezeigt. Das ermöglicht eine schnelle Auswahl des gewünschten Ordners per Klick.

uts19

Die Utsukta-Themes erlauben auch “Benutzerdefinierte Design-Einstellungen”.

uts13

Man kann für den hellen und den dunklen Modus Hintergrundfarbe oder Hintergrundbild festlegen.

Wählt man eine kleinere Grafik, um damit den Hintergrund zu kacheln, kann man dies unter “Set background image tile mode” einstellen. Hier wählt man dann “Tiled”. Will man hingegen ein sehr großes Bild als Hintergrundbild verwenden, verwendet man hier die Option “Cover”.

uts14

Die linke Seitenleiste (App-Leiste) kann mit der Option “Choose sidebar mode” auch so konfiguriert werden, dass sie beim erstmaligen Aufruf als Standard eingeklappt (Collapsed) oder ausgeklappt (Expanded) dargestellt wird.

uts15

V

Verbindung mit Friendica-Nutzern

Falls Probleme mit Friendica-Kontakten auftreten (die Kontakte verschwinden, es werden keine Beiträge mehr im Stream angezeigt oder das Verbinden scheitert), kann das daran liegen, dass der eigene Hubzilla-Hub das Diaspora-protokoll aktiviert hat.

Man sollte dann beim Verbinden das ActivityPub-Protokoll explizit voranstellen: [activitypub]name@server.tld

Also z.B.

[activitypub]hvetinari@friendica.opensocial.space

Danke für den Tipp, Matthias (feb@loma.ml), den er von RockyIII (rockyiii@huby.infozoo.de) aus github übernommen hat.

Verbindungen

Die App Verbindungen zeigt sämtliche eigenen Verbindungen an.

verb01

verb02

Die Seite bietet an, weitere Verbindungen hinzuzufügen, sofern man Kenntnis vom Fediverse-Handle des Nutzers hat, mit welchem man sich verbinden möchte.

verb03

Bei längeren Verbindungslisten kann die Suche (durchsucht nur die Verbindungen) oder auch der Filter helfen, bestimmte Kontakte zu finden.

verb04

verb05

n der linken Seitenleiste wird die Möglichkeit der Verzeichnissuche angeboten, um neue Kontakte zu finden. Außerdem kann man sich Kanäle vorschlagen lassen, Zufallsprofile anzeigen lassen oder Freunde einladen.

verb06

Verzeichnis

Mit der App Verzeichnis hat man Zugriff auf das Nutzerverzeichnis des eigenen Hub oder auf das globale Verzeichnis, in welchem weltweit sämtliche (öffentlichen) Hubzilla-Nutzer aufgeführt werden.

verz01

Es gibt etliche möglichkeiten zur Suche nach Nutzern und eine Schlagwort-Wolke für schnellen Zugriff auf Schlüsselwörter, die Nutzer in ihren Profilen angegeben haben.

verz02

W

Warteschlange "Experten-Modus" - Admin

Warteschlange “Experten-Modus” - Admin

Der Administrator eines Hubs hat die Möglichkeit, sich anzeigen zu lassen, welche Elemente sich aktuell in der Warteschlange befinden. Dies geschieht in der “Administration” unter “Warteschlange kontrollieren”. Die Auswahl dieses Menüpunkts führt zu <URL_DES_HUB>/admin/queue.

In dieser Ansicht werden die Einträge tabellarisch angezeigt:

Einträge insgesamtZiel-URLPriorität

Eine Bearbeitung der Einträge ist nicht möglich.

Es gibt aber auch noch einen “Experten-Modus” dieser Ansicht, der leider nicht über das Menü der Administration erreichbar ist. Es muss an die genannte URL “?expert=1” angehängt werden, der Aufruf lautet also <URL_DES_HUB>/admin/queue?expert=1.

Nun werden in der Tabelle neben den drei bisherigen Informationen noch drei Buttons angezeigt:

  • x - Hub als permanent offline markieren
  • trash - Warteschlange für diesen Hub leeren
  • leerer Button - Wiederholung der Zustellung an diesen Hub

Mit diesen drei Buttons können die genannten Aktionen durchgeführt werden.

Um nicht jedes Mal die Zeichenkette an die URL anhängen zu müssen, kann man sich z.B eine App mit dieser URL erstellen und ins App-Menü einfügen bzw. in die Navigationsleiste anpinnen.

app_outqx


Der Dank für das Auffinden dieser verborgenen Funktion geht an Harald Eilertsen, der beim Arbeiten am Quellcode auf sie gestoßen ist.

Wayback Machine: Inhalte bei Hubzilla verlinken

Will man auf einen bestimmten Inhalt verlinken, der in der Wayback Machine archiviert ist, dann kann die URL Probleme verursachen, wenn sie eine zweite Angabe zum Hypertext Transfer Protocol enthält. Das Ergebnis – nicht nur bei Hubzilla – sind zwei Links, die natürlich beim Anklicken nicht zum gewünschten Ziel führen. Der erste Link wird automatisch an der Stelle beendet, ehe die zweite HTTP-Angabe beginnt.

Die einfache Lösung: Die zweite HTTP-Angabe weglassen. Auch mit dieser URL findet die Wayback Machine den archivierten Artikel.

Beispiel:

Anstatt https://web.archive.org/web/20180819180306/https://pepecyb.hu

also einfach https://web.archive.org/web/20180819180306/pepecyb.hu

für die URL verwenden.

Webseiten

Hubzilla ermöglicht es Mitgliedern und zugelassenen Verbindungen, statische Webseiten zu erstellen. Um diese Funktion zu aktivieren, aktivieren Sie die Funktion “Webseiten” in Ihrem Abschnitt “Zusätzliche Funktionen”.

Sobald die Funktion aktiviert ist, erscheint auf Ihrer Channel-Seite eine neue Registerkarte mit der Bezeichnung “Webpages”. Wenn Sie auf diesen Link klicken, gelangen Sie zum Webseiten-Editor. Die Seiten werden unter <Instanz-URL>/page/<Kanalname>/<Seiten-Link-Titel> zugänglich sein.

Im Feld “Seiten-Link-Titel” können Sie den “Seiten-Link-Titel” dieser URL angeben. Wenn kein Titel für den Seitenlink festgelegt ist, wird dieser automatisch anhand der Nachrichten-ID des Artikels festgelegt.

Unter dem Feld für die Seitenerstellung wird eine Liste der bestehenden Seiten mit einem Link “Bearbeiten” angezeigt. Wenn Sie auf diesen Link klicken, gelangen Sie zu einem Editor, ähnlich dem des Beitragseditors, in dem Sie Änderungen an Ihren Webseiten vornehmen können.

Blöcke verwenden

Blöcke können Teile von Webseiten sein. Der grundlegende HTML-Code eines Blocks sieht wie folgt aus

    <div>
        Block-Inhalt
    </div>

Wenn ein Block den Inhaltstyp text/html hat, kann er auch Menüelemente enthalten. Der Beispielinhalt von

    <p>HTML Block-Inhalt</p> 
    [menu]menuname[/menu]

wird HTML wie dieses erzeugen

    <div>
        <p>HTML Block-Inhalt</p>
        <div>
            <ul>
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
                <li><a href="#">Link 3</a></li>
            </ul>
        </div>
    </div>

Über das Makro $content kann ein Block auch den eigentlichen Inhalt der Webseite enthalten.

Erstellen Sie dazu einen Block nur mit

    $content

als Inhalt.

Damit ein Block auf der Webseite erscheint, muss er im Seitenlayout innerhalb einer Region definiert werden.

    [region=aside]
        [block]blockname[/block]
    [/region]

Das Aussehen des Blocks kann im Seitenlayout manipuliert werden.

Es können eigene Klassen zugewiesen werden

    [region=aside]
        [block=myclass]blockname[/block]
    [/region]

wird folgendes HTML erzeugen

    <div class="myclass">
        Block Content
    </div>

Über die wrap-Variable kann ein Block von seinem umschließenden <div></div>-Tag befreit werden

    [region=aside]
        [block][var=wrap]none[/var]blockname[/block]
    [/region]

wird dieses HTML erzeugt

Blockinhalt

Werkzeug zum Importieren von Webseitenelementen

Es gibt zwei Methoden zum Importieren von Webseitenelementen: Hochladen einer Zip-Datei oder Verweis auf einen lokalen Cloud-Datei-Ordner. Beide Methoden erfordern, dass die Webseiten-Elemente in einer bestimmten Ordnerstruktur angegeben werden. Das Import-Tool ermöglicht es, alle Elemente zu importieren, die für die Erstellung einer ganzen Website oder einer Reihe von Websites erforderlich sind. Ziel ist es, die externe Entwicklung von Webseiten sowie Tools zur Vereinfachung und Automatisierung der Bereitstellung auf einem Hub zu ermöglichen.

Struktur des Ordners

Elementdefinitionen müssen im Stammverzeichnis des Repos gespeichert werden, und zwar in Ordnern namens

    /pages/
    /blocks/
    /layouts/

Jedes Element dieser Typen muss in einem eigenen Unterordner mit zwei Dateien definiert werden: eine JSON-formatierte Datei für die Metadaten und eine reine Textdatei für den Inhalt des Elements.

Seitenelemente

Die Metadaten der Seitenelemente werden in einer JSON-formatierten Datei namens page.json mit den folgenden Eigenschaften angegeben:

  • title
  • pagelink
  • mimetype
  • layout
  • contentfile

Beispiel

Dateien:

    /pages/my-page/page.json
    /pages/my-page/my-page.bbcode

Inhalt von page.json:

    {
        "title": "My Page",
        "pagelink": "mypage",
        "mimetype": "text/bbcode",
        "layout": "my-layout",
        "contentfile": "my-page.bbcode"
    }

Layout-Elemente

Die Metadaten der Layoutelemente werden in einer JSON-formatierten Datei namens layout.json mit den folgenden Eigenschaften angegeben:

  • name
  • description
  • contentfile

Beispiel

Dateien:

    /layouts/my-layout/layout.json
    /layouts/my-layout/my-layout.bbcode

Inhalt von layout.json:

    {
        "name": "my-layout",
        "description": "Layout for my project page",
        "contentfile": "my-layout.bbcode"
    }

Blockelemente

Blockelement-Metadaten werden in einer JSON-formatierten Datei namens block.json mit den folgenden Eigenschaften angegeben:

  • name
  • title
  • mimetype
  • contentfile

Beispiel

Dateien:

    /blocks/my-block/block.json
    /blocks/my-block/my-block.html

Inhalt von block.json:

    {
        "name": "my-block",
        "title": "",
        "mimetype": "text/html",
        "contentfile": "my-block.html"
    }

Comanche Seitenbeschreibungssprache

Comanche ist eine BBcode-ähnliche Auszeichnungssprache, mit der aufwändige und komplexe Webseiten erstellt werden können, indem sie aus einer Reihe von Komponenten zusammengesetzt werden, von denen einige vorgefertigt sind und andere spontan definiert werden können. Comanche verwendet eine Seitenbeschreibungssprache, um diese Seiten zu erstellen.

Comanche wählt in erster Linie aus, welche Inhalte in den verschiedenen Bereichen der Seite erscheinen sollen. Die verschiedenen Bereiche haben Namen, und diese Namen können sich je nach gewählter Layoutvorlage ändern.

Seitenvorlagen

Derzeit gibt es fünf Layout-Vorlagen, es sei denn, Ihre Website bietet zusätzliche Layouts.

Standardvorlage

Die Standardvorlage definiert einen “nav”-Bereich am oberen Rand, “aside” als Seitenleiste mit fester Breite, “content” für den Hauptinhaltsbereich und “footer” für einen Seitenfuß.

Vollständig

Die vollständige Vorlage entspricht der Standardvorlage mit der Ausnahme, dass es keinen “aside”-Bereich gibt.

Choklet

Die Choklet-Vorlage bietet eine Reihe von fließenden Layoutstilen, die nach Geschmack festgelegt werden können:

  • (default flavour) - ein zweispaltiges Layout, das der “default”-Vorlage ähnelt, aber flexibler ist
  • bannertwo - ein zweispaltiges Layout mit einem Bannerbereich, kompatibel mit der “default”-Vorlage auf kleinen Displays
  • three - dreispaltiges Layout (ergänzt die Standardvorlage um einen “right_aside”-Bereich)
  • edgestwo - zweispaltiges Layout mit festen Seitenrändern
  • edgesthree - dreispaltiges Layout mit festen Seitenrändern
  • full - dreispaltiges Layout mit festen Seitenrändern und Hinzufügen eines “Header”-Bereichs unter der Navigationsleiste

Redable

Eine Vorlage zum Lesen längerer Texte im Vollbildmodus (also ohne Navigationsleiste). Drei Spalten: aside, content und right_aside.

Für maximale Lesbarkeit ist es ratsam, nur die mittlere Inhaltsspalte zu verwenden.

Zen

Gibt Ihnen die Freiheit, alles selbst zu machen. Nur eine leere Seite mit einem Inhaltsbereich.

Um eine Layout-Vorlage auszuwählen, verwenden Sie den Tag ‘template’.

    [template]full[/template]

So wählen Sie die Vorlage “choklet” mit der Geschmacksrichtung “three”:

    [template=three]choklet[/template]

Die Standardvorlage wird verwendet, wenn keine andere Vorlage angegeben wird. Die Vorlage kann beliebige Namen für die Inhaltsbereiche verwenden. Sie werden “region”-Tags verwenden, um zu entscheiden, welche Inhalte in den jeweiligen Regionen platziert werden sollen.

Es wurden drei “Makros” für Ihre Verwendung definiert.

    $htmlhead - replaced with the site head content.
    $nav - replaced with the site navigation bar content.
    $content - replaced with the main page content.

Standardmäßig wird $nav in den Seitenbereich “nav” und $content in den Bereich “content” eingefügt. Sie brauchen diese Makros nur zu verwenden, wenn Sie die Reihenfolge der Elemente ändern oder sie in andere Bereiche verschieben möchten.

Um ein Thema für Ihre Seite auszuwählen, verwenden Sie den Tag “theme”.

    [theme]suckerberg[/theme]

Dadurch wird das Thema “suckerberg” ausgewählt. Standardmäßig wird das von Ihrem Kanal bevorzugte Thema verwendet.

    [theme=passion]suckerberg[/theme]

Dadurch wird das Thema mit dem Namen “suckerberg” ausgewählt und das Schema “passion” (Themenvariante) gewählt. Alternativ ist es auch möglich, eine komprimierte Themennotation zu verwenden.

    [theme]suckerberg:passion[/theme]

Die komprimierte Notation ist nicht Teil von Comanche selbst, wird aber von der Hubzilla-Plattform als Themenspezifizierer erkannt.

Navbar

    [navbar]tucson[/navbar]

Verwenden Sie die Vorlage “tucson” für die Navigationsleiste und die CSS-Regeln. Standardmäßig wird die Vorlage “default” für die Navigationsleiste verwendet.

Regions

Jede Region hat, wie oben erwähnt, einen Namen. Sie spezifizieren die Region, die Sie interessiert, mit einem “region”-Tag, der den Namen enthält. Alle Inhalte, die Sie in diesem Bereich platzieren möchten, sollten zwischen dem öffnenden Region-Tag und dem schließenden Tag platziert werden.

    [region=htmlhead]....content goes here....[/region]
    [region=aside]....content goes here....[/region]
    [region=nav]....content goes here....[/region]
    [region=content]....content goes here....[/region]

CSS und Javascript

Wir haben die Möglichkeit, Javascript- und CSS-Bibliotheken in den htmlhead-Bereich einzubinden. Zurzeit verwenden wir jquery (js), bootstrap (css/js) und foundation (css/js).

Dies überschreibt den htmlhead des ausgewählten Themas.

    [region=htmlhead]
        [css]bootstrap[/css]
        [js]jquery[/js]
        [js]bootstrap[/js]
    [/region]

Menüs und Blöcke

Mit den Werkzeugen zur Erstellung von Webseiten können Sie neben dem Seiteninhalt auch Menüs und Blöcke erstellen. Diese bieten einen Teil des vorhandenen Inhalts, der in den von Ihnen festgelegten Bereichen und in der von Ihnen festgelegten Reihenfolge platziert werden kann. Jedes dieser Elemente hat einen Namen, den Sie bei der Erstellung des Menüs oder Blocks festlegen.

    [menu]mymenu[/menu]

Dadurch wird das Menü “mymenu” an dieser Stelle auf der Seite platziert, die sich innerhalb eines Bereichs befinden muss.

    [menu=horizontal]mymenu[/menu]

Dadurch wird das Menü mit dem Namen “mymenu” an dieser Stelle auf der Seite platziert, die sich innerhalb eines Bereichs befinden muss. Außerdem wird dem Menü die Klasse “horizontal” zugewiesen. Die Klasse “horizontal” ist im redbasic-Theme definiert. Sie kann in anderen Themes verfügbar sein, muss es aber nicht.

    [menu][var=wrap]none[/var]mymenu[/menu]

Die Variable [var=wrap]none[/var] in einem Block entfernt das umschließende div-Element aus dem Menü.

    [block]contributors[/block]

Dadurch wird ein Block mit dem Namen “contributors” in dieser Region platziert.

    [block=someclass]contributors[/block]

Dadurch wird ein Block mit dem Namen “contributors” in dieser Region platziert. Zusätzlich wird die Klasse “someclass” auf den Block angewendet. Dies ersetzt die Standard-Blockklassen “bblock widget”.

    [block][var=wrap]none[/var]contributors[/block]

Die Variable [var=wrap]none[/var] in einem Block entfernt das umschließende div-Element aus dem Block.

Widgets

Widgets sind ausführbare Anwendungen, die vom System bereitgestellt werden und die Sie auf Ihrer Seite platzieren können. Einige Widgets benötigen Argumente, mit denen Sie das Widget an Ihren Zweck anpassen können. System-Widgets sind hier aufgelistet. Widgets können auch von Plugins, Themes oder Ihrem Website-Administrator erstellt werden, um zusätzliche Funktionen bereitzustellen.

Widgets und Argumente werden mit den Tags “widget” und “var” angegeben.

    [widget=recent_visitors][var=count]24[/var][/widget]

Damit wird das Widget “recent_visitors” geladen und mit dem Argument “count” auf “24” gesetzt.

Kommentare

Das Tag “comment” wird zur Abgrenzung von Kommentaren verwendet. Diese Kommentare werden auf der gerenderten Seite nicht angezeigt.

    [comment]This is a comment[/comment]

Bedingte Ausführung

Sie können ein ‘if’-Konstrukt verwenden, um Entscheidungen zu treffen. Diese basieren derzeit auf der Systemkonfigurationsvariable oder dem aktuellen Beobachter.

    [if $config.system.foo]
        ... the configuration variable system.foo evaluates to 'true'.
    [else]
        ... the configuration variable system.foo evaluates to 'false'.
     [/if]

    [if $observer]
        ... this content will only be show to authenticated viewers
    [/if]

Die ‘else’-Klausel ist optional.

Neben der booleschen Auswertung werden mehrere Tests unterstützt.

    [if $config.system.foo == bar]
        ... the configuration variable system.foo is equal to the string 'bar'
    [/if]
    [if $config.system.foo != bar]
        ... the configuration variable system.foo is not equal to the string 'bar'
    [/if]
    [if $config.system.foo {} bar ]
        ... the configuration variable system.foo is a simple array containing a value 'bar'
    [/if]
    [if $config.system.foo {*} bar]
        ... the configuration variable system.foo is a simple array containing a key named 'bar'
    [/if]

Komplexes Beispiel

    [comment]use an existing page template which provides a banner region plus 3 columns beneath it[/comment]

    [template]3-column-with-header[/template]

    [comment]Use the "darknight" theme[/comment]

    [theme]darkknight[/theme]

    [comment]Use the existing site navigation menu[/comment]

    [region=nav]$nav[/region]

    [region=side]

        [comment]Use my chosen menu and a couple of widgets[/comment]

        [menu]myfavouritemenu[/menu]

        [widget=recent_visitors]
            [var=count]24[/var]
            [var=names_only]1[/var]
        [/widget]

        [widget=tagcloud][/widget]
        [block]donate[/block]

    [/region]



    [region=middle]

        [comment]Show the normal page content[/comment]

        $content

    [/region]



    [region=right]

        [comment]Show my condensed channel "wall" feed and allow interaction if the observer is allowed to interact[/comment]

        [widget]channel[/widget]

    [/region]

Inoffizielle Übersetzung eines Teils der offiziellen Hubzilla-Hilfe (MIT License)

Webseiten mit Hubzilla

Mit Hubzilla kann man hervorragend Webseiten erstellen. Ein prominentes Beispiel ist die Webseite der Hubzilla-Projekts selbst: Hubzilla.

Hier merkt man als Besucher gar nicht, dass die Webseite durch die Hubzilla-Software, also von einem Hubzilla-Hub geliefert wird.

Das Erstellen von Webseiten ist mit Hubzilla eigentlich kein Problem, sobald man sich mit dem Konzept vertraut gemacht hat. Was Hubzilla allerdings nicht bietet ist ein WYSWYG-Webeditor. Dafür hat man aber für die Inhaltsgestaltung die freie Wahl zwischen echtem, reinen HTML, Markdown, (bevorzugt) bbCode oder reinem Text. Man kann Inhalte aber auch mit PHP erzeugen lassen. In der eigentlichen Funktionsweise sind die Hubzilla-Webseiten gar nicht so weit weg vom Block-Editor, wie man ihn von WordPress kennt. Nur halt ohne “Zusammenklicken” und “Blöcke Hin-und-Herschieben”.

Ich stelle hier die Konzepte und Komponenten der Hubzilla-Webseiten vor und erläutere (auch anhand von Beispielen), wie ich sie selbst nutze (das ist aber nur eine Möglichkeit, bei Hubzilla-Webseiten führen viele Wege zum Ziel).

Die App “Webseiten”

Um Webseiten mit seinem Hubzilla-Kanal zu erstellen, muss man die App “Webseiten” installieren und zugänglich machen. Wie das funktioniert, ist hier beschrieben: Apps.

Ruft man die App zum ersten Mal auf, sieht man die verschiedenen “Gestaltungswerkzeuge” (Blöcke, Menüs, Layouts, Seiten) und jeder dieser Bereiche ist leer.

Ein zentrales und wichtiges Gestaltungselement sind die Blöcke.

Blöcke

Blocke enthalten die eigentlichen Inhalte, die letztlich auf der Webseite dargestellt werden sollen.

webs01

Bei der Erstellung eines Blocks kann man zwischen verschiedenen Inhaltstypen wählen. Der Inhalt kann mit

  • bbCode
  • HTML
  • Markdown
  • Text (plain Text)
  • Comanche-Layout
  • PHP

erstellt und gestaltet werden.

Auch wenn alle Inhalte letztlich in HTML übersetzt und vom Browser als solches gerendert werden, sollte man sich trotzdem überlegen, welches Format für den jeweiligen Zweck sinnvoll ist.

In Hubzilla wird bevorzugt bbCode (Hubzilla-Flavour) verwendet, weil damit mehr Formatierungsmöglichkeiten als bei Markdown und vor allem auch weil damit spezielle Formatierungen von Hubzilla-Funktionalitäten möglich sind. So gibt es spezielle Tags für Magic-auth-URLs ([zrl][/zrl]), Magic-auth-Bilder ([zmg][/zmg]), für Observer-abhängige Ausgaben (also in Bezug auf den Hub, welcher die Seite darstellt), Spoiler ([spoiler][/spoiler]), Inhaltsverzeichnisse ([toc]), das Einbinden von Beiträgen des Heimat-Hubs ([rpost][/rpost]), QR-Codes ([qr][/qr]), Karten ([map][/map]) und das Copyright-Zeichen ([&copy;]).

Damit PHP genutzt werden kann, muss der Administrator des Hubs “Code” für den Kanal genehmigen.

Ein Block kann einen Titel haben. Die Vergabe eines Titels ist optional. Der Titel wird am Anfang des Blocks dargestellt.

Es ist möglich ein Summary für einen Block anzugeben, also eine kurze Zusammenfassung des Inhalts. Dies kann bei längeren Texten sinnvoll sein, oder auch als Inhaltswarnung für möglicherweise sensible Inhalte genutzt werden. Auch dies ist optional. Wird ein Summary eingegeben, so wird dieses anstatt des Inhalts angezeigt und darunter der anklickbare Text “Artikel ansehen”. Ein Klick darauf zeigt dann den eigentlichen Inhalt des Blocks an.

Einen Block-Namen muss man angeben, weil über diesen der Block später referenziert werden kann ([block]<blockname>[/block]).

Schließlich muss man den Block natürlich auch mit Inhalten füllen.

Hat man den Block erstellt, klickt man auf den Button “Teilen”, damit die Arbeit gespeichert wird. Der Block ist nun sofort nutzbar.

webs02

Klickt man in der Liste der Blöcke auf den Block-Namen, wird der Block angezeigt.

webs03

Bei diesem Beispiel-Block sieht man auch schon einige der Besonderheiten von bbCode/Hubzilla-Flavour. So sind “Features von Hubzilla” und “Got Zot?…” anklickbar und führen zu den entsprechenden Hilfeseiten des Hubs, auf welchem sich der Block befindet. Das ist möglich, weil hier die Observer-Tags verwendet wurden:

[zrl=[baseurl]/help/features]Features von Hubzilla[/zrl]

und

[zrl=[baseurl]/help/what_is_zot]Got Zot? Hast Du schon Zot? Wenn nicht wird es Zeit.[/zrl]

Den Beispiel-Block verwenden wir hier zunächst einmal als eigentlichen Inhalt einer Beispiel-Webseite.

Ein Block allein macht aber nicht unbedingt gleich eine “Webseite”. Also erstellen wir noch ein paar weitere Blöcke, die wir letztlich für unsere Webseite nutzen.

So kann zum Beispiel ein Menü mit Links zu anderen Seiten sinnvoll sein. Solch ein Block lässt sich gut auch in einer Seitenleiste unterbringen. Als Beispiel erstelle ich hier eine Liste (nicht als sortierte oder unsortierte Liste, sondern aus einfachen Zeilen) von Links zu den Arbeitsversionen der Hubzilla-Hilfe (deutsch und englisch), zur Hubzilla KnowledgeDB und zur Hubzilla-Webseite.

Bei diesem Block vergebe ich auch einen Titel “Links” und gebe ihm den Namen “links01”.

webs04

webs05

Und um es “bunt” zu gestalten nun noch ein Block, der eine Grafik enthält. Ich nutze einfach das Profilbild des Tutorial-Kanals. Hier vergebe ich wieder keinen Titel und nenne den Block “tutimg”.

webs06

Der Fantasie sind keine Grenzen gesetzt. Man kann beliebig viele Blöcke mit verschiedensten Inhalten erstellen und aus diesen später die verschiedensten Webseiten zusammenbauen.

Menüs

Ein weiteres Gestaltungselement sind Menüs. Den Block “links01” hätten wir auch als Menü verwirklichen können. Ach, was solls? Bauen wir doch einfach ein Menü mit genau den selben Links.

Auch ein Menü benötigt zwingend einen eindeutigen Namen, damit es später referenziert werden kann (). ich nenne es “wichtigelinks”.

webs07

Es ist auch möglich, in diesem Menü später weitere Lesezeichen abzulegen (sofern die App “Lesezeichen” installiert ist). Diese Option lassen wir jetzt zunächst ausgeschaltet.

Durch einen Klick auf den Button “Absenden und fortfahren” wird das Menü angelegt.

webs08

Danach müssen wir den ersten Menüeintrag erstellen. Dieser benötigt nun ganz klar einen Titel, welcher im Menü letztlich als anklickbarer Text erscheint. Hier also als Beispiel “Hubzilla-Hilfe” für den Eintrag, der zur Webseite https://help.hubzilla.hu/führen soll. Für die Sortierung der Menüeinträge kann nun auch die Position des Eintrags in der Liste festgelegt werden (“Reihenfolge in der Liste”). Hier lassen wir die Null stehen, denn es soll der erste Menüeintrag sein. Der Schalter “Magic-Auth verwenden, falls verfügbar” kann eingeschaltet bleiben. Bei Seiten, die nicht auf einem Hub liegen, geschieht ohnehin nichts. Führt der Link aber zu einem anderen Hub, so wird man durch Wahl des Menüpunkts automatisch mittels Magic-Auth fernauthentifiziert und kann Inhalte sehen, die für nicht angemeldete Nutze unter Umständen nicht sichtbar wären.

Man kann nun auch noch festlegen, ob das Ziel in einem neuen Browserfenster/Tab geöffnet werden soll. Für die hier gewählte externe Webseite wähle ich die Option einmal aus, damit die Hubzilla-Webseite mit dem Menü durch den Klick nicht “verschwindet”.

webs09

Jetzt haben wir zwei Möglichkeiten:

  1. Wir klicken auf den Button “Absenden und fortfahren”. Damit wird der Eintrag gespeichert und wir bekommen eine neue leere Eingabemaske für einen weiteren Eintrag.
  2. Wir klicken auf den Button “Absenden und fertigstellen”. Damit wird der Eintrag gespeichert und wir verlassen den Menü-Editor (wir können das Menü aber später weiter bearbeiten).

Nachdem wir alle Einträge erstellt haben, ist das Menü fertig.

webs10

Wir können es nun immer wieder an verschiedenen Stellen der Webseite verwenden.

Layouts

Ein mächtiges Gestaltungselement sind die Layouts. Sie beschreiben, wie die Webseite schließlich aussehen soll. Mit den Layouts baut man im Prinzip die Webseite aus den gewünschten Elementen zusammen.

Für die Layout-Beschreibung kommt die Comanche-Layout Beschreibungssprache zum Einsatz.

Comanche ist eine bbCode-ähnliche Auszeichnungssprache, mit der aufwendige und komplexe Webseiten erstellt werden können, indem sie aus einer Reihe von Komponenten zusammengesetzt werden, von denen einige vorgefertigt, und andere selbst definiert werden können.

Comanche legt fest, welche Inhalte in den verschiedenen Bereichen der Seite erscheinen sollen. Die verschiedenen Bereiche haben unterschiedliche Bezeichnungen, und diese Bezeichnungen können sich je nach gewählter Layoutvorlage ändern.

Aktuell gibt es fünf verschiedene vordefinierte Vorlagen: default, full, choklet, redable und zen, wobei choklet in sechs verschiedenen “Flavours” daher kommt (default, bannertwo, three, edgestwo, edgesthree und full).

Um eine Layout-Vorlage auszuwählen, verwendet man die Tags [template][/template]. Im Fall von choklet wird der “Geschmack” (Flavour) über das öffnende Tag festgelegt [template=<flavour>]choklet[/template]. Lasst man für choklet die Auswahl des Flavour weg, wird “default” verwendet.

Bereiche

Es gibt verschiedene Bereiche einer Webseite.

bereiche

Die Region [htmlhead][/htmlhead] kann dazu verwendet werden, andere css- und js-Definitionen zu verwenden. Derzeit werden als Standard jquery (js), bootstrap (css/js) und foundation (css/js) verwendet.

Diese Region wird nicht dargestellt und dient den Zwecken, welche der gleichnamige Bereich in HTML-Dateien ebenfalls erfüllt.

<head>
  ...  
</head>
Vorlagen
  1. default verwendet folgende Bereiche: nav, aside (mit fester Breite), content und footer
  2. full verwendet folgende Bereiche: nav, content, footer
  3. redable zum Lesen längerer Texte hat keinen nav Bereich und verwendet folgende Bereiche: aside, content und right_aside
  4. zen ist eine völlig leere Vorlage und verwendet lediglich den content Bereich.
  5. choklet ist eine floating Layoutvorlage in verscheidenen Flavours:
    1. default verwendet folgende Bereiche: nav, aside, content und footer
    2. bannertwo verwendet folgende Bereiche: banner, nav, aside, content und footer
    3. three verwendet folgende Bereiche: nav, aside, content, right_aside und footer
    4. edgestwo verwendet folgende Bereiche: (fixed size) nav, aside und content
    5. edgesthree verwendet folgende Bereiche: (fixed size) nav, aside, content und right_aside
    6. full verwendet folgende Bereiche: (fixed size) nav, (darunter!) banner, aside, content und right_aside

In die einzelnen Bereiche, die sich aus der gewählten Vorlage ergeben, können nun Blöcke, Menüs und Widgets eingefügt werden. Schema:

[region=<bereich>]

[block]<block>[/block]
[menu]<menü>[/menu]
[widget]<widget>[/widget]

[/region]

Es können hier den Blöcken auch Klassen aus der CSS-Definition zugewiesen werden ([block=<klasse>]<block>[/block]).

Ebenso ist es möglich, Variablen, die für die Darstellung genutzt werden, zu definieren ([var=<variable>]<variablenwert>[/var]).

Widgets

Widgets sind ausführbare Anwendungen, die vom System bereitgestellt werden und die man auf der Seite platzieren kann. Einige Widgets benötigen Argumente, mit denen das Widget an einen bestimmten Zweck angepasst werden kann. System-Widgets sind hier aufgelistet. Widgets können auch von Plugins, Themes oder dem Website-Administrator erstellt werden, um zusätzliche Funktionen bereitzustellen.

Widgets und Argumente werden mit den Tags “widget” und “var” angegeben.

[widget=<widgetname>][var=<variable>]<variablenwert>[/var][/widget]

WidgetnameBeschreibungVariable/Argument
clockfügt eine digitale Uhr einmilitary (1 oder 0) – 24-Stunden-Zeit im Gegensatz zu AM/PM verwenden
profilezeigt eine Profil-Seitenleiste auf Seiten an, die Profile laden
tagcloudeine Tagcloud der Elemente einer Webseite anzeigencount - – Anzahl der Objekte, die zurückgegeben werden sollen (Standardwert 24)
collectionsDatenschutzgruppenauswahl für den aktuell angemeldeten Kanalmode - je nach Modul einer von “conversation”, “group”, “abook”
suggestionsVorschläge von Freunden für den aktuellen Kanal, in dem man angemeldet ist
followzeigt ein Textfeld an, um einem anderen Kanal zu folgen
notesPrivater Notizbereich für den aktuellen angemeldeten Kanal, wenn die Funktion „private_notes“ aktiviert ist
savedsearchNetzwerk-/Matrixsuche mit Speicherung – Sie müssen angemeldet sein und die Suchfunktion muss aktiviert sein
filerAusgewählte abgelegte Elemente aus dem Netzwerk-/Matrix-Stream – Anmeldung erforderlich
archiveDatumsbereich-Auswahl für Netzwerk- und Kanalseitenwall – 1 oder 0, Beschränkung auf Pinnwandeinträge oder Netzwerk-/Matrix-Posts (Standard)
fullprofileidentisch mit “profile”
categoriesKategorienfilter (Kanalseite)
tagcloud_wallTagcloud nur für Kanalseitelimit – Anzahl der zurückzugebenden Tags (Standardwert 50)
catcloud_wallKategorie-Cloud für Kanal-Seitenkategorienlimit – Anzahl der zurückzugebenden Kategorien (Standardwert 50)
affinityAffinitätsregler für Netzwerkseite – Anmeldung erforderlich
settings_menuSeitenmenü für die Einstellungsseite, muss angemeldet sein
design_toolsMenü für Design-Tools zum Erstellen von Webseiten, Anmeldung erforderlich
findpeopleTools, um andere Kanäle zu finden
photo_albumsListe der Fotoalben des aktuellen Seiteneigentümers mit Auswahlmenü
vcardMini-Profil-Seitenleiste für die Person von Interesse (Seiteninhaber, was auch immer)
dirsafemodeAuswahlwerkzeug für Verzeichnisse – nur auf Verzeichnisseiten
dirsortAuswahlwerkzeug für Verzeichnisse – nur auf Verzeichnisseiten
dirtagsVerzeichnis-Tool – nur auf Verzeichnis-Seiten
menu_previewVorschau eines Menüs – nur auf Menüseiten bearbeiten
chatroom_listListe der Chatrooms für den Seiteninhaber
bookmarkedchatsListe der auf dieser Website für den aktuellen Hub gesammelten Chatrooms mit Lesezeichen
suggestedchats„interessante“ Chatrooms, die für den aktuellen Hub ausgewählt wurden
itemzeigt ein einzelnes Webseitenelement nach Seiten- oder Seitentitel anchannel_id - Kanal, dem der Inhalt gehört, standardmäßig ist dies die profile_uid
mid - message_id der anzuzeigenden Webseite (muss eine Webseite sein, kein Konversationselement)
title – URL-Seitentitel der Webseite (entweder „title“ oder „mid“ muss angegeben werden)
photodisplay a single photosrc - URL des Fotos, muss http oder https sein
zrl - Verwenden Sie einen authentifizierten zid-Link
style – CSS-Stilstring
photo_randZeigen Sie ein zufälliges Foto aus einem Ihrer Fotoalben an. Fotogenehmigungen werden berücksichtigt.album – Name des Albums (dringend empfohlen, wenn Sie viele Fotos haben)
scale – in der Regel 0 (Originalgröße), 1 (1024 Pixel), 2 (640 Pixel) oder 3 (320 Pixel)
style – CSS-Stilstring
channel_id – falls nicht Ihre eigene
random_blockZeigt ein zufälliges Blockelement aus Ihrer Sammlung von Design-Tools für Webseiten an.contains - nur Blöcke zurückgeben, die die Zeichenfolge „contains“ im Blocknamen enthalten
channel_id - falls nicht Ihre eigene
tasklisteine Aufgabe oder To-do-Liste für den aktuell angemeldeten Kanal bereitstellenalle – abgeschlossene Aufgaben anzeigen, wenn „alle“ ungleich 0 ist
forumseine Liste der verbundenen öffentlichen Foren mit nicht angezeigten Zählungen für den aktuell angemeldeten Kanal bereitstellen
activityeine Liste der Autoren von ungelesenen Netzwerkinhalten für den aktuell angemeldeten Kanal bereitstellen
albumstellt ein Widget bereit, das ein vollständiges Fotoalbum aus Alben enthält, die dem Seiteninhaber gehören; dies kann zu groß sein, um in einem Seitenleistenbereich dargestellt zu werden, und wird am besten als Inhaltsbereich-Widget implementiertalbum – Name des Albums
title – optionaler Titel, falls nicht vorhanden, wird der Name des Albums verwendet
channel_activityWidget, das einen Überblick über Kanäle bietet, die Ihre Aufmerksamkeit erfordern, und schnelle Links zu Inhalten, die Sie kürzlich erstellt oder bearbeitet haben
hq_controlsSteuertasten für das HQ-Modul
hq_messagesSchneller Zugriff auf Nachrichten, Direktnachrichten, mit Sternchen markierte Nachrichten (falls aktiviert) und Benachrichtigungen
help_indexIndex der Hilfeseiten
new_membernützliche Links für neue Mitglieder anzeigen, um ihnen den Einstieg zu erleichtern
notificationszeigt alle Arten von Benachrichtigungen an
public_stream_tagsÖffentliche Stream-Tags in einer Cloud anzeigen
wiki_listein Menü mit Links zu allen vorhandenen Wikis anzeigen
zcardIhre Standard-Profilkarte mit Ihrem Titelbild
activity_filtersFilter für den Netzwerk-Stream
activity_ordersortieren Sie den Netzwerk-Stream nach dem Datum des Beitrags, dem letzten Kommentar oder dem Datum, an dem der Thread beendet wurde

Kommentare

Das Tag “comment” wird zur Abgrenzung von Kommentaren verwendet. Diese Kommentare werden auf der gerenderten Seite nicht angezeigt ([comment]<kommentar>[/comment]).

Bedingte Ausführung

Man kann ein ‘if’-Konstrukt verwenden, um Entscheidungen zu treffen. Diese basieren derzeit auf der Systemkonfigurationsvariable oder dem aktuellen Observer (Hub).

[if $<systemvariable>]

[else]

[/if]

Es sind auch komplexere Vergleiche möglich:

[if $<systemvariable> == <wert>]		// ist gleich
    
[/if]

[if $c<systemvariable> != <wert>]		// ist ungleich
    
[/if]

[if $<systemvariable> {} <wert-array> ]		// das Array enthält
    .
[/if]

[if $c<systemvariable> {*} <wert>]		// der Wert enthält
    
[/if]

Seiten

Seiten sind schließlich dazu da, unsere Inhalte als Webseite darzustellen.

webs11

Auch bei den Seiten haben wir die Auswahl der Auszeichnungssprache für den Inhalt.

Außerdem wählen wir hier das passende Layout aus der Auswahlliste “Seiten-Layout”. Hier sind “Standard” und die von uns selbst erstellten Layouts zur Auswahl vorhanden.

Wir können einen Titel angeben. Das ist bei “Seiten” durchaus sinnvoll, weil dieser Titel in der Titelleiste des Browsers bzw. des Browsertabs angezeigt wird. Eine Zusammenfassung kann ebenfalls angegeben werden (“Summary”). Dann muss der “Link zur Seite” angegeben werden.Dies ist Bestandteil der URL, unter welcher wir später unsere Webseite erreichen können (<hub>/page/<kanalname>/<link_zur_seite>).

In den eigentlichen Inhaltsbereich können wir nun den Inhalt der Webseite hineinschreiben. Dieser wird dann im Inhaltsbereich ([region=content][/region]) dargestellt, wenn wir im ausgewählten Layout für diesen Bereich die Variable $content angegeben haben.

Da wir (als Beispiel für den Content eines Inhaltsbereichs) einen Block mit dem eigentlichen Inhalt einer Webseite angelegt haben, könnten wir für die Seite ein eigenes Layout erstellen und dort

[region=content]

[block]was-ist-hubzilla[/block]

[/region]

für den Inhaltsbereich festlegen. Für weitere Webseiten müssten wir dann jeweils eigene Layouts erstellen, die im Inhaltsbereich jeweils einen anderen, ebenfalls zu erstellenden Block aufweisen.

Beim erstellen der Seite würden wir dann immer das etsprechende Layout auswählen und etwas beliebiges (der Inhalt darf nicht leer sein) in den Inhalt der Seite schreiben (dieser wird, weil die Variable $content nicht verwendet wird nicht angezeigt). Das kann praktikabel sein, wenn man nur wenige Seiten anbieten möchte und sich die Inhalte der Seitenleisten etc. voneinander (ggf. nur geringfügig) unterscheiden.

So habe ich es bei der Beispiel-Organisations-Seite gemacht.

Praxisnäher und systematisch besser ist es aber, den eigentlichen Seiteninhalt in die eigentliche “Seite” zu schreiben und im Layout über $content zu referenzieren. Insbesondere wenn das “Drumherum” der Webseiten gleich bleiben soll, auch wenn verschiedene Inhalte gezeigt werden sollen.

Webseiten erstellen

Nun habe ich die grundlegenden Werkzeuge, die Hubzilla für die Webseiten-Erstellung bereithält, vorgestellt. Jetzt geht es um die Überlegungen, die man anstellen muss, um eine Webseite zu erstellen, um die grundlegenden Konzepte, die sich aus dem Hubzilla-Webseiten-System ergeben und um ein paar konkrete Beispiele.

Wer eine Webseite erstellen möchte, sollte selbst wissen, was er möchte, welche Informationen er wie anbeten möchte. Sich darüber Gedanken zu machen kann ich niemanden abnehmen. Nun ist es an Euch, eine Idee zu entwickeln und Inhalte zu schaffen.

Aber ein grundlegendes Schema, eine sinnvolle Strategie kann ich hier noch aufzeigen.

Mehrfach verwendete Inhalte / einmalig verwendete Inhalte

Webseiten bieten oft Inhalte an, die auf verschiedenen Unterseiten immer wieder angezeigt werden. Oftmals und gerne in Seitenleisten, im Footer oder auch immer an der selben Stelle im Inhaltsbereich. Für solche Inhalte bietet es sich an jeweils einen Block zu erstellen, den man dann immer wieder verwenden kann.

Möchte man den Haupt-Inhalt einer Seite ebenfalls mehrfach verwenden, so bietet es sich an, diesen nicht in jeder einzelnen “Seite” einzugeben, sondern ihn auch als Block zu erstellen.

Menüs, Link-Listen etc. kann man sehr gut mit dem Werkzeug “Menüs” erstellen. Allerdings ist man dann auf eine vertikale Darstellung festgelegt (das Theme redbasic soll Menüs zwar auch horizontal darstellen können, das hat bei mir aber bislang nicht funktioniert). Für Linklisten ist das Menü sehr gut geeignet, weil man dort auch einfach weitere Einträge hinzufügen kann.

Ich persönlich mag aber auch horizontale Menüleisten. Diese muss man dann “zu Fuß” als Block erstellen. Und dies am besten als HTML, weil die [url][/url] Tags ihre Ziele in neuen Fenstern bzw. Tabs öffnen.

Inhalte, welche nur einmalig, also auf einer einzigen Webseite angeboten werden sollen, sind am besten in der Seite selbst untergebracht und werden dort über die Variable $content im Layout angezeigt.

Die Darstellung der Inhalte

Für die Darstellung der Inhalte sind die Layouts zuständig. Hier muss man sich das für die eigenen Zwecke geeignetste Layout aussuchen (auf die Erstellung eigener Layouts gehe ich hier nicht ein, dieser Text beschreibt nur die Grundfunktionalität). Etliche unterscheiden sich nicht stark voneinander. Es ist dann auch ein wenig Ausprobieren angesagt. Wichtig ist ein Augenmerk auf die vom gewählten Layout angebotenen Bereiche, in die man seine Blöcke und Inhalte einbauen kann.

Wer sich fragt, ob das minimalistische Template “zen” überhaupt einen Sinn ergibt, der schaut sich einmal die Webseite des Hubzilla-Projekts an. Diese wird nämlich mit Hubzilla angeboten und nutzt genau dieses Theme: Hubzilla-Projekt.

hz-webseite

Wie diese Seite erstellt ist, wie sie sich zusammensetzt und welche Methoden verwendet wurden, ist übrigens kein Geheimnis. Man kann den “Unterbau” dieser Webseite im öffentlichen Repo anschauen, was sinnvoll ist, weil man dort Anregungen für eigene Projekte finden kann: hubzilla-website.

Sonst noch

Hubzilla wäre nicht Hubzilla, wenn da nicht noch ein wenig mehr ginge. Abgesehen davon, dass man Hubzilla(!)-Webseiten auch im- und exportieren kann (mittels Cloud oder als ZIP-Datei), lässt sich mit den erstellten Dingen auch noch mehr anfangen.

Die Blöcke, die wir für unsere Webseite erstellt haben, stehen nämlich auch im PDL-Editor zur Verfügung. Hier können wir sie in den verschiedenen MODULEN unterbringen. Das kann man z.B. auch dafür nutzen, Webseiten in den eigenen Kanal so zu integrieren, dass sie sich eher wie ein Bestandteil des Kanals anfühlen. Baut man nämlich z.B. Blöcke mit Navigationselementen auch in die MODULE des Kanals ein, so ist eine übergreifende Navigation sehr einfach und man kann so auch einen direkten Link zu eigentlichen Hubzilla-Webseiten für Besucher vorhalten. So habe ich das Beispielsweise für mein Blog “PepeCyBs Welt” gemacht, den ich kürzlich von ursprünglich WordPress über ein statisches Blogsystem zu Hubzilla umgezogen habe.

pcw_blog

Fazit

Mit Hubzilla Webseiten zu erstellen ist keine schwarze Magie, sofern man über ein wenig Grundwissen verfügt. Grundlegende Kenntnisse in HTML (gerne auch in CSS und Javascript) genügen völlig. Es ist kein “Mausschubser-System”, aber es ist trotzdem komfortabel und einfach zu bedienen… und es ist beinahe nichts unmöglich. Wer in HTML so richtig fit ist, kann so ziemlich alles als Hubzilla-Webseite realisieren. Und wer sich überdies auch noch auf die PHP-Programmierung versteht, kann sogar dynamische Webseiten recht einfach anbieten. Es gibt kaum Grenzen. Wenn man den Bogen raus hat, kann man sehr gut auch Webseiten, die man eigentlich z.B. mit WordPress, Joomla!, Drupal, Typo2 oder einem anderen CMS verwirklichen möchte, auch sehr, sehr gut mit Hubzilla realisieren.

Auf die Feinheiten und Spezialitäten (eigene CSS, eigene js-Bibliotheken, Einbinden fremder js-Bibliotheken und das Erstellen von eigenen Templates) gehe ich in diesem Artikel nicht ein. Das hätte ihn noch viel länger gemacht. Das hebe ich mir lieber für spätere Artikel auf.


Kleines Dessert gefällig?

Nur mal so, um zu zeigen, was mit einfachen Mitteln machbar ist, ohne zu sehr in die internen Tiefen des Webseiten-Systems abzutauchen:

Eine Webseite im Standard-Stil mit dem Lorem-Ipsum-Block in der Seitenleiste, einem Inhaltsbereich, bei dem einige Elemente mittels CSS dekoriert sind… und unter dem Inhalt eine Zeile, welche Datum und Uhrzeit des Abrufs der Webseite anzeigt, was mit PHP verwirklicht wird (ein “Klassiker”).

Weil wir PHP nutzen, müssen wir uns vergewissern, ob der Admin für unseren Kanal das Ausführen von Code erlaubt hat. Als Standard ist das nämlich nicht erlaubt. Sind wir selbst Admin, ist es kein Problem. Als Gast müssen wir uns an den Hub-Admin wenden. Wenn man begründen kann, wozu man das braucht und freundlich und nett fragt, sollte es aber keine Probleme geben.

Jetzt erzeugen wir den Block, welcher den Zeitpunkt des Seitenaufrufs anzeigen soll. Typ des Seiteninhalts ist hier also “PHP”. Als Block-Namen habe ich “abgerufen” eingegeben.

webs-dessert01

Der PHP-Code ist ein “alter Bekannter”, der in vielen Tutorials verwendet wird. Mittels der Funktion echo wird ein Paragraph ausgegeben (<p></p>), welcher statischen Text (“Seite abgerufen” und “Uhr”) und dynamisch erzeugten Text (über die date Funktion) enthält (der Funktion wir ein Format-String übergeben, der angibt, was ausgegeben werden soll… aus diesem Grund sind die Buchstaben des einfachen Strings “um” gequotet, also als “\u\m”).

Ist der Block erzeugt, kann man ihn zur probe auch sofort aufrufen. Und tatsächlich zeigt er dann den genauen Zeitpunkt des Aufrufs an.

Nun erzeugen wir ein Layout für unser “Dessert”, wobei wir in der [region=content] unter die Inhalts-Variable $content noch den gerade erzeugten PHP-Block abgerufen packen.

webs-dessert02

Zum Schluss wird nun die neue Seite erzeugt. Inhaltstyp ist HTML, weil ja noch css-Styles eingebaut werden sollen.

Ich verwende den ersten Teil des Textes “Was ist Hubzilla?” und möchte, dass der Titel (<h1>) mit roter Schrift erscheint, dass der eigentliche Text in einem Paragraphen braun ist und dass Links in grüner Farbe zu sehen sind.

Die Style-Berschreibung wird einfach vor den eigentlichen Inhalt gesetzt (<style></style>).

<style>
		h1 { 
  			color: red;
  		}
		p {
  			color: brown;
		}
               a {
                        color: green;
                        background-color: beige;
               }
</style>

<h1 id='was-ist-hubzilla'>Was ist Hubzilla?</h1>

<p>Hubzilla ist eine dezentrale  Kommunikations- und Publishing-Plattform. Es ermöglicht Dir die volle  Kontrolle über all Deine Kommunikation mit Hilfe von automatischer  Verschlüsselung und detaillierter Zugriffskontrolle. Du, und <em>nur</em> Du, entscheidest, wer Deine Beiträge sehen darf. Hubzilla ist der  Nachfolger, der seit einigen Jahren erfolgreichen Plattformen Friendica  und RedMatrix.</p>
<p><a href='https://klacker.org/help/features'>Features von Hubzilla</a></p>

webs-dessert03

Die Seite sieht dann aufgerufen so aus:

webs-dessert04

Oder im Echtbetrieb so: Seite abgerufen am/um.

Na? Kein großes Ding, oder? Selbst mit einfachen Mitteln, kann man mit Hubzilla recht ansehnliche und komfortable Webseiten erstellen. Vielleicht macht das ja Appetit auf mehr…

Mit Hubzilla eine Organisations-Seite im Fediverse anbieten

Hier nun das angekündigte Tutorial, in welchem ich eine Seite (als Ersatz für Facebook-Seiten… und mit deutlich mehr Möglichkeiten) für eine Organisation erstelle.

Die Organisation dient hier nur als Beispiel. Es kann nach dem Prinzip auch eine Seite für eine Firma, ein Geschäft, eine Band, einen Künstler, Schriftsteller… für einfach alles erstellt werden.

Ich habe mich für eine Organisation entschieden, weil ich einmal mit einigen Mitstreitern eine gegründet habe. Sie ist allerdings inzwischen aufgelöst und die Webpräsenz (ehemals WordPress) nur noch als statisches Archiv vorhanden. Ich habe sie gewählt, weil ich mir keine Inhalte aus den Fingern saugen muss und es unschädlich ist, wenn ein Hubzilla-Kanal für sie existiert, obwohl es sie nicht mehr gibt.

Kanal erstellen

Kanal ist das erste Stichwort! Natürlich sollte man sich für ein solches Projekt einen Kanal bei Hubzilla anlegen. Wie das funktioniert kann man in der Hubzilla KnowledgeDB oder im Hubzilla Benutzerhandbuch nachlesen.

stut01

Je nach gewünschter Funktionalität muss man die passende Kanalrolle auswählen. Generell ist “Öffentlich” für solche Zwecke aber eine gute Wahl.

Profil “schärfen”

Wichtig ist nun, das Profil wirklich mit sinnvollen Informationen zu bestücken. Die Kurzbeschreibung ist ein Muss, weil sie in der Profilkarte erscheint und jeder Besucher so sehen kann, wo er denn gelandet ist.

stut02

Wenn die Veröffentlichung der Anschrift gewünscht ist (bei Organisationen sinnvoll und auch erforderlich), muss im Profil dann auch dieser Bereich ausgefüllt werden.

stut03

Schlüsselwörter für das Verzeichnis helfen, dass der Kanal auch gefunden werden kann.

Jetzt sollten auch noch ein Profilbild (z.B. das Logo der Organisation) und ein Header-Bild erstellt, hochgeladen und als solche verwendet werden.

stut06

stut07

Theme anpassen

Anschließend muss man sich Gedanken über die grundlegende Optik, insbesondere die Farbgebung Gedanken machen. Hier sollte man das Theme entsprechend anpassen.

Da meine Organisation im Logo die Farben Grün, Weiß und Schwarz nutzt, habe ich die “Primary theme color” auf ein entsprechendes Grün gesetzt und für einen etwas geringeren Kontrast die Hintergrundfarbe auf ein recht helles Grau. Hier kann und muss jeder selbst entscheiden, wie sehr er die Farben beeinflussen möchte.

stut10

Apps installieren

Jetzt müssen noch wichtige Apps installiert werden. Auf jeden Fall die ActivityPub App, damit der Kanal auch mit allen Diensten im Fediverse interagieren (föderieren) kann. Außerdem werden die Apps “Webseiten” und “PDL-Editor” benötigt. Möchte man ein Hilfe-System, eine FAQ oder ein richtiges kleines Wiki anbieten, dann installiert man auch noch die App “Wiki”. Sollen Artikel auf der Seite veröffentlicht werden, installiert man außerdem die App“Artikel“.

Auch eine Seite in einem Sozialen Netzwerk braucht sowas wie eine Homepage, eine Startseite. Und die erstellen wir jetzt.

Webseiten erstellen

Dafür ruft man aus dem App-Menü (⋮) die Webseiten-App auf.

stut17

Blöcke erstellen

Als erstes erstellt man nun einen neuen Block, welcher den Inhalt der Startseite enthält. Man hat die Wahl zwischen bbCode, HTML, Markdown, reinen Text, (Comanche Layout) und PHP für die Darstellung und Gestaltung des Inhalts. Ich habe mich für bbCode entschieden, weil dies für die Darstellung des Inhalts völlig genügt und bbCode quasi “das Blut in den Adern von Hubzilla” ist.

Einen Titel muss man hier nicht vergeben. Der erste Block, den man in einem Kanal erstellt, bekommt automatisch den Namen “main” (diesen benötigt man, um den Block später zur Nutzung zu referenzieren).

stut18

Nach dem Eingeben des Inhalts klickt man nun auf “Teilen” und der Block ist erstellt.

Blöcke mit dem PDL-Editor in Hubzilla-Seiten einbauen

Ich habe beschlossen, dass der Inhalt der Startseite nicht nur auf der eigentlichen Startseite, sondern auch in der Profilansicht angezeigt werden soll, weil darin der Zweck der Organisation beschrieben wird, was gut zum Profil passt.

Damit der Block “main” in der Profilansicht angezeigt wird, ruft man den PDL-Editor auf. Im Hauptmenü des PDL-Editors (zentriert am unteren Bildschirmrand), wählt man zunächst im Menüpunkt “MODULES” das Modul “profile”. In diesem Modul wählt man nun im Menüpunkt “ITEMS” das Modul “main”, welches man ja selbst erstellt hat, aus und schiebt es per Drag-and-Drop in die Mitte (Inhaltsbereich) an die oberste Stelle. Damit die Änderungen übernommen werden, muss man nun noch im Menü auf “APPLY” klicken… und die Sache ist erledigt.

stut19

stut21

Ruft man nun das Profil des Kanals auf, so wird im Inhaltsbereich der Inhalt des Blockes “main” angezeigt.

stut22

Ein Navigations-Menü als Block

Weil bei der Organisationsseite noch weitere andere Inhalte und Seiten angezeigt werden sollen, benötigt man ein Navigations-Menü. Dieses kann man über die Funktion “Menüs” der App “Webseite” erzeugen. Es wird ein vertikales Menü als unsortierte Liste erzeugt, das man an verschiedenen Stellen in die Seite einbauen. Mir schwebte aber ein horizontales Menü vor, das auf jeder relevanten Seite an oberster Stelle des Inhaltsbereichs erscheint. Also habe ich das Menü als normalen Block selbst erstellt.

Achtung: Auch hier kann man für den Inhalt bbCode wählen. Allerdings hat das den Nachteil, dass Links, die zu anderen selbst erstellten Webseiten führen, in einem neuen Tab geöffnet werden, wenn man die Tags [url=][/url] verwendet. Für dieses Tag-Paar gibt es nicht die Option “target=_self”. Hier ist es also sinnvoll, HTML zu verwenden.

stut23

Das Menü habe ich nun mit nebeneinander stehenden Menüpunkten, getrennt durch ein Leerzeichen, einen Stern und einem weiteren Leerzeichen gestaltet und die einzelnen Menüpunkte nach dem Schema

<a href="https://webseite.tld" target="_self">Menüpunkt</a>

verlinkt.

Um z.B. auf der Profilseite das Menü zur Verfügung zu stellen, schiebt man im PDL-Editor das selbst erstellte ITEM “menu” im MODUL “profile” an die oberste Stelle und klickt auf APPLY. Nun erscheint das Navigationsmenü auf der Profil-Seite.

Startseite mit dem Block “main”

Der Block “main” sollte aber nun auch die Startseite der Webseite sein. Der Inhalt muss also, unabhängig von den hubzilla-eigenen Seiten der Apps als Webseite angezeigt werden. Und das soll in einem konsistenten Layout geschehen. So soll auch auf solchen Webseiten in der linken Seitenleiste die Profilkarte erscheinen und die Verbindungen des Kanals.

Ein Layout erstellen

Was man braucht, ist also ein Layout. Ein solches kann man mit der App “Webseiten” erstellen.

stut24

Regionen

Layouts beschreiben den grundsätzlichen Aufbau einer Hubzilla-Webseite und die Inhalte der verschiedenen Regionen auf dem Bildschirm.

[region=banner][/region] ist der obere Bereich, wie er auf der Kanalseite angezeigt wird. Dort zeigt er das Cover-Foto an.

Das bietet sich für die Webseiten ebenfalls an. Also beginnt unser Layout mit den Zeilen

[region=banner]
[widget=cover_photo][/widget]

Als nächstes wird die Gestaltung der linken Seitenleiste, also der Region [region=aside] [/region] festgelegt.

Dort sollte ja nun die Profilkarte und die Liste der Verbindungen angezeigt werden.

Die Layout-Beschreibung dafür ist

[region=aside]
[widget=fullprofile][/widget]
[widget=common_friends][/widget]
[/region]

Im Inhaltsbereich, also der Region [region=content] [/region] soll schließlich das Navigationsmenü und darunter der Inhalt des Blocks “main” zu sehen sein. Das codieren wir so:

[region=content]
[block]menubar[/block]
[block]main[/block]
[/region]

Für die rechte Seitenleiste [region=right_aside] [/region] ist mir noch nix eingefallen… die lassen wir also erstmal leer.

Der Inhalt des Layouts für die Startseite sieht also so aus:

[region=banner]
[widget=cover_photo][/widget]
[/region]
[region=aside]
[widget=fullprofile][/widget]
[widget=common_friends][/widget]

[/region]
[region=content]
[block]menubar[/block]
[block]main[/block]

[/region]
[region=right_aside]

[/region]

Das Layout braucht auch einen Namen, um es später für die Webseite referenzieren zu können. Hier habe ich den Namen “startseite” gewählt.

Ein Klick auf “Teilen” und das Layout für die Startseite ist erstellt.

Webseite erstellen

Nun muss nur noch aus den Einzelteilen die eigentliche Webseite erstellt werden. Dafür wählt man in der App “Webseiten” den Punkt “Seiten”.

Hier habe ich dann eine Webseite erstellt. Inhaltstyp habe ich bei bbCode belassen. Der ist in diesem Fall ohnehin unerheblich, weil der Inhalt der Webseite hier ja nicht erstellt wird, sondern im Block.

Bei Seiten-Layout wählt man nun das soeben erstellte Layout aus der Auswahlliste.

Bei der eigentlichen Webseite ist es auch sinnvoll, der Seite einen Titel zu geben, denn dieser erscheint bei der Ansicht im Titeldes jeweiligen Browser-Tabs.

Und ein Name muss vergeben werden. Da es die Startseite ist, habe ich “home” gewählt. Unter diesem Namen ist die Seite später aufrufbar (<hub>/page/<kanalname>/<titel>, also in meinem Fall https://klacker.org/page/exraucher_ig/home).

In unserem Fall ist der Inhalt unerheblich, er darf nur nicht leer sein. Ich habe einfach “main” hineingeschrieben.

stut25

Und nun wieder auf “Teilen” klicken… die Startseite ist fertig. Ruft man sie auf, sieht sie nun so aus:

Menü erweitern

Jetzt ist es an der Zeit, den Block “menubar” zu editiern und den Link “Startseite” mit dem Link zu der gerade erstellten Webseite zu hinterlegen.

In meinem Beispiel sieht der Block nun so aus:

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ Manifest ★ Aktuell ★ Positionen ★ Informationen

Und die Startseite so:

stut28

Weitere Seiten

Nach dem selben Schema habe ich dann auch die Seite “manifest” (Manifest / Vereinbarungen; Seitenlink: manivereinb) mit dem Inhalt als Block und dem identischen Layout (nur dass hier im Inhaltsbereich der Block “manifest” dargestellt wird) erstellt. Der Link zu der neuen Seite (das war einmal die Anzeige des Manifests der Organisation, also sowas wie bei einem Verein die Satzung) wurde in den Menüblock eingebaut:

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ <a href="https://klacker.org/page/exraucher_ig/mani-vereinb">Manifest</a> ★ Aktuell ★ Positionen ★ Informationen

Artikel mit der Artikel-App

Unter “Aktuelles” wurden bei der ursprünglichen Original-Seite, Artikel zu verschiedensten relevanten Themen angezeigt. Nun könnte man das auch als Webseite realisieren, aber es wäre ein hoher Aufwand, die Beiträge komfortabel zugänglich zu machen. Bei solchen Bereichen bietet es sich an, die hubzilla-eigene Funktionalität zu nutzen, nämlich die Artikel.

Ich habe zu Demonstrationszwecken die letzten beiden veröffentlichten Artikel in dem Kanal mit der App “Artikel” (muss installiert und aktiviert werden, sofern nicht schon geschehen) veröffentlicht. Dabei habe ich jeweils auch eine Kategorie angegeben, damit auf der Artikelseite auch die Kategorie-Anzeige zu sehen ist.

Damit sich die Seite der Artikel-App optisch und in der Art der Navigation in die Organisations-Seite einfügt, habe ich im PDL-Editor im MODUL “articles” den Menu-Bar Block wieder im Inhaltsbereich ganz oben eingefügt.

Artikel im Menü zugänglich machen

In den Menü-Bar Block wird nun noch der Link zur Artikel-App eingefügt:

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ <a href="https://klacker.org/page/exraucher_ig/mani-vereinb">Manifest</a> ★ <a href="https://klacker.org/articles/exraucher_ig">Aktuell</a> ★ Positionen ★ Informationen

stut30

Dokumente in der Cloud anbieten

Auf der Original-Webseite findet man unter dem Menüpunkt “Positionen” verschiedene Stellungnahmen der Interessengemeinschaft zu diversen Themen. Diese könnte man als einzelne Webseiten anbieten, aber ich habe mich entschlossen, die Beiträge (Stellungnahmen) mittel der Cloud-Funktionalität von Hubzilla zu verwirklichen. Zu diesem Zweck habe ich in der Cloud des Kanals einen öffentlich zugänglichen Ordner erstellt und in diesen die Texte als PDF-Dateien hochgeladen.

Cloud-Ordner im Menü zugänglich machen

Im PDL-Editor habe ich im MODUL “cloud” den Menü-Block wieder im Inhaltsbereich an die oberste Position gesetzt und schließlich den Link zu dem Ordner als Link in die Menü-Bar eingefügt:

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ <a href="https://klacker.org/page/exraucher_ig/mani-vereinb">Manifest</a> ★ <a href="https://klacker.org/articles/exraucher_ig">Aktuell</a> ★ <a href="https://klacker.org/cloud/exraucher_ig/Positionen">Positionen</a> ★ Informationen

stut31

Der Menüpunkt “Informationen” führte zu einer Sammlung von Flyern und Informations-Texten, die ich ebenfalls mit Hilfe der Cloud zur Verfügung stelle. Dafür habe ich einen weiteren Ordner erstellt (“Informationen”), die Dateien dort hochgeladen und im Menü-Block verlinkt.

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ <a href="https://klacker.org/page/exraucher_ig/mani-vereinb">Manifest</a> ★ <a href="https://klacker.org/articles/exraucher_ig">Aktuell</a> ★ <a href="https://klacker.org/cloud/exraucher_ig/Positionen">Positionen</a> ★ <a href="https://klacker.org/cloud/exraucher_ig/Informationen">Informationen</a>

stut32

Weitere Möglichkeiten

Die ursprüngliche Organisations-Seite bot auch ein Wiki an, das allerdings extern mittels MediaWiki betrieben wurde (wird!). Das könnte man in der Menü-Bar natürlich auch verlinken. Oder, wenn die Funktionalität der Wiki-App von Hubzilla ausreicht, kann man auch mit Hubzilla ein Wiki (z.B. auch als Hilfe-Seite oder für FAQ) erstellen und über das Menü zugänglich machen.

Aber das spare ich mir hier jetzt. Jeder ist eingeladen, eigene Ideen umzusetzen und dabei alle Funktionen von Hubzilla dazu zu verwenden.

Bei der Einbindung aller Apps sollte man nicht vergessen, den Menü-Block im entsprechenden MODUL mit dem PDL-Editor an oberster Stelle einzufügen.

Weil die Organisations-Präsenz ja aber auch ins Fediverse eingebunden ist, ist es sinnvoll, auch die Kanalseite im Menü-Block anzubieten, um ggf. Interaktion anzubieten (ist ja auch der Sinn von solchen Seiten). Also auch noch schnell eingebaut:

<a href="https://klacker.org/page/exraucher_ig/home">Startseite</a> ★ <a href="https://klacker.org/channel/exraucher_ig">Kanal</a> ★ <a href="https://klacker.org/page/exraucher_ig/mani-vereinb">Manifest</a> ★ <a href="https://klacker.org/articles/exraucher_ig">Aktuell</a> ★ <a href="https://klacker.org/cloud/exraucher_ig/Positionen">Positionen</a> ★ <a href="https://klacker.org/cloud/exraucher_ig/Informationen">Informationen</a>

stut33

Das war es jetzt erst einmal…

Das Ergebnis

Und so sieht ein nicht angemeldeter (nicht authentifizierter) Besucher die Seite:

stut34

Die Seite im Echtbetrieb kann man sich hier anschauen: ExRaucher (IG)

Ich hoffe, ich konnte zeigen, wie man die Entsprechung einer “Facebook-Seite” hervorragend - und mit wesentlich erweiterter Funktionalität - mit Hubzilla umsetzen kann. Man kann als Kanalbetreiber das Fediverse für die Zwecke der Organisation ganz normal nutzen, mit anderen interagieren und bietet Besuchern alle relevanten Informationen.

Fragen zu diesem Thema können im Forenkanal Pepes Hubzilla-Sprechstunde (hubzillasprechstunde@hub.hubzilla.hu) oder im Matrix-Raum Pepes Hubzilla-Hilfe (#pepes-hubzillahilfe:matrix.org) geklärt werden. Oder auch per DN an pepecyb@hub.hubzilla.hu .

Als nächstes folgt ein Artikel über die Nutzung der App “Webseiten”, in welchem ich näher auf die Struktur von Webseiten bei Hubzilla und die Realisierung bestimmter Ideen als Webseite eingehe.

Wiederholen (repeat) / Boosten von Beiträgen

Mit dem Wiederholen (Repeaten) von Beiträgen, wird der Beitrag an die eigenen Verbindungen verteilt. Kommentare landen (im Gegensatz zu geteilten Beiträgen) beim Original-Beitrag.

Wurde der Beitrag noch nicht wiederholt (keine Zahl neben dem Symbol), dann führt ein einfacher Klick zu einem Repeat.

wiederholen01b

Wurde der Beitrag bereits mindestens einmal wiederholt (Zahl neben dem Symbol), öffnet sich bei Klick ein Menü, welches anzeigt, von wem der Beitrag bereits wiederholt wurde. Ein Klick auf “+ Add yours” führt dazu, dass man selbst den Beitrag ebenfalls wiederholt.

wiederholen01a

Dieses Verhalten entspricht dem “Boosten”, wie man es z.B. von Mastodon oder den Forkeys kennt.

Ein Wiki mit Hubzilla

Ein Wiki mit Hubzilla

Mit Hubzilla kann man Wikis erstellen. Und das ist noch nicht einmal kompliziert. Hier nun eine kleine Anleitung, wie man dabei vorgehen kann.

Grundvoraussetzung für das Erstellen eines oder mehrerer Wikis ist die App “Wiki”. Diese muss installiert und zumindest im App-Menü zugänglich gemacht werden.

Nach dem Aufruf der App (<hub>/wiki/<kanalname>) landen wir auf der Übersichtsseite, auf welcher die vorhandene Wikis aufgeführt werden und die Möglichkeit besteht ein neues Wiki zu erstellen.

Beim ersten Aufruf ist es da natürlich so richtig leer.

wiki01

Um ein neues Wiki anzulegen, muss man auf den Button “+ Neu anlegen” klicken.

wiki02

Darauf öffnet sich die Eingabemaske für die Erstellung eines Wikis:

wiki03

Hier müssen wir dem Wiki einen Namen geben und uns für den grundsätzlichen Inhaltstyp entscheiden. Mit dem Inhaltstyp bestimmen wir, mit welcher Auszeichnungssprache die Inhalte der Wiki-Seiten formatiert werden. Zur Wahl stehen: Markdown, bbCode und Text (plain Text, also reiner Text ohne Formatierung).

wiki04

Wenn wir den Schalter “Inhaltstyp sperren” auf “Ja” stellen, dann muss jede Seite des Wikis den Inhaltstyp verwenden, welcher bei Erstellung des Wikis festgelegt wurde. Bleibt der Schalter auf “Nein” (das würde ich in der Regel empfehlen), so kann, beim Anlegen einer neuen Seite, für diese Seite auch ein anderer Inhaltstyp gewählt werden.

Schaltet man “Erzeuge einen Statusbeitrag für dieses Wiki” ein, so wird ein Beitrag über die Erstellung des Wikis im Stream geteilt.

Über das “Privacy Tool” (Vorhangschloss) können wir überdies festlegen, wem das Anschauen des Wikis überhaupt erlaubt ist.

Mit Klick auf den Button “Absenden” wird das Wiki erstellt und geöffnet.

wiki05

Es wird die Startseite “Home” im Ansichts-Modus angezeigt. Es gibt drei Modi für Wiki-Seiten. Einmal der bereits erwähnte Ansichts-Modus, in welchem die Seite fomatiert gerendert wird.

wiki06a

Dieser Modus dient zum Lesen. Dann gibt es den Bearbeitungs-Modus, welcher einen Editor zum Erstellen und Bearbeiten von Wikiseiten bereitstellt.

wiki06b

Schließlich gibt es noch den History-Modus. In diesem werden die Änderungen an der Wikiseite chronologisch aufgeführt.

wiki06c

Es bietet sich an, die Startseite (“Home”) als Index oder Inhaltsverzeichnis des Wikis zu gestalten. Dazu erstellt man zunächst eine Auflistung der geplanten Wiki-Seiten (man kann, wie ich es hier mache, den Index auch noch alphabetisch nach Anfangsbuchstaben unterteilen).

wiki07

wiki07a

Ebenfalls empfehlenswert ist es, im Eingabefeld unter dem Editor “Kurze Beschreibung Ihrer Änderungen (optional)” einen Hinweis auf die durchgeführten Arbeiten einzutragen (damit wird die History verständlicher).

wiki07b

wiki07c

Das Ergebnis:

wiki07d

Nun ist es an der Zeit, die erste Seite mit “richtigem” Inhalt zu erstellen.

Dafür klickt man in der linken Seitenleiste auf “+ Neue Seite hinzufügen”.

wiki08

Es öffnet sich ein Dialog für die Eingabe des Seitennamens. Hat man den Inhaltstyp für das Wiki nicht fixiert, kann man unter “Optionen” den Inhaltstyp für die Seite ggf. abweichend festlegen.

wiki08a

Nun kann man die Seite im Editor erstellen.

wiki08b

Das Einfügen von Bildern (aus den eigenen Dateien) wird über die “Page Tools” (oben rechts über dem Editor) vereinfacht.

wiki08c

wiki08d

Ist die Seite fertiggestellt und gespeichert, ist es an der Zeit die Verlinkung zu dieser Seite auf der Startseite “Home” im Index zu verlinken.

wiki09

Wenn nun jemand mit Leseberechtigung das Wiki aufruft, sieht der die Startseite mit dem index und kann per Klick die Artikel aufrufen.

wiki10

wiki11

Um das Wiki möglichst einfach für Besucher des eigenen Kanals zugänglich zu machen, kann man mit der App “Webseiten” einen Block erstellen, welcher einen Link zum Wiki enthält und diesen dann mit dem PDL-Editor im MODUL “Channel” in die Seitenleiste ziehen.

Nun hat jeder, der die Kanalseite besucht, die Möglichkeiten per Klick zum Wiki zu gelangen.

wiki12

Grundsätzlich kann nur der Kanal-Eigentümer Wikiseiten bearbeiten oder hinzufügen.

Um es auch anderen zu ermöglichen, muss man eine entsprechende Kontaktrolle erstellen bzw. (wenn man es wirklich allen erlauben möchte) die Standard-Kontaktrolle bearbeiten:

wiki13

Ein wirklicher Nachteil der Wiki-App soll aber auch nicht verschwiegen werden: Es gibt keine Suchfunktion für eine Volltext-Inhaltssuche im Wiki. Die eingebaute Suche von Hubzilla findet keine Wiki-Seiten. Das liegt daran, dass diese Suche nur den Stream durchsucht, aber Inhalte wie Wiki-Seiten, Webseiten, Karten etc. nicht im Stream föderiert werden, sondern auf dem Hub bleiben. Es gibt aber Überlegungen, eine Suche für solche Inhalte zu implementieren.

Generell ist es aber sehr gut machbar und durchaus auch sinnvoll, Wikis mit Hubzilla zu betreiben.

BTW: Mann kann die Wiki-Funktion auch dafür “missbrauchen”, eine kollaborative Zusammenarbeit an Dokumenten zu verwirklichen, indem man ein Wiki zu diesem Zweck erstellt und es nur für die Mitarbeiter sichtbar und bearbeitbar macht.

Wiki

Die App Wiki ermöglicht es, im eigenen Kanal Wikis anzulegen.

Wiki-Seiten werden nicht föderiert und verbleiben auf dem eigenen Hub.

Die Wiki-App bietet eine einfache, klassische Wiki-Funktionalität. Wiki-Beiträge können als reiner Text, als Markdown-Text oder als bbCode-Text erstellt werden.

wiki01

Um ein Wiki anzuschauen (oder zu bearbeiten), wählt man auf dieser Seite das entsprechende Wiki aus der Liste.

wiki02

Möchte man ein neues Wiki erstellen, klickt man auf den Button “+ Neu anlegen”.

wiki03

Es öffnet sich ein Eingabe-Formular, in welchem man den Namen des Wiki eingibt und den Inhaltstyp (als Standard) festlegt. Man kann über einen Schalter bestimmen, dass nur der gewählte Inhaltstyp (Text, Markdown, bbCode) für alle Wiki-Einträge verwendet werden muss. Außerdem kann man per Schalter die Erzeugung eines Statusbeitrags über die Wikierstellung ein- oder ausschalten.

wiki04

wiki05

Auch für ein Wiki kann man detaillierte Berechtigungen festlegen.

Klickt man auf “Absenden”, wird das Wiki erstellt und die Startseite (Home) geöffnet.

wiki06

Die Standard-Ansicht einer Wiki-Seite ist immer “Ansicht”, bei welcher der Text gemäß dem Quelltext gerendert wird. Über Reiter (Tabs) am oberen Rand kann man in die Ansicht “Bearbeiten” wechseln, um in den Editor-Modus zu gelangen.

wiki07

Ich habe als Beispiel die Überschrift der Seite auf “Inhalt” geändert und werde auf dieser Startseite ein Inhaltsverzeichnis mit allen erstellten Seiten als unsortierte Liste erstellen.

Schaltet man wieder Auf den Reiter “Ansicht”, so werden die Änderungen direkt sichtbar und sind so zu sehen, wie sie letztlich als Wikiseite erscheinen werden. Nun gibt man noch in das Eingabefeld unter dem Text eine passende Bemerkung ein und klickt aus “Save”. Die Wiki-Seite ist erstellt.

wiki08

wiki09

Der Reiter “Historie” zeigt den Verlauf der Bearbeitung der Seite an.

wiki10

Nun lege ich im Demo-Wiki eine zweite Seite an. Das geschieht durch einen Klick auf “+ Neue Seite hinzufügen” in der linken Seitenleiste.

wiki11

Man muss einen Seitennamen eingeben und kann unter “Optionen” ggf. noch den Inhaltstyp ändern.

wiki12

Durch einen Klick auf “Absenden” wird die neue Wiki-Seite erstellt und man kann sie bearbeiten.

wiki13

wiki14

Speichert man die Seite, so erscheint sie in der linken Seitenleiste als neuer Eintrag (die Einträge dort werden automatisch alphabetisch sortiert).

wiki15

Jetzt habe ich die neue Seite zu Demonstrationszwecken noch in die Hauptseite (“Home”) als weiteren Listeneintrag eingefügt.

wiki16

wiki17

wiki18

Für eine kollaborative Bearbeitung eines Wikis ist es erforderlich, den Nutzern, welche an dem Wiki mitarbeiten dürfen, entsprechende Rechte einzuräumen. Dies tut man in den Fällen eines öffentlichen, persönlichen oder Foren-Kanals mittels einer entsprechenden Kontaktrolle, in welcher man die Bearbeitung der Wiki-Seiten erlaubt. Diese Berechtigung ist nämlich bei den genannten Kanalrollen als Standard nicht erteilt (bei einer benutzerdefinierten Kanalrolle kann man die Genehmigung erteilen, sie gilt dann aber generell und kann mittels einer Kontaktrolle nicht wieder entzogen werden).

Will man einzelne Wikis davon ausnehmen, muss man deren Sichtbarkeit über die Berechtigungs-Einstellungen des Wikis (Vorhangschloss) einschränken.

Wo war das gleich noch? - Where was it again?

Oft sind es Kleinigkeiten, nach denen man bei Hubzilla sucht. Oder man erinnert sich an Dinge, die man an anderer Stelle (mit einem anderen Kanal oder auf einem anderen Hub) schon einmal eingerichtet hatte, einfach nicht mehr. Wo war das gleich noch? Wie ging das?

Hier entsteht eine wachsende FAQ zu genau solchen Problemchen. Den Anfang (und der Auslöser für diesen Info-Artikel) macht die Kanalauswahl im Hauptmenü.

It’s often the little things you’re looking for on Hubzilla. Or you simply don’t remember things that you have already set up elsewhere (with a different channel or on a different hub). Where was it again? How did that work?

Here is a growing FAQ on exactly such problems. It starts with the channel selection in the main menu (and the trigger for this info article).


Kanalauswahl - Channel selection

F: Wer über mehrere Kanäle verfügt, der weiß es zu schätzen, zwischen den Kanälen einfach direkt im Hauptmenü (i.d.R. oben links das Kanal-Profilbild) umzuschalten. Aber diese Funktion muss man erst aktivieren. Wie ging das jetzt nochmal?

A: Die Funktion erreicht man über die Einstellungen des Kanal-Managers (nicht verwechseln mit den Kanal-Einstellungen). Dazu wählt man im Hauptmenü den Menüpunkt Kanäle aus und klickt dann auf das kleine Zahnrad, welches neben dem Text “Kanal Manager” am Hauptmenü erscheint.

Dort gibt es aktuell nur eine EInstellung, nämlich genau diejenige, die wir gesucht haben:

“Kanal-Auswahl in der Navigationsleiste - Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü”

Hier den Schalter einschalten, auf “Absenden” klicken… und schon werden alle Kanäle im Hauptmenü aufgelistet, so dass man schnell und ohne Umwege zwischen ihnen wechseln kann.

Man erreicht die Einstellungen auch direkt auch über diese URL: <hub>/settings/manage/

Q: If you have several channels, you will appreciate being able to switch between the channels directly in the main menu (usually the channel profile screen at the top left). But you have to activate this function first. How does that work again?

A: The function can be accessed via the channel manager settings (not to be confused with the channel settings). To do this, select the Channels menu item in the main menu and then click on the small cogwheel that appears next to the text ‘Channel Manager’ in the main menu.

There is currently only one setting there, exactly the one we were looking for:

‘Navigation Channel Select - Change channels directly from within the navigation dropdown menu’

Switch on the switch here, click on ‘Submit’… and all channels are listed in the main menu so that you can switch between them quickly and directly.

You can also access the settings directly via this URL: <hub>/settings/manage/


Das kleine, unsichtbare weiße Dreieck (Nutzer-Menü) - The small, invisible white triangle (user menu)

F: Was kann ich mit Nutzer, der in einem Stream auftaucht tun? (Die Frage nach dem “kleinen, unsichtbaren weißen Dreieck”.)

A: Bei vielen anderen Fediverse-Diensten, kann man in einem Beitrag eines anderen Nutzers diesen z.B. als Kontakt hinzufügen (folgen) oder ihn ggf. entfernen, ihn blockieren etc. Dies geschieht alles aus einem Menü, das auch das “boosten” etc. anbietet.

Bei Hubzilla dient das Beitrags-Menü (unten rechts ⋮) der Interaktion mit dem Beitrag an sich, nicht aber der Interaktion mit dem Beitrags-Ersteller. Dafür ist das Nutzer-Menü zuständig, das sich hinter dem Profilbild (Avatarbild) verbirgt. Fährt man mit dem Mauszeiger über dieses Bild, erscheint ein kleines Dreieck, welches signalisiert, dass hier auch ein Menü vorhanden ist. Klickt man nun auf das Bild, öffnet sich das Nutzer-Menü. Ich nenne es, weil es so unauffällig ist und man es erst bei “mouse-over” sieht, das “kleine, unsichtbare weiße Dreieck”.

Handelt es sich um einen vorhanden Kontakt, also einen Kanal, mit welchem man bereits verbunden ist, kann man sich mit diesem Menü das Profil des Kontakts ansehen, sich dessen kürzliche Aktivitäten anzeigen lassen, die Verbindung bearbeiten oder den Kontakt blockieren.

Handelt es sich um einen Kanal, mit dem man noch nicht verbunden ist, kann man sich mit dem Menü das Profil des Nutzers anschauen, sich mit ihm verbinden oder ihn vollständig blockieren (Superblock).

Q: What can I do with a user who appears in a stream? (The question about the ‘small, invisible white triangle’).

A: With many other Fediverse services, you can, for example, add (follow) another user as a contact or remove them, block them, etc. in a post. This is all done from a menu that also offers ‘boosting’ etc.

In Hubzilla, the post menu (bottom right ⋮) is used for interacting with the post itself, but not for interacting with the post creator. The user menu, which is hidden behind the profile picture (avatar picture), is responsible for this. If you move the mouse pointer over this picture, a small triangle appears, signalling that a menu is also available here. If you now click on the picture, the user menu opens. I call it the ‘small, invisible white triangle’ because it is so inconspicuous and you only see it when you mouse over it.

If it is an existing contact, i.e. a channel that you are already connected to, you can use this menu to view the contact’s profile, view their recent activities, edit the connection or block the contact. If it is a channel that you are not yet connected to, you can use the menu to view the user’s profile, connect to them or block them completely (superblock).


Das Farbschema des Kanals ändern - Change the colour scheme of the channel

F: Wie kann ich das Farbschema meines Kanals verändern?

A: Zum Verändern des Farbschemas, ruft man im Hauptmenü (oben links beim Profilbild) Einstellungen -> Anzeige-Einstellungen (<hub>/settings/display) auf.

Bei einem neuen, unveränderten Kanal ist es im Tab “Benutzerdefinierte Design-Einstellungen” lediglich möglich, das Theme per Default auf dunkles oder helles Theme zu stellen, die Navigationsleiste schmal oder größer darstellen zu lassen, sowie die Größe für den Inhaltsbereich und die Standard-Schriftgröße festzulegen.

Und es gibt einen weiteren Schalter: “Erweiterte Einstellungen anzeigen”. Und mit diesem sind dann detailliertere Einstellungen möglich.

Man muss den Schalter einschalten und auf den Button “Absenden” klicken. Bei nächsten Aufruf dieser Einstellungen findet man nun auch Farbeinstellungen, Einstellungen zu Eckenradien und einiges mehr.

Über das Feld “Primary theme color” stellt man die Grundfarbe für das gesamte Theme ein. Zusammen damit, aber auch unabhängig davon, kann man in dem Formular aber auch die Farben für viele verschiedene Elemente festlegen.

Q: How can I change the colour scheme of my channel?

A: To change the colour scheme, go to Settings -> Display settings(<hub>/settings/display) in the main menu (top left of the profile picture).

For a new, unchanged channel, in the ‘Custom Theme Settings’ tab it is only possible to set the theme to dark or light by default, to make the navigation bar smaller or larger, and to set the size for the content area and the default font size.

And there is another button: ‘Show advanced settings’. This allows you to make more detailed settings.

You have to switch on the switch and click on the ‘Submit’ button. The next time you call up these settings, you will also find colour settings, settings for corner radii and much more.

The ‘Primary theme color’ field is used to set the basic colour for the entire theme. Together with this, but also independently of it, you can also set the colours for many different elements in the form.


Beschränkte Bilder in Beiträgen sehen - View restricted images in posts: OCAP

F: Weshalb werden mir bestimmte Bilder in Beiträgen nicht angezeigt? Weshalb können andere Bilder in meinen Beiträgen sehen, obwohl ich diese in der Sichtbarkeit eingeschränkt habe?

A: Werden Bilder mit der Berechtigung “öffentlich” in Beiträge eingefügt, so kann jeder diese Bilder sehen.

Aber was ist mit Bildern (oder Medien im Allgemeinen), die in den Dateien (Cloud) Beschränkungen unterliegen, für die also nur bestimmte Nutzer die Berechtigung zum Anschauen haben? Das kann ja auch aufgrund der Kanalrolle automatisch so passieren, wenn man ein Bild unmittelbar hochlädt und die Rolle von sich aus für Medien z.B. nur “Freunden” die Berechtigung erteilt.

Sieht nun ein Nutzer den Beitrag oder Thread, oder nimmt er (z.B. per Kommentar) an dem Thread teil, so kann er das Bild unter Umständen (wenn er nicht zu den Berechtigten gehört) auch nicht sehen.

Trotzdem ist es möglich, den Beitrag mitsamt angezeigtem Bild zu sehen (selbst wenn das Bild in einem beschränkten Ordner gespeichert oder an sich in der Sichtbarkeit eingeschränkt ist). Dafür muss der Nutzer in seinem Kanal die Option “Enable OCAP access” einschalten. Damit wird das Recht auf Zugang zu verlinkten privaten Medien eingeräumt. OCAP steht für Object-capability model.

Die Option findet man im Hauptmenü (Avatarbild des eigenen Kanals) unter “Privacy Einstellungen”.

Achtung: Wer Bilder (oder andere Medien) in seine Beiträge einfügt, muss sich darüber im Klaren sein, dass diese jedem (der OCAP bei seinem Kanal aktiviert hat), der die Berechtigung hat, den Beitrag zu sehen, angezeigt werden, auch dann, wenn man das Bild an sich mit Berechtigungseinschränkungen versehen hat.

OCAP

Q: Why am I not shown certain images in posts? Why can others see other images in my posts even though I have restricted their visibility?

A: If images are inserted into posts with the ‘public’ permission, anyone can see them.

But what about images (or media in general) that are subject to restrictions in the files (cloud), i.e. only certain users have permission to view them? This can also happen automatically due to the channel role if you upload an image directly and the role itself only grants permission to view the media to ‘friends’, for example.

If a user now sees the post or thread, or participates in the thread (e.g. by commenting), they may not be able to see the image either (if they are not one of the authorised users).

Nevertheless, it is possible to see the post with the displayed image (even if the image is stored in a restricted folder or its visibility is restricted). To do this, the user must enable the ‘Enable OCAP access’ option in their channel. This grants the right to access linked private media. OCAP stands for Object-capability model.

The option can be found in the main menu (avatar picture of your own channel) under ‘Privacy Settings’.

Attention: If you insert images (or other media) into your posts, you must be aware that these will be displayed to anyone (who has activated OCAP on their channel) who has permission to view the post, even if you have set permission restrictions on the image itself.

OCAP


Sortierung der Artikel nach Erstellungsdatum - Sorting articles by creation date

F: Wie lässt sich die Sortierung der Beiträge in der Artkel-App nach dem Datum der Erstellung erreichen?

A: Artikel werden in der Gesamtübersicht, aber auch in den Kategorie-Übersichten immer chronologisch nach der letzten Änderung sortiert dargestellt. Das kann ungünstig sein. Wenn man z.B. an einem älteren Artikel eine kleine Änderung vollzieht, landet der Artikel, obwohl er alt ist, ganz vorne in der Liste.

Eine Möglichkeit, das zu ändern, ist das Umstellen auf die Sortierung nach Erstellungsdatum. Dazu muss man mit Admin-Rechten die Datei addon/articles/Mod_Articles.php anpassen.

In Zeile 209 muss man aus

$items = conv_sort($items, 'updated');

durch Ändern des Wortes updated die Zeile

$items = conv_sort($items, 'created');

machen.

Nun werden Artikel chronologisch nach dem Erstellungsdatum sortiert aufgelistet.

Danke an Chris für den Tipp!

Q: How can I sort the posts in the article app by date of creation?

A: Articles are always sorted chronologically according to the last change in the overview and in the category overviews. This can be inconvenient. For example, if you make a small change to an older article, the article will appear at the top of the list even though it is old.

One way to change this is to switch to sorting by creation date. To do this, you need admin rights to edit the file addon/articles/Mod_Articles.php.

In line 209, you need to change

$items = conv_sort($items, “updated”);

by changing the word updatedto

$items = conv_sort($items, “created”);

.

Now articles are listed chronologically according to their creation date.

Thanks to Chris for the tip!


Den Kommentareditor breiter machen - Make the comment editor wider

F: Der neue Kommentareditor als Overlay wird sehr schmal dargestellt. Die Breite lässt sich auch nicht ändern. Wie kann ich die Breite erhöhen?

A: Es gibt eine tolle Lösung, die Chris im Support-Forum veröffentlicht hat:

Voraussetzung ist, dass der Kanal die Erlaubnis hat, Code auszuführen. Das muss der Admin des Hubs freischalten.

Man erstellt dann mit der App “Webseiten” einen HTML-Block mit folgendem Inhalt:

<style>
@media (min-width: 576px) {
.modal {
--bs-modal-width: 1000px !important;
}
.comment-edit-text.expanded {
height: 17rem;
}
}
</style>

lazy06

Diesen Block (ITEM) fügt man nun mit dem PDL-Editor im MODUL “network” an beliebiger Stelle in den Inhaltsbereich ein.

lazy07

(Nicht vergessen, die Änderung mit Klick auf “APPLY” dauerhaft zu speichern.)

Nun wird der Kommentar-Editor deutlich breiter dargestellt.

lazy05a

Q: The new comment editor appears very narrow as an overlay. The width cannot be changed. How can I increase the width?

A: There is a great solution that Chris has posted in the support forum:

The channel must have permission to execute code. This must be enabled by the hub administrator.

<style>
@media (min-width: 576px) {
.modal {
--bs-modal-width: 1000px !important;
}
.comment-edit-text.expanded {
height: 17rem;
}
}
</style>

lazy06

This block (ITEM) is now inserted with the PDL editor in the MODULE ‘network’ at any position in the content area.

lazy07

(Don’t forget to save the change permanently by clicking on ‘APPLY’.)

The comment editor will now be displayed much wider.

lazy05a


Wer ist an der Konversation beteiligt? - Who is involved in the conversation?

F: Wenn ich eine Konversation mit beschränktem Teilnehmerkreis beginne und dies nicht mittels “@!”-Erwähnung mache, sondern über die Berechtigungseinstellungen im Beitragseditor (kleines Vorhangschloss neben dem Button “Absenden”), wie kann ich dann im Nachhinein schauen, wer alles an der Konversation beteiligt ist?

A: Nutzt man die Berechtigungseinstellungen, um einen Beitrag nur an bestimmte Kontakte zu versenden, so sieht man im Beitrag selbst nicht, an wen die Nachricht adressiert ist, weil keine Ewrähnungen erzeugt werden. Wer beteiligt ist, kann ich als Thread-Starter aber dennoch nachauen. Neben dem eigenen Avatarbild im Header des Beitrags wird im Fall eingeschränkter Konversationen ein Symbol angezeigt: entweder ein geschlossenes Vorhangschloss, oder ein Briefumschlag.

Klickt man auf dieses Symbol, so wird angezeigt, welche Verbindungen an der Konversation beteiligt sind.

Hinweis: Wählt man in den Berechtigungseinstellungen als Adressat eine Privacy Gruppe, so wird neben dem eigenen Avatar das Vorhangschloss angezeigt. Bei Klick wird lediglich aufgeführt, welche Privacy Gruppe an der Konversation beteiligt ist (kein Problem, man weiß selbst ja, wer in der Gruppe ist). Wählt man hingegen in den Berechtigungseinstellungen unter “Fortgeschritten ➔ Benutzerdefinierte Auswahl” einen oder mehrere Teilnehmer einzeln aus, wird das Briefumschlag-Symbol angezeigt und bei Klick werden die Kontakte einzeln aufgelistet.

Q: If I start a conversation with a limited group of participants and do not use the ‘@!’ mention, but instead use the permission settings in the post editor (small padlock next to the ‘Send’ button), how can I see who is involved in the conversation afterwards?

A: If you use the permission settings to send a post only to certain contacts, you will not see who the message is addressed to in the post itself because no mentions are generated. However, as the thread starter, I can still see who is involved. In addition to your own avatar image in the header of the post, a symbol is displayed in the case of restricted conversations: either a closed padlock or an envelope.

Clicking on this symbol shows which connections are involved in the conversation.

Note: If you select a privacy group as the recipient in the permission settings, the padlock icon will be displayed next to your avatar. Clicking on it simply lists which privacy group is involved in the conversation (no problem, you know who is in the group yourself). If, on the other hand, you select one or more participants individually in the permission settings under ‘Advanced ➔ Custom selection’, the envelope icon is displayed and clicking on it lists the contacts individually.

bkon01

bkon02

bkon03


X

Y

Z

Zot (jetzt Nomad)

Zot ist das Protokoll, mit dem Hubzilla betrieben wurde. Es wurde durch den Schöpfer des Kommunikations-Protokolls, Mike Macgirvin, im Jahr 2021 in Nomad umbenannt.

Nomad

Zot (now Nomad)

Zot is the protocol with which Hubzilla was operated. It was renamed Nomad in 2021 by the creator of the communication protocol, Mike Macgirvin.

Nomad

Zusammenarbeit mit Hubzilla

Zusammenarbeit mit Hubzilla

Vor gut fünf Monaten veröffentlichte ich mal ein Hubzilla-Häppchen mit dem Titel “Nur ein Beispiel: kollaboratives Arbeiten an Dokumenten”.

Darin wies ich darauf hin, dass man die Wiki-App von Hubzilla sehr gut für das kollaborative Arbeiten an Texten nutzen kann, ohne allerdings genauer darauf einzugehen, wie man das denn tatsächlich realisiert, worauf man achten muss und wie es generell funktioniert.

Das hole ich jetzt nach!

Da die Zusammenarbeit an Dokumenten mit der App “Wiki” erfolgen soll, muss diese App natürlich im Kanal installiert sein. Wie das Installieren von Apps funktioniert, ist hier beschrieben: Hubzilla-Hilfe - Apps und Hubzilla KnowledgeDB - Apps.

Sofern man nicht möchte, dass wirklich jeder an den Dokumenten im Wiki arbeiten kann, ist es wichtig, darauf zu achten, dass das Bearbeiten von Wikiseiten durch die Kanalrolle nicht grundsätzlich erlaubt ist. Bei den Rollen “Öffentlich” und “Persönlich” ist das auch nicht der Fall. Falls man aber die Rolle “Benutzerdefiniert” verwendet, sollte beim Punkt “Kann meine Wiki-Seiten bearbeiten” die Berechtigung “Nur die, denen Du es explizit erlaubst” eingetragen sein. Damit kann zunächst, bei einer unveränderten Standard-Kontaktrolle, niemand die Wiki-Seiten bearbeiten. Über eine zu erstellende Kontaktrolle für das Kollaborations-Team genehmigt man die Bearbeitung dann und man weist diese Kontaktrolle allen Teammitgliedern, die an den Dokumenten arbeiten können sollen, zu.

Generell ist es bei allen Standard-Kontaktrollen jedem möglich, die Wiki-Seiten zu sehen. Das passt für öffentliche Wikis auch gut, aber für die meisten Anwendungsfälle einer gemeinsamen Bearbeitung von Dokumenten ist das nicht erwünscht oder geboten. Deshalb muss die grundsätzliche Genehmigung für das Betrachten von Wikiseiten für das Dokumenten-Wiki eingeschränkt werden. Die Berechtigungen aus der Kanalrolle sind nicht widerrufbar, sodass es über eine Standard-Kontaktrolle nicht funktioniert. Die Einschränkung erfolgt über die Berechtigungs-Einstellungen (Vorhangschloss Button 🔒 neben dem Button “Absenden”). Dort kann man entweder über die Einstellung “Benutzerdefinierte Auswahl” die einzelnen Verbindungen als einzige berechtigen, das Dokumenten-Wiki zu sehen, oder man nutzt die praktischere Variante, eine Privacy Gruppe, die man erstellt und in welche man alle Mitarbeiter einsortiert. Letzteres hat den Vorteil, dass man, wenn man dann die Kontaktrolle zur Zusammenarbeit erstellt hat, diese Kontaktrolle allen Mitgliedern der Privacy Gruppe zuzuweisen. Damit hat man beide Berechtigungs-Einstellungen mit einem Handstreich erledigt.

Jetzt aber mal eins nach dem anderen…

Als Erstes erstellen wir uns also eine Privacy Gruppe (ich nenne sie hier einfach mal… muss jeder für sich selbst einen sinnvollen Namen finden) “Zusammenarbeit”. Dieser Privacy Gruppe fügen wir nun sämtliche Kontakte zu, mit denen wir gemeinsam an den Dokumenten arbeiten möchten.

Anschließend erstellen wir eine Kontaktrolle (ich nenne sie ebenfalls) “Zusammenarbeit”, welche ansonsten der Standard-Kontaktrolle entspricht (also einfach die zusätzlichen Berechtigungen aus der Standard-Kontaktrolle übernehmen, damit die betroffenen Verbindungen keine Einschränkungen gegenüber anderen Kontakten haben), zusätzlich aber die Berechtigung “Kann meine Wiki-Seiten bearbeiten” erhält. Ist sie fertiggestellt, weisen wir diese Kontaktrolle gleich der Privacy Gruppe “Zusammenarbeit” zu. Damit erhalten alle Verbindungen, die wir als “Mitarbeiter” einsortiert haben, die Berechtigung, Wiki-Seiten zu bearbeiten.

Nun ist es an der Zeit das Dokumenten-Wiki zu erstellen.

Dafür starten wir die App “Wiki” und klicken dort auf den Button “+ Neu anlegen”.

collab01

Nun öffnet sich das Formular zu Anlegen eines Wikis. Hier wählen wir einen Namen für unser Dokumenten-Wiki und legen uns auf eine Textauszeichnungssprache fest. Zur Wahl stehen “Markdown”, “BBcode” und “Text” (plain text).

Ich persönlich würde für die Dokumentenbearbeitung “Markdown” bevorzugen. Und wenn wir das Kästchen “Inhaltstyp sperren” nicht mit einem Haken versehen, kann man trotzdem bei jedem Wiki-Dokument noch festlegen, welcher Inhaltstyp für das Dokument verwendet werden soll. “Markdown” ist dann halt nur vorausgewählt.

Hier müssen wir nun auch die Berechtigungs-Einstellungen ändern. Wir wählen die Privacy Gruppe “Zusammenarbeit” aus.

Dann noch auf den Button “Absenden” klicken… und das Dokumenten-Wiki zur gemeinsamen Bearbeitung ist angelegt.

collab02

collab03

collab04

Als Standard wird bei jedem Wiki eine Seite “Home” angelegt. Diese sollte durchaus auch als solche erhalten bleiben. Man kann dort Informationen über das Dokumenten-Wiki hineinschreiben und, wenn man mag, einen extra Index erstellen (obwohl das nicht notwendig ist, weil die einzelnen Dokumente in der Seitenleiste aufgeführt werden).

collab05

collab06

Jetzt können wir Dokumente anlegen…

collab07

collab08

collab09

collab10

collab11

collab12

…und die Verbindungen, welchen die Bearbeitung eingeräumt wurde, können vorhandene Seiten bearbeiten und auch eigene Dokumente anlegen.

collab13

collab14

collab15

Über das Protokoll sind alle Änderungen nachvollziehbar und können auch rückgängig gemacht werden.

Zustellungsbericht

Zustellungsbericht

Was nicht jeder weiß: Wenn wir einen Beitrag oder einen Kommentar mit Hubzilla veröffentlichen, können wir uns einen Zustellungsbericht anschauen. Dieser Bericht teilt uns mit, an welche Instanzen das Posting verteilt wurde, welche Instanzen ihn angenommen haben, ausgefiltert haben, ob das Posting wegen Fehlern bei der Ziel-Instanz (Server down oder andere HTTP-Fehlermeldungen) etc. Der Bericht erfolgt für jede einzelne Verbindung, die zum Empfängerkreis gehören.

Der Zustellungsbericht ist über das Beitrags-Menü (unten rechts am Beitrag: ⋮) zu erreichen.

zustb01

zustb02

Der Zustellungsbericht enthält oftmals sehr viele Einträge und die wenigsten können mit der Bezeichnung des Ergebnisses wenig anfangen können.

zustb03

zustb04

zustb05

Ich habe zu den Meldungen Mario Vavti, den Hauptentwickler von Hubzilla, gefragt und er hat mir kurz erläutert, wofür die einzelnen Meldungen stehen.

Hier nun die Erläuterungen zu den Meldungen:

MitteilungBedeutung
post ignoredDas Posting wurde durch den Inhaltsfilter gefiltert.
deliver (Zustellung)Bedeutet “channel sync processed” und wird ausgegeben wenn ein Item zwischen Klonen gesynct wurde.
undeliverable/unresponsive siteDie Adresse wurde als “tot” markiert - keine Zustellung der Nachricht.
unknown delivery errorZustellung war aus unbekannten Gründen nicht möglich.
signature invalidDie HTTP Signatur konnte nicht validiert werden.
zur Warteschlange hinzugefügtDie Nachricht ist in der Queue gelandet, weil sie nicht gleich zugestellt werden konnte.
zugestelltZugestellt!
für Zustellung akzeptiertDie Nachricht wurde vom Empfänger angenommen, aber der Empfänger unterstüzt keine Zustellberichte (Activitypub, Diaspora).
Aktualisierung ignoriertEin Update der Nachricht wurde ignoriert, weil das Update schon erhalten wurde.
Zugriff verweigertZustellung wurde nicht erlaubt.