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

What is Hubzilla?

Hubzilla is a decentralised communication network with the aim of providing communication options that circumvent censorship, respect privacy and are therefore free from the restrictions imposed by today's commercial communication giants. These primarily provide spy networks for paying customers of all kinds and monopolise and centralise the entire Internet - which was not originally among the revolutionary goals that led to the World Wide Web.

Hubzilla is free, open source and free of charge. It was developed to run on a Raspberry Pi as well as on the largest AMD and Intel Xeon multiprocessor servers. It can be used for communication between a few individuals or connect many thousands of people and more.

Another goal is to be independent of skills and resources. Hubzilla is as easy to use for the ordinary computer user as it is for system administrators and developers.

How you use it depends on how you want to use it.

Hubzilla is written in PHP, making it easy to install on any of today's hosting platforms, including self-hosting at home, on shared servers or on virtual and dedicated servers.

In other words, Hubzilla can run on any platform that has a web server, a MySQL-compatible database and PHP.


Hubzilla basic concepts and features

Channels (understood as identities vs. as an app)

As a user (i.e. as a private individual or as an association), you can create one or more web identities. The web presence of an identity is bundled within Hubzilla: A visitor of the web identity gets to see content related to that identity in one place, available through the main menu apps for that identity. Internally, within the software, an identity is called "channel". But for a visitor, the word "channel" means one specific app belonging to the identity, namely the pinboard where the (possibly) federated posts of the identity are shown in a stream based timeline. In the following, we understand channels as identities: As a logged in user, you can switch between your channels to edit the content for each channel, i.e. to publish posts or to create one or several channel profiles, websites, wiki pages and more. Per channel you can also manage files in a cloud, tag and name photos and show the photos in a web gallery. Events of the channel can be shown in a calendar.

Decentralized Network: Access over boundaries (Zot/Nomad) vs. delivering over boundaries (Zot/Nomad, ActivityPub and Diaspora)

If allowed to do so, identities on Hubzilla connect with each other across server and administrative boundaries through the communication protocol Zot/Nomad (and if provided by your server, also throught the protocols ActivityPub and Diaspora). Except for posts / messages, all published content stays local your server. While you can publish content publicly, it is also possible to share local content with only some specified connections. Latter is only possible with connections through Zot/Nomad (thus with identities on Hubzilla and Streams).

Access controlling

Your local content can be "visited" by those Zot/Nomad based connections who got the permission to do so from you. By assigning your connections to connection lists (so-called "privacy groups"), you can also permit access to specific content to all members of that list. You can send posts / messages (also using the ActivityPub or Disaspora protocols) to one connection, to a privacy group or to the public, using an access controlling list. It's possible to define a duration for expiring a post / message. This is how to limit access timewise.

Remote authentication

"Do you know me? -- Yes I do, welcome!" "Visiting" non public content on a remote server should only be possible when you can authenticate yourself to that server. Fediverse software which only use the ActivityPub or the Diaspora protocol can authenticate only accounts from the local server though. The Zot protocol on the other hand has built in a mechanism called MagicAuth which makes it possible to a server to grant or refuse access to content and actions to identities which are registered on a different (remote) server.

Nomadic identity

The Zot/Nomad protocol allows your channels to be unbound from the hub where you created them. You may port them to a different hub, or you may clone them, in which case the channel's identity and data will exist simultaneously in more than one location. This provides resilience to channels should a hub shut down or become unavailable.

Modular ecosystem through apps

Hubzilla provides for each functionality a separate app, i.e. the cloud, photo, gallery, chat, wiki, calendar, contacts or the connections app. A server administrator decides which apps should be available for the users of that server. A user then can install or uninstall the available apps.

Collaboration

Following shared private spaces allow to work as teams using Hubzilla:

  • As a user you allow selected connections to read and edit your webpages and wiki pages.
  • Allow them to read and edit your files, calendar and contacts using the web user interface (the cloud, calendar and contacts apps) or WebDAV, CalDAV and CardDAV.
  • Use conversation threads (posts) which are only visible to your collaboration group by setting the access control list accordingly.

Cloud Storage

You can store documents directly on your website, and share them with others. Public, private, or restricted access. With the files being stored on your domain name, they will know it comes from you.

Sharing vs. boosting

Hubzilla allows you to (re-)share posts of other Fediverse users. (Re-)Sharing something in Hubzilla is like telling your friends Jennie and Omar what Giaco said. And then they say "Cool, I like it".

Hubzilla also allows boosting. Boosting something is like telling your friends Jennie and Omar what Giaco said, while Giaco and all his friends and family (that you don't know) are listening. Giaco and all his friends and family can talk to you now.