Social networking the FOSS way with Diaspora


Given the huge market share of social network titans like Twitter and Facebook, it may be difficult to force the masses to join those who wish to make the switch. Mercifully, it's possible to register with Diaspora pods that support cross-posting to major platforms such as Twitter, Tumblr, Facebook, and WordPress (Figure 4).

Figure 4: The pod supports cross-posting to Twitter. Note the app can also read tweets on users' timelines and track new followers.

The specific setup steps are available on Diaspora's Wiki, but in simplest terms this involves authorizing an app similar to a Twitter or Facebook bot to post on a user's behalf. This should mean each time that new content is shared on Diaspora it will also be posted by the corresponding app. The privacy of posts is determined when initially setting up the app. For example, all posts may be visible only to the account's Facebook friends.

Setting Up a Diaspora Pod

For readers whose appetites have been sufficiently whetted, simple setup guides for running one's own Diaspora pod are available on the Foundation's website. Debian-based distros such as Ubuntu are supported, as well as CentOS, Gentoo, Arch, and Hamara Linux [13].

Whichever distribution is employed, the hardware requirements aren't very onerous. The website recommends at least 1.5GB RAM, 1GB swap space, and a decent multicore CPU. The amount of HDD space required will vary naturally depending on the number of users and the content shared.

For Raspberry Pi lovers, the Foundation says Diaspora will run on the Raspberry Pi Model 2 and 3 but is very slow and so not recommended for multiple users [14]. Diaspora requires several different components, so the Foundation recommends using a VPS or dedicated server over shared hosting servers.

In terms of software, Diaspora is written in Ruby. The Foundation recommends using Ruby Version Manager (RVM) to keep Ruby up to date and also to separate it from any other Ruby apps you may have installed. Diaspora is compatible with most app and web servers; however, the most common setup is using Unicorn for the app server and Nginx as the web server.

Users who are serious about running their own Diaspora pod will need an SSL certificate both to encrypt traffic between clients and the browser and to allow federation with other pods. Self-signed certificates or certificates issued by CACert won't work. The Foundation recommends obtaining a free TLS Certificate from providers such as Let's Encrypt, WoSign, or StartSSL [15].

Diaspora Drawbacks

Setting up a pod should pose no trouble for anyone with experience or server administration or Rails app deployment; however, there are support channels on Freenode in various languages for anyone who has difficulties [16].

As previously discussed, the admin of the pod has access to all registered users' data. Similarly, content shared by users with people registered to other pods will be visible to those "podmins" as well. There's also no way to isolate a pod from others without modifying the source code, so caution should still be exercised when posting content.

The decentralized nature of Diaspora can be abused, as it was in 2014 when ISIS supporters decided to join Diaspora after being kicked off Twitter. Although in technical terms the Diaspora Foundation could do nothing to stop people from hosting their own pods, they did urge the community to report any offensive posts and worked with admins of the largest Diaspora pods to make sure extremists' accounts were deleted [17].

Podmins headaches also do not end with terrorism. Admins are specifically forbidden from integrating advertisements into a pod, meaning that each must be run as a labor of love, not for profit. There's also no automatic way to run backups of a server. The Diaspora Foundation recommends making copies of the public/uploads directory to back up images and then googling how to perform a dump of "Diaspora_databases" from the database server, which is less than elegant [18]. Users have also complained that downloading profile data is done via a JSON file, which is only machine readable, meaning users need to upload to a different pod to review what they uploaded [19].

By default, Diaspora doesn't come with an integrated chat feature as is available in Facebook, but the website's wiki does contain instructions to set this up on a pod via Prosody. The chat feature also has to be enabled by users for each specific aspect (Figure 5). Sadly, use of Aspects means that it is currently impossible to create a group for people with similar interests as can be done easily on Facebook [20].

Figure 5: Click the chat icon at the top right to allow chatting with people within each aspect. For acquaintances, this is switched off by default.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • diaspora*

    You don't need Facebook to keep up with your friends online. With diaspora*, you get a similar experience without the spying.

  • Social Network Goes Open With Diaspora*

    Control your privacy with this alternative.

  • Open Source Social Media Tools

    Diaspora, Friendica, and Mastodon are free and decentralized microblogging platforms that keep you in control of your data.

  • Do Read: Diaspora Contributor Agreement

    Developer licensing gets a bit sticky.

  • Welcome

    As I have mentioned in the past, I continue to find it amazing that the high-tech world can go through the ritual of condemning privacy violations and NSA-style government spying, and at the same time celebrate life in the consumer-cloud paradise, where all data resides on a server controlled by a corporation and privacy is mined continuously as part of the basic business model.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More