Lead Image © Setsiri Silapasuwanchai, 123RF.com

Lead Image © Setsiri Silapasuwanchai, 123RF.com

Open source tools for workgroup collaboration

Work Smart

Article from ADMIN 43/2018
Want to keep your teams connected even when they are disconnected? RetroShare, SparkleShare, and I2P are free tools that support chat, data sharing, and other collaboration services.

When a workgroup consists of users in different locations, team members need a way to communicate and exchange files. Commercial collaboration tools often come with a high price tag. If your company needs something more than a web-based chat service, and you don't want to spare the expense for a commercial, closed source solution, you could always try an open source collaboration tool. This article introduces a few of the leading alternatives, including:

  • RetroShare
  • SparkleShare
  • I2P

These tools provide collaboration and data sharing for dispersed workgroups and offer some advanced security and privacy options.


RetroShare [1] lets team members communicate securely and exchange data at the same time. Access is via SSL encryption and PGP. The developers provide clients for Windows, Linux and Mac OS.

RetroShare also offers chat channels and lobbies, instant messaging, forums, VoIP communication, and client-based data exchange (Figure 1). All features are secured with PGP and are handled via the Internet – without the need for servers or cloud solutions. Users can easily handle the setup themselves without bothering the IT department.

Figure 1: RetroShare provides a variety of useful collaboration services.

Communication occurs between client applications. It is possible to mask IP addresses. RetroShare often has problems with firewalls, although you can enable an optional firewall mode.

After you install RetroShare, create a new profile in the client; you'll need to specify the services you wish to use and the matching passwords. RetroShare creates the PGP key – move the cursor in the window until the process is complete. A few more prompts are waiting for confirmation, and the software asks you for the previously defined profile password. If the local firewall displays a message, you need to allow Internet access for RetroShare. The client is then ready. RetroShare supports Mac, Windows, and Linux clients.

To invite new members, click on the Add Friends icon, and enter an email address that will be used for an invitation email. The easiest way to invite people to join is to save or export your own certificate in the RetroShare client and send this file to other team members. You can copy the certificate text from the invitation email or generate it using the Add Team Member wizard. Once the connection is established, friends are displayed as connected, and the status is also updated. Connections are thus established quite quickly.

When team members recommend other team members, they can add the contacts without having to exchange certificates. However, it is possible for each team member to determine which contacts are granted which rights, which contacts to accept, and which to reject. An invitation based on a recommendation is output on the RetroShare network. Example: Contact Paula has contacts Carllotta and Thomas in her list. However, contact Carllotta only has contact Paula in her list. Contact Paula can now recommend contact Thomas to contact Carllotta.

Once the team members are connected, they can start to use RetroShare's various communication services. The user can click the Network option to see which contacts are connected. The application shows when a team member writes a message or sends a file. You can send messages or exchange documents via the context menu. Select Newsletter in the Network area to send a message or document to all team members.

The File Share option in the RetroShare client provides information about exchanging data. You can use the context menu to send a new message to an individual team and attach a file.

The Forums option lets you set up group chats and forums for collaboration. Use the context menu for a forum post. You can also use the context menu to contact the author of a post and send a private message.


SparkleShare [2] is an open source tool that provides a private cloud for sharing data in teams. The SparkleShare collaboration tool supports Linux, Windows, and Mac OS clients, although the server must run on Linux. You can use SparkleShare to exchange data via SSH and synchronize directories. You have the option to connect to your own servers, repositories in GitHub, or project archives at Plan.io (Figure 2). SparkleShare lets you to store hosted data on almost any GitHub-based host. An optional encryption feature protects the data from unauthorized access. The SparkleShare client can connect to different repositories for data exchange. Each repository on the server and in the cloud is represented as a local directory on your computer. If you copy a file to one of the folders, it is synchronized with the repository.

Figure 2: SparkleShare supports several hosting options.

Once you have installed the software on a computer, launch the setup wizard with Add Hosted Project from the context menu of the icon in the taskbar. In the wizard, you can now determine whether you want to use your own server or connect the client to GitHub, Gitorious, or Plan.io. One of SparkleShare's strengths is its ability to create a mix of repositories on its own servers and in the cloud. You only have to save the data in the appropriate directory on your computer. The SparkleShare client automatically synchronizes the data with the server or directory.

Exchanging Data Securely with I2P

The Invisible Internet Project (I2P) [3] consists of a series of open source tools that provide secure, encrypted, and anonymous access to the Internet. I2P is intended for users who require security when exchanging data. Like RetroShare and SparkleShare, I2P is available for Mac OS and Linux, as well as Android smartphones and Windows. I2P does not support Windows Phone and Windows 10 for Mobile.

I2P offers numerous services that provide anonymous access and allow team members to communicate securely and privately, including:

  • Webmail applications and serverless direct mail: Emails are sent without a server, in a similar way to RetroShare. The data is stored in a table, automatically encrypted, and signed. The tool supports IMAP and SMTP.
  • Web browsing: Anonymous web pages and gateways for Internet from I2P. The well-known Squid Linux proxy plays a role in this option.
  • Blogs and forums: Anonymous networks with blogs and forums. For example, I2P can connect and route traffic to the Tor anonymity network. The system can also be used to make forum access anonymous.
  • Anonymous websites.
  • Instant Messaging/IRC: A collection of different servers and clients support access to open source IRC servers that provide anonymous chat.
  • File Sharing: Share files and use distributed cloud storage. For example, I2P supports clients for Gnutella and BitTorrent. I2P also offers filesystems for secure data storage, such as Tahoe-LAFS.

The I2P client requires Java underpinnings; the actual installation simply consists of confirming a few windows.

The local software router connects local I2P applications to the I2P network. It is also possible to use your own browser for I2P. To use your own browser, enter the local computer as the proxy server in the network settings. You'll need to use the ports 4444 for HTTP and 4445 for SSL. As soon as the proxy is entered, you can access websites from the start page of the I2P console and use services such as I2P addresses.

Buy this article as PDF

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

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

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

Support Our Work

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

Learn More”>


		<div class=