RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform. (upstream Repository)
Clone or download
G10h4ck Merge pull request #1350 from zapek/jsonapi_windows_fix
fixed JSONAPI build for Windows
Latest commit d26912e Sep 21, 2018
Failed to load latest commit information.
build_scripts updated ubuntu changelog Sep 4, 2018
data Rename retroshare06 to retroshare Jul 17, 2017
jsonapi-generator fixed JSONAPI build for Windows Sep 20, 2018
libbitdht/src merged upstream/master Jul 8, 2018
libresapi/src get rid of cipher_version variable. use plain output from openssl Sep 15, 2018
libretroshare/src links with wsock32 only if the jsonapi is built Sep 20, 2018
msys2_build_libs Fixed MSYS2AUTOMAKE path in msys2_build_libs/Makefile Aug 12, 2016
openpgpsdk/src license fix in pqi May 28, 2018
plugins RS version is now parametrizable at compile time Sep 12, 2018
rapidjson-1.1.0 added rapidjson-1.1.0 code hard-coded in the source directory to allo… May 2, 2018
retroshare-android-notify-service/src Make .pro files compiler agnostic on Android Jan 30, 2018
retroshare-android-service/src retroshare-android-service better debug message Sep 6, 2018
retroshare-gui/src links with wsock32 only if the jsonapi is built Sep 20, 2018
retroshare-nogui/src retroshare-nogui print message if JSON API is active Sep 12, 2018
retroshare-qml-app/src Multiple improvements to build process Apr 18, 2018
supportlibs Merge branch 'master' into jsonapi Jul 23, 2018
tests RsTokenService use enum for request status Jun 24, 2018
.gitignore Simplify QML to work better on both Desktop and Phone Oct 26, 2016
.gitmodules Merge branch 'master' into jsonapi Jul 23, 2018
.travis.yml Travis CI increase clone depth to get some tag for git describe Sep 12, 2018
LICENSE.txt Update and rename license.txt to LICENSE.txt Dec 15, 2015 Fix typo in Mac install guide Feb 4, 2018
README-Android.asciidoc Update Android quirks documentation Mar 12, 2018 Update Appveyod build badge Aug 25, 2018 Merge branch 'master' into jsonapi Aug 22, 2018
Start_RetroShare-Gui_Debug.bat Rename retroshare06 to retroshare Jul 17, 2017
TODO.circles.txt updated TODO Mar 21, 2016
TODO.txt update todo Feb 24, 2016 fixed JSONAPI build for Windows Sep 20, 2018 Merge branch 'json_experiments' Apr 27, 2018
appveyor.yml appveyor increase clone depth to get some tag for git describe Sep 12, 2018
build-all-mingw32make.bat Fix Windows 7 32b Compilation from scratch. Oct 17, 2015
retroshare.pri More robust automatic version determination Sep 15, 2018


RetroShare is a decentralized, private and secure commmunication and sharing platform. RetroShare provides filesharing, chat, messages, forums and channels.

Build Status

Platform Build Status
GNU/Linux, MacOS, (via travis-ci) Build Status
Windows, MSys2 (via appveyor) Build status

Compilation on Windows

Follow this file :

Compilation on MacOSX

Follow this file : MacOS_X_InstallGuide

Compilation for Android

Follow this file : README-Android

Compilation on Linux

  1. Install package dependencies:

    • Debian/Ubuntu
    sudo apt-get install libglib2.0-dev libupnp-dev qt4-dev-tools \
        libqt4-dev libssl-dev libxss-dev libgnome-keyring-dev libbz2-dev \
        libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libsqlcipher-dev \
        libspeex-dev libspeexdsp-dev libxslt1-dev libcurl4-openssl-dev \
        libopencv-dev tcl8.5 libmicrohttpd-dev rapidjson-dev
    • openSUSE
    sudo zypper install gcc-c++ libqt4-devel libgnome-keyring-devel \
        glib2-devel speex-devel libssh-devel protobuf-devel libcurl-devel \
        libxml2-devel libxslt-devel sqlcipher-devel libmicrohttpd-devel \
        opencv-devel speexdsp-devel libupnp-devel libavcodec-devel rapidjson
    • Arch Linux
    pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \
        libxss opencv qt4 speex speexdsp sqlcipher rapidjson
  2. Checkout the source code

    mkdir ~/retroshare
    cd ~/retroshare 
    git clone trunk
  3. Compile

    cd trunk
    qmake CONFIG+=debug
  4. Install

    sudo make install

    The executables produced will be:

  5. Uninstall:

    sudo make uninstall

Compile only retroshare-nogui

If you want to run RetroShare on a server and don’t need the gui and plugins, you can run the following commands to only compile/install the nogui version:

make retroshare-nogui
sudo make retroshare-nogui-install_subtargets

For packagers

Packagers can use PREFIX and LIB_DIR to customize the installation paths:

qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
make INSTALL_ROOT=${PKGDIR} install

If libsqlcipher is not available as a package

You need to place sqlcipher so that the hierarchy is:

      +--- trunk
      +--- lib
            +---- sqlcipher
mkdir lib
cd lib
git clone git://
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
cd ..

Using retroshare-nogui & webUI

The webUI needs to be enabled as a parameter option in retroshare-nogui:

./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/

The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS cannot be controlled using an untrusted connection.

To access your web UI from a distance, just open a SSH tunnel on it:

distant_machine:~/ >  ssh rs_host -L 9090:localhost:9090 -N

"rs_host" is the machine running retroshare-nogui. Then on the distant machine, access your webUI on


That also works with a retroshare GUI of course.

Compile and run tests

  qmake CONFIG+=tests