Introducing DjRS

This is the new Web Interface for Retroshare, which allows you access to your Retroshare Node from anywhere you chose. Although its got a bit to go before it is one-click access, I thought it was time to share some screen-shots to whet your appetite.

The source code is available at: https://github.com/drbob/djrs.git

NB: The Web Interface will only work with Retroshare SVN 6330 and upwards. You need to compile Retroshare from source code to use it. Support for the DjRS will be in the next stable release (V0.5.4f)

But wait, I hear you ask, “why don’t you just point us at the webserver and let us play with it…?”. As Retroshare is a fully distributed system, we don’t host Retroshare nodes. So you need a Retroshare installation before the Web Interface is useful.

DjRS runs as a standalone Web Interface on any laptop, server, phone that supports python. As privacy-aware netizens, you know that the person running the Web Server will have access to your data. So it is much better for your sanity if you run your own. There are more technical details towards the end of this post.

Login to your Node

When you startup the Web Interface it presents you with the Login screen.

You supply username, password as well as the location of your Retroshare Node, and the Web server connects via SSH. Securely allowing you to control your node.

Welcome

After a successful login, you will get to this screen – with a little congratulations message. There is basic status information on the right-hand side and context menus for navigation.

Find your Friends

Clicking on friends is a good place to start. Excuse the reduxxed images but Retroshare is meant to be a Private Social Network. From here you can chat to friends that are online, view their shared files as well as change your friends list by adding or removing people.

Chat with Friends.

The web chat interface is quite basic at the moment – but functional. Type in your message, read their responses – what else is there to it! You can also access older chat messages via the button on the upper-right side.

Of course, the chat is running over the Retroshare network and can be considered private.

Chat Lobbies

You can also communicate with a wider range of people via the Chat Lobbies. Just Join and Chat. We will add “create lobby” functionality in the near future.

Shared Folders

Shared Folders are displayed one level at a time, allowing you to drill down as far as needed. Clicking on the Download link will fetch the files when they become available.

Search

If Shared folders are too tedious to use, you can search the Network via the Search Interface and download data at the click of a button.

File Transfers

Active Transfers can be reached through the sidebar menu, and will be fully controllable from the Web Interface very soon.

Much More to Come

We expect to add all the other standard Retroshare features to the Web Interface in the coming months: Forums, Channels, Wiki, Photographs, and more.

Technical Details of DjRS.

Technology

DjRS is written using Python/Django and Bootstrap. It communicates with your Retroshare Node using the SSH RPC protocol. DjRS uses the PyRS python module to handle the comms.

DjRS Setup

Instructions are available here: https://github.com/drbob/djrs.git

You need to install python and git and run some scripts.

There are three ways of running DjRS listed in the Instructions. Using the tornado http server is currently the best option.

Retroshare-nogui Setup

The server version of Retroshare (retroshare-nogui) provides the SSH RPC protocol that DjRS talks to. Instructions for setting this up are here: Excito Blog Post

Network Setup

The whole system has three distinct components (Browser, DjRS, Retroshare Node) which can be run on three different hosts. This provides great flexibility in how you access your system:

Browser <--http(s)--> DjRS <-- SSH --> RS Node <===> RS Net

For example, you could run Retroshare on your DreamPlug or Raspberry PI at home, and run DjRS remotely. As DjRS has no configuration, it can be installed and run from anywhere and used to access any Retroshare node. This is probably the easiest way for most people to use DjRS.

Remote: Home: Browser / DjRS <------- SSH --------> RS Node

Alternatively, you could run DjRS and Retroshare on a single server, and just use the Web Interface from anywhere. Just remember to use HTTPS with this configuration, as you will be sending RS web traffic over the Internet.

Mobile: Home or Server: Browser <----- https -----> DjRS / RS Node

In the near future you could also share a single DjRS installation with your friends. Just be sure you can trust the Server administrator!

Remote: Server: Home(s): Mobile <--- https ---> <--- SSH ---> RS Node iPad <--- https ---> DjRS <--- SSH ---> RS Node Laptop <--- https ---> <--- SSH ---> RS Node

Troubleshooting

This software is still in active development, we are keen to get feedback about issues.

There is a known problem where after a connection fails, you cannot reconnect. If this happens, please restart both retroshare-nogui and DjRS. Some of these failures are due to libssh-v0.5.4 not restarting properly, this is fixed in libssh-v0.6.0rc1.

There are up-to-date instructions for compiling and setting up the backend system in the README.txt located in the base directory of the repository.

Helping out

We are not really Web developers, and DjRS is in no way complete. Feel free to send pull requests via github.