Exploring the FOSS alternative to Twitter

GNU Groups

Despite the strong similarity to Twitter, GNU social has an excellent feature of its own in that you can set up and join groups. These groups can span across servers, which makes them useful to keep conversations in sync. The specific steps for joining groups will vary depending on your GNU social node (Figure 3). On Quitter or LoadAverage, the easiest way is to search for the group name using the search bar at the top right.

Figure 3: You can enter up to three aliases to allow people to find your group. Currently, this only works for users on the same GNU social node as the group itself.

One example is Richard Stallman's group, which celebrates the imaginary holiday of Grav-Mass. The group shares scientific knowledge as well as discussing experiments that could answer unresolved questions about the world [16]. A search of all public postings for "gravmass" will reveal some posts with the group name preceded by an exclamation mark (!). Click on any of these to be taken to the group's main page and subscribe. You will be returned to your own GNU social node after doing to confirm you want to join the group.

Alternatively, if you know the URL for the group in question, click Join remotely --if your GNU social ID is not on that instance – then enter the ID itself. As before you'll be taken back to your own GNU social Instance to confirm that you wish to subscribe by clicking Join.

If the current list of federated GNU social groups [17] doesn't meet your needs, then new groups can be created by visiting http://yourgnusocialinstance.com/group/new (e.g., http://quitter.no/group/new).

You'll be asked on the web form to provide a nickname for the group all in lowercase letters (e.g., travel-lovers) as well as a homepage and description. You also have the option to set aliases for the group (e.g., the country Myanmar is sometimes referred to as Burma, so you might want both !myanmar and !burma to point to the same group).

Finally, you have an option to make the group Private. If this is checked then members must be approved by an admin and messages remain private.

Make sure to provide the URL of the group to allow others to join. If you have chosen an alias, then the URL will still direct visitors to your group provided they are using the GNU social node where the group is located. Once your group has been created, you may wish to post the link in !fedgroups to include it in the Skilled Tests wiki list.

Whether you join an existing group or create your own, in order to post, you simply include the group name or an alias in your message (e.g., !burma). If the group is private, then only other members will see it; otherwise, the post will be visible to those who visit the group page also.

GNU Social Server

For users with access to their own server, the requirements for installing GNU social are not too onerous.

Full instructions for installation are available on GNU social's GitHub page [18], but, in brief, prerequisites include PHP 5.5+ and MariaDB 5+/MySQL 5.5+. A web server such as Apache, lighttpd, or Nginx is also required (Figure 4).

Figure 4: Setup is quick and easy. The GitHub page contains sample configuration files for common servers such as Nginx.

The official website recommends downloading a tarball of the latest version of GNU social onto your web server and unpacking it, but it is probably easier simply to use git to clone the contents of the source code from the website [19] into a local folder.

After modifying permissions to allow users to access the gnu-social folder, the next step is to use mysqladmin to create a database and root password specifically for GNU social. Once this has been done and a new database account has been created, you should be able to visit https://yourserveraddress.com/install.php to create an admin account and register new users.

At this stage, you may wish to follow the steps in the installation manual to allow fancy URLs for registering new accounts or install the SphinxSearch plugin to allow searching for other users or images.

GNU Grumbles

The chief advantages of GNU social have already been covered in that it provides for greater freedom of expression, potentially more privacy, and allows you to retain your user data.

The easiest way to get started with GNU social is to use a public instance. However, admins can and do moderate public posts according to their own policies. Quitter.no's user policy, for example, states:

"Quitter.no is not a service and you are not a customer here. We are a small part of a bigger social change, creating a large decentralized community. This means that we don't have to be neutral toward the content on our GNU social instance. If you don't like the direction this instance is going, you are free to move to another instance or start your own."

The website also states in bold that users guilty of perceived racism, sexism, ableism, transphobia, and so on will be removed (Figure 5). Note that even if the site admins believe passionately in freedom of speech, the server may also be located in a jurisdiction which restricts it, so consider the location carefully.

Figure 5: Quitter.no reserves the right to restrict anything it sees as discriminatory. Advertisements of any kind are also not allowed. If you want to control all content, you can set up your own GNU social instance.

Quitter also reminds users that they are free to create their own GNU social node, so their messages and accounts are protected from arbitrary deletion. Sadly, there's no built-in method to migrate existing posts and user data from one instance to another. The installation manual recommends using mysqldump to back up the database and tar to back up the web directory.

One advantage of a centralized social media network like Twitter is that when a public post is removed, it's gone from the site for good. If a user on a GNU social node removes a post from their public timeline, it will be removed from their own instance but copies may remain on other federated servers. For this reason, if there's no need for your posts to be public (e.g., you are using GNU social to collaborate with colleagues on a project), you can make your node private so it doesn't federate with other servers [20].

Migrating from Twitter to GNU social is a painless process, but it may be difficult to persuade friends and family to do the same. As such, you may wish to link your GNU social account with Twitter.

GNU social claims to be compatible with Twitter's API. This theoretically means you can cross post to Twitter although specific steps are not available on the GNU social main page. However, users who register with https://gnusocial.net can use the settings menu on the main site to authorize their account to post to Twitter [21]. Naturally, any posts made to Twitter will need to be done from a Twitter account, which can be suspended or deleted.

If you are running your own GNU social instance, the TwitterBridge plugin not only allows posting notices to other Twitter accounts but also allows users to authenticate using Twitter, as well import your Twitter friends' tweets [22]. You'll also need to create a Twitter App for GNU social to access your account at https://apps.twitter.com/.

Overall, GNU social offers a crisp alternative to Twitter and has the power to safeguard freedom of expression online. Despite the lack of some of the more advanced posting features of Twitter, such as URL lookups and meta tags, the project has promise. Thanks to Bytemark Data Centres [23], the GNU social Project has found a new home in the UK, and it's likely that more public and private servers will be created in the near future.

Infos

  1. Washington Post article: https://www.washingtonpost.com/news/the-intersect/wp/2016/07/21/what-it-takes-to-get-banned-from-twitter//
  2. Los Angeles Times Op-Ed: http://www.latimes.com/opinion/op-ed/la-oe-deboer-yanniapoulos-jones-twitter-speech-20160722-snap-story.html
  3. The Guardian: https://www.theguardian.com/technology/2015/mar/18/twitter-puts-trillions-tweets-for-sale-data-miners
  4. GNU social: https://gnu.io/social/
  5. Vinilox's GNU social FAQ: https://status.vinilox.eu/doc/faq#faq-2
  6. Independent GNU social instances: http://skilledtests.com/wiki/List_of_Independent_GNU_social_Instances
  7. Free Software Foundation: https://www.fsf.org/blogs/community/thousands-of-spaniards-leave-twitter-for-gnu-social
  8. GNU social: https://gnu.io/social/
  9. MediaGoblin: http://mediagoblin.org/
  10. Linux Veda: http://www.linuxveda.com/2015/06/05/gnu-social-vs-twitter/
  11. GNU social clients: http://www.skilledtests.com/wiki/GNU_social_clients
  12. Mustard: https://play.google.com/store/apps/details?id=org.mustard.android&hl=en
  13. Choqok: http://choqok.gnufolks.org/
  14. Heybuddy: http://www.jezra.net/projects/heybuddy
  15. Statusnet problems: http://www.skilledtests.com/wiki/Statusnet_problems#use_XMPP
  16. Celebrate Grav-Mass: https://stallman.org/grav-mass.html
  17. List of federated GNU social groups: http://www.skilledtests.com/wiki/List_of_federated_GNU_social_groups#how_to_create.2Fjoin_a_group_in_GNU_social.3F
  18. GNU social installation: https://github.com/foocorp/gnu-social/blob/master/INSTALL
  19. Clone source code: https://git.gnu.io/gnu/gnu-social.git
  20. Make a private node: https://git.gnu.io/gnu/gnu-social.git
  21. GNUsocial.net FAQ: https://gnusocial.net/doc/faq#faq-12
  22. GNU social plugins: https://github.com/foocorp/gnu-social/tree/master/plugins/TwitterBridge
  23. GNU social: https://gnu.io/social/

The Author

Nate Drake is a freelance journalist specializing in cybersecurity and retro tech.

Buy this article as PDF

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

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

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

News