tuxpoldo

Linux Desktop Gui Unofficial Packages For Bittorrent Sync

Recommended Posts

BTSYNC DESKTOP GUI FOR ARCH, DEBIAN, UBUNTU AND OTHER DERIVED DISTRIBUTIONS

If you are using Arch Linux, Ubuntu, Debian, Raspian or other derived distributions based on Debian and you are searching for an easy way to deploy BitTorrent Sync on your systems, this topic is definitively for you. Here you will find information about a family of easy to install packages that offer both a solution for the need of typical server/cloud operators as for interactive users.

btsync_gui_1.png btsync_gui_2.png btsync_gui_3.png
btsync_gui_4.png btsync_gui_5.png btsync_gui_6.png

The desktop gui package is explicitly intended for desktop usage and provide a user experience similar to BitTorrent Sync on Windows or Mac OSX by still giving the user the possibility to customise his installation if he has special needs.

This topic covers only the desktop user package. If you are searching for the server package, please look here.

THE SOFTWARE AND THE PACKAGES ARE UNOFFICIAL AND NOT THE WORK OF BITTORRENT® INC. PLEASE DO NOT CONTACT THE BITTORRENT® INC. SUPPORT WITH QUESTIONS OR PROBLEMS RELATED TO THE USE OF THE PACKAGES. YOU WILL FIND COMPETENT HELP AND SUPPORT IN THIS FORUM THREAD


INSTALLATION ON ARCH LINUX

The Arch Linux Package in the AUR is maintained by Martin Wimpress (@flexiondotorg). The package is named btsync-gui and can be installed from the AUR using your favourite package manager. e.g.: if you are using yaourt:


sudo yaourt -S btsync-gui

When you have finished installing, you can skip the next section below and move directly to the USAGE NOTES.


INSTALLATION ON DEBIAN, UBUNTU, LINUX MINT, RASPBIAN OR OTHER DEBIAN DERIVATES

The most easy and fast way to install the repository is to paste that at a terminal prompt:

sh -c "$(curl -fsSL http://debian.yeasoft.net/add-btsync-repository.sh)"

The script explains what it will do and then pauses before it does it asking for your permission. If you encounter any problems or prefer to do it manually, please look here.

Now update the package index and install btsync-gui by pasting that at a terminal prompt:

`which sudo` apt-get update`which sudo` apt-get install btsync-gui

On some systems the AppIndicator library is not available or maybe you do not want to use it. In this case, you may want to install the GTK only version of the BitTorrent Sync GUI instead:

`which sudo` apt-get update`which sudo` apt-get install btsync-gui-gtk

Please keep in mind, that this will work only on GTK based desktops. If you install it on other desktops like Unity, btsync-gui-gtk will start but you will see nothing and you have no control over the application! Install btsync-gui-gtk only if you know exactly what you are doing!!! If this happened, you can fix it by installing btsync-gui and rebooting your system.

After the successful installation, you have to initially start BitTorrent Sync. You have various possibilities to do this:

  • Log out and log in again. Since BitTorrent Sync GUI is registered in the autostart group, it will start as soon as you log in.
  • Select BitTorrent Sync from the menu or the default application launcher of your desktop.

USAGE NOTES

The BitTorrent Sync GUI aims to be a clone of the original BitTorrent Sync application on Windows and Mac OSX and to replace on long term the legacy package btsync-user.

The GUI provides two modes of operation:

  • Standalone Mode: This is the default mode. When the GUI starts, an underlaying BitTorrent Sync agent is started too providing an overall experience similar to the GUI applications on Windows or Mac OSX.
  • Client Mode: The GUI can be started from the command line with parameters specifying a connection to a remote BitTorrent Sync system. In this case, the GUI does not start a local BitTorrent Sync agent, but connects to an already running agent at a remote location. This will work only, if the remote agent has activated API access by specifying a valid API key in the configuration file.

The behaviour of the GUI can be influenced by specifying various options on the command line. There is also a way to make some options persistent across restarts making it superfluous to specify the options each time you start the GUI. You can get detailed help about the command line options by invoking the man page:

man btsync-gui

Here you find an overview of the available options:

usage: btsync-gui [-h] [--log {CRITICAL,ERROR,WARNING,INFO,DEBUG}]                  [--host HOST] [--port PORT] [--username USERNAME]                  [--password PASSWORD] [--bindui BINDUI] [--webui]                  [--savedefaults] [--cleardefaults]optional arguments:  -h, --help            show this help message and exit  --log {CRITICAL,ERROR,WARNING,INFO,DEBUG}                        Sets the logging level. By default the logging level                        is WARNING  --host HOST           Hostname for the connection to BitTorrent Sync. If not                        specified, a local BitTorrent Sync agent will be                        launched.  --port PORT           Optional port number for the connection to BitTorrent                        Sync. If not specified, port 8888 is taken for a                        connection to a remote BitTorrent Sync agent or (8999                        + uid) is taken when creating a locally lauched agent.                        This option can be made persistent for local agents                        with --savedefaults  --username USERNAME   Optional user name for connecting to a remote                        BitTorrent Sync agent or username to use when creating                        a locally launched agent. This option can be made                        persistent for local agents with --savedefaults  --password PASSWORD   Optional password for connecting to a remote                        BitTorrent Sync agent or username to use when creating                        a locally launched agent. This option can be made                        persistent for local agents with --savedefaults  --bindui BINDUI       Optional bind address for the Web UI of a locally                        created BitTorrent Sync agent. By default the agent                        binds to 127.0.0.1. If you want the Web UI of the                        agent to be reachable by other computers, specify one                        of the available IP addresses of this computer or                        "all" to bind to all available adapters. This option                        can be made persistent for local agents with                        --savedefaults  --webui               Include the Web UI in the menu. This option can be                        made persistent with --savedefaults  --savedefaults        If specified, the optionally supplied credentials,                        bind address and port will be stored as default in the                        application preferences and used when launching a                        local BitTorrent Sync agent.  --cleardefaults       If specified, all internally stored credentials, bind                        address and port information will be cleared from the                        application preferences.

The usage of the command line options will be explained by some examples below.

STANDALONE MODE

By default there is no way to access the Web UI provided by the BitTorrent Sync agent, since the agent itself defines at each start random credentials to protect the system. If you still want to access the Web UI, you can activate an extended menu option by specifying --webui on the command line. You will then have an additional menu item, that invokes a browser and connects you to the Web UI.

If you want to make this setting persistent, you can invoke the following command from the console:
 

btsync-gui --webui --savedefaults

From now you will not need to specify it again at each start.

Sometimes it may happen, that you want to access your running BitTorrent Sync agent from another computer via the Web UI or a btsync-gui in Client Mode. By default this is not possible, because of two reasons:

  • The BitTorrent Sync agent binds the administration interface only to the loopback adapter making it possible to connect only from the same machine (This is a security feature).
  • The BitTorrent Sync agent is started at every time with randomly generated credentials. Without knowing them, it is impossible to access the administration interface of the agent (This is also a security feature).

For users that want to access their system from another computer, there is still a possibility to configure the GUI in a way that makes the agent accessible also from other computers. In order to do so, the following parameters must be changed:

  • The BitTorrent Sync agent must bind its administrative interface to all adapters of the system or an adapter reachable from outside.
  • The BitTorrent Sync agent must bind its administrative interface to a well-known port. By default the port is the sum of 8999 and the uid of the user.
  • The credentials must be set to something known.

The GUI can be launched in such a mode, by specifying the following parameters:
 

btsync-gui --bindui 0.0.0.0 --port 10888 --username Leopoldo --password SuperSecret

This configures the BitTorrent Sync agent to bind on all interfaces on port 10888 and to be accessible with the user name "Leopoldo" and the password "SuperSecret".

Also these settings can be made persistent by adding the option --savedefaults

WARNING: as every comfort function, you pay the comfort by lowering the security. Remember: the product of comfort and security is a constant. You cannot increase both.

CLIENT MODE

In client mode, the GUI can be used to access a remotely running BitTorrent Sync agent. The only prerequisites are that the remote BitTorrent Sync agent is reachable from your computer, you know the credentials and the API access is enabled on the remote agent. You can also use the GUI to connect to another machine where a BitTorrent Sync GUI is running in standalone mode, if you have configured access possibilities like shown in the example above.

The connection to a remote BitTorrent Sync agent is done by entering the following command:
 

btsync-gui --host myserver.example.com --port 8888 --username Leopoldo --password SuperSecret

If you are able to access the Web UI of a remote BitTorrent Sync system, you should know everything you need to also launch successfully the GUI.

Since the connection to remote systems is slower, you will notice the following limitations:

  • The refresh rate is slower. It adapts dynamically to the overall performance.
  • During the status refreshes, the GUI may be a bit unresponsive.
  • There are no local file system checks, when you add a new folder. You must be sure, that you enter a valid path on the remote machine.
  • Some features are disabled (Pause/resume, Enable/Disable Debug) since they are not feasible on remote systems.

COMPATIBILITY

The GUI packages are available for the same architectures as released by BitTorrent Inc.:

  • i386 - Intel/AMD 32 Bit
  • amd64 - Intel/AMD 64 Bit
  • armel - ARM EABI
  • armhf - ARM hard float
  • powerpc - PowerPC

The GUI packages have been tested on the following distributions:

  • Debian Wheezy with Gnome Desktop
  • Ubuntu Raring 13.04 with Unity Desktop
  • Linux Mint Petra with Cinnamon Desktop

Other users have reported successful installations on:

  • Xubuntu Saucy 13.10 with OpenBox+Tint2
  • Debian Jessie with KDE
  • Ubuntu Trusty 14.04 with Cinnamon, MATE and OpenBox
  • Arch Linux with MATE

The GUI package has also been released for other Linux distributions:

  • Arch Linux: Packages can be found in the AUR

WANTED
 
Maintainers for other Linux distributions beeing able to write a suitable packaging for their favourite distribution:

  • Centos/RHEL (rpm)
  • Fedora (rpm)
  • SLES(rpm)
  • Gentoo

Now it's up to you to test it and give me lots of feedback in order to extend this list. Any related feedback is highly appreciated.

BUG REPORTS, CONTRIBUTION AND SOURCES

If you want to contribute to the development of the packages or if you are curious how this all works, you may find the current sources, the deployment scripts and packaging on GitHub.

If you want to contribute to the localisation by translating changed strings or by adding support for your favourite language, you may join the localisation team on POEditor.com.

If you have experienced a reproducible issue that is related to the gui or the packaging and not to BitTorrent Sync itself you are strongly encouraged to open an issue on the project's GitHub Page. Issues related to the native functionality of BitTorrent Sync should instead be discussed by creating a new topic or partecipating to an already existing topic in the BitTorrent Sync Forum.

Edited by tuxpoldo

Share this post


Link to post
Share on other sites

This is correct: btsync-gui autogenerates secret credentials in order to protect the session.

 

Let me explain the reasons:

  1. Security: the Web UI can also be reached by other users working on the computer. This is a security hole, since another user of the computer can "steal" your files by configuring his btsync to sync a folder from your btsync (if he can access your btsync via webui, he is able to get the secrets).
  2. Consistence: The web UI offers the possibility to change the credentials. If you do that, the GUI will not be able any more to access btsync, since it does not know the credentials. Several users of btsync-user had run into problems deriving from that...

In the current alpha version, the credentials autocreated by btsync-gui are static (if you know them, you can access via web UI - look at ~/.config/btsync/btsync-agent.conf), but this will change in future. I'm currently still thinking about how to support concurrent use of the GUI and the Web UI. The concurrency of two UIs can be a great source of problems. In fact neither the Windows nor the MacOSX version offer any Web UI....


Question to anybody out there:

 

Do you see any reason to use the web UI when the application itself offers all possibilities of the web UI?

Share this post


Link to post
Share on other sites

the option to start btsync at start of linux is greyed out and not selected, however restarting my pc automatically starts btsync-gui (this is good of course)

Share this post


Link to post
Share on other sites

the option to start btsync at start of linux is greyed out and not selected, however restarting my pc automatically starts btsync-gui (this is good of course)

 

I know ;-) The controls are there because they are there also on Windows/MacOSX, but probably it makes no sense to keep them in the preferences, since there is a possibility in the system settings to enable/disable autostart items. If I want to implement the functionality, I have to understand how to communicate with the startup/session manager (any clues?).

 

In Debian/Gnome you can activate/deactivate autostart in the "Startup Applications Preferences" (gnome-session-properties)...

 

BTW: Can you please tell on which distribution/desktop you are using btsync-gui (I need the info for the compatibility list)?

Share this post


Link to post
Share on other sites

 

I know ;-) The controls are there because they are there also on Windows/MacOSX, but probably it makes no sense to keep them in the preferences, since there is a possibility in the system settings to enable/disable autostart items. If I want to implement the functionality, I have to understand how to communicate with the startup/session manager (any clues?).

 

In Debian/Gnome you can activate/deactivate autostart in the "Startup Applications Preferences" (gnome-session-properties)...

 

BTW: Can you please tell on which distribution/desktop you are using btsync-gui (I need the info for the compatibility list)?

 

I'm on mint 16 petra with cinnamon

btsync auto start is easy to activate/deactivate in the cinnamon "Startup Applications Preferences", so i think it is ok to remove the option in the preferences

Share this post


Link to post
Share on other sites

I added several folders at the same time and although they are all indexing, the indication (indexing......) is only shown at the first folder and when that one is finished it jumps to the second one.

Well on second thought maybe they are not indexing at the same time but just calculating how many files and the total size and the real indexing is done one by one.

Share this post


Link to post
Share on other sites

I added several folders at the same time and although they are all indexing, the indication (indexing......) is only shown at the first folder and when that one is finished it jumps to the second one.

Well on second thought maybe they are not indexing at the same time but just calculating how many files and the total size and the real indexing is done one by one.

 

Yes... the GUI shows exactly what BitTorrent Sync is doing. When you add several huge folders, you can see, that they are processed sequentially.... good for the I/O.

 

The GUI queries once per second BitTorrent Sync. I'm thinking about making the interval dependent upon the number of folders, since in systems with many many folders this would probably generate too much system load (at least as soon as I add also the "Devices" tab...)

Share this post


Link to post
Share on other sites

 

Question to anybody out there:

 

Do you see any reason to use the web UI when the application itself offers all possibilities of the web UI?

 

No, but at the moment, you cannot see the other clients it is synching with, i guess that will come in future versions. 

For me no issue because i can see all clients on the webinterface of btsync running on my (headless)server.

Share this post


Link to post
Share on other sites

Hi Knireis,

 

No, but at the moment, you cannot see the other clients it is synching with, i guess that will come in future versions. 

For me no issue because i can see all clients on the webinterface of btsync running on my (headless)server.

 

yes. I guess.... let's see... I guess it will come in the next version ;)  (I'm already working on it)

Share this post


Link to post
Share on other sites

And here it is!

 

btsync-gui (0.6-1) unstable; urgency=low   * Folder status now takes in account and shows folder errors    (Closes #72)  * Show the device status on the "Devices" tab (Closes #73) -- Leo Moll <leo.moll@yeasoft.com>  Sun, 02 Mar 2014 15:33:21 +0100 

Share this post


Link to post
Share on other sites

Theres a use-case where having both the WebUI and the GUI may be useful: accessing your BTSync config from work throught internet to add a new shared folder with, let's say, your portable apps (to get them in sync).

 

It would be overkill to launch a VNC server to access the GUI...

 

If there is a way to disable the embedded web server, I would propose you to "clone" (and enhance?)  the WebUI, and serve it yourself as a way to have control over the configuration of BTSync. It would be, in fact, another package (btsync-webui?) that can be launched independent but sharing the configuration files.

 

For the autostart, you can use the XDG specifications, but for user (not global), usually on ~/.config/autostart/

http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html

 

Regards

Share this post


Link to post
Share on other sites

Hi KuttKatrea!

Thank you a lot for your thoughts. Let's discuss about all topics:
 

Theres a use-case where having both the WebUI and the GUI may be useful: accessing your BTSync config from work throught internet to add a new shared folder with, let's say, your portable apps (to get them in sync).


OK - interesting use case. Nowadays this is not possible under Windows/MacOSX since both of them have NO web UI. Also the current Linux-Version (either with btsync-user or with btsync-gui) would not support this use case, since the Web UI is bound only to 127.0.0.1 for security reasons (that means: you can access it only from the local machine).

But the use case may be interesting and could be solved in two ways:

  • The manual way: manage the BitTorrent Sync engine on your own (bei either create your own configuration file and startup script or using the btsync server packages) and connect the GUI from the command line by supplying the connection parameters (this will be documented and supported in the next release).
  • The comfortable way: provide a configuration option for the Web UI "public" (bound to all network interfaces) and configured with a known username and password. I have some ideas about how to implement it, but I will add a poll question to the topic to see how much users may be interested in such a feature.

If there is a way to disable the embedded web server, I would propose you to "clone" (and enhance?)  the WebUI, and serve it yourself as a way to have control over the configuration of BTSync. It would be, in fact, another package (btsync-webui?) that can be launched independent but sharing the configuration files.


Unfortunately not.
 

For the autostart, you can use the XDG specifications, but for user (not global), usually on ~/.config/autostart/
http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html


I know. The package already follows the XDG specification. On Gnome there is an additional control panel, that permits you to enable/disable autostart items. Obviously I can enable/disable autostart by creating/deleting the file in ~/.config/autostart/, but I would prefer to follow the method used by Gnome...

 

BTW: Have you tested it? What is your impression?

Share this post


Link to post
Share on other sites

I like both ways. Even if someone, just playing around, changes the username and password from the webUI, it would be only needed to relaunch btsync (btsync-starter) to override them again. 

 

PS. I could use a SSH tunnel to access the WebUI even if it is listening only on localhost ;D

 

As I understand, Gnome uses some of the .desktop files specification functions in the context of autostart to achieve it's control panel functionality, in short:

 

  - A user .desktop autostart file with the same name as one global, overrides it

  - A .desktop file can have a OnlyShowIn=GNOME;XFCE;OTHER_DE configuration entry, which defines the desktop environments this app will autostart.

  - A .desktop file can have a NotShownIn=GNOME,LXDE;OTHER_DE configuration entry, wich defines the desktop environments this app willl NOT autostart.

  - A .desktop file can have a Hidden=True configuration entry, wich "enables" or "disables" the autostart of this file.

 

So, generating the btsync.desktop file at ~/.config/autostart/btsync.desktop (or where applicable)  and turning on and off using the Hidden key, would be enough.

 

About the alpha, I just installed it, I like it. It feels more natural, and more like it's Windows counterpart.

Working fine in a light desktop using Openbox+tint2

Share this post


Link to post
Share on other sites

I like both ways. Even if someone, just playing around, changes the username and password from the webUI, it would be only needed to relaunch btsync (btsync-starter) to override them again.

This is correct. I will think seriously about your idea. Perhaps it may be quite simple to implement it...

 

As I understand, Gnome uses some of the .desktop files specification functions in the context of autostart to achieve it's control panel functionality, in short:

...

So, generating the btsync.desktop file at ~/.config/autostart/btsync.desktop (or where applicable)  and turning on and off using the Hidden key, would be enough.

I checked what happens on my Debian:
  • My package installer created the desktop file in /etc/xdg/autostart
  • The "Startup Application Preferences" applet (gnome-session-properties) creates a copy in ~/.config/autostart and adds the following line to it:
X-GNOME-Autostart-enabled=false
 

I tried to write "Hidden=True" instead of X-GNOME-Autostart-enabled=false but it seems not have any effect. Perhaps I should try a combination of both in order to make sure it will work also on other desktops...

 

About the alpha, I just installed it, I like it. It feels more natural, and more like it's Windows counterpart.

Working fine in a light desktop using Openbox+tint2

Can you give me some more details (Distribution, Version)? I would like to enhance the compatibility list in the initial posting ;)

Share this post


Link to post
Share on other sites

I tried to write "Hidden=True" instead of X-GNOME-Autostart-enabled=false but it seems not have any effect. Perhaps I should try a combination of both in order to make sure it will work also on other desktops...

Can you try with lowercase "true"?

the specification has the boolean values in lowercase, it was my mistake to capitalize it

 

Can you give me some more details (Distribution, Version)? I would like to enhance the compatibility list in the initial posting ;)

Of course, it is a Xubuntu 13.04, upgraded to 13.10

I have tested it on a light desktop running on TigerVNC, using Openbox+Tint2

Once I'm back at home I can test in on XFCE, and on the same desktop but running in a traditional DBus session

Share this post


Link to post
Share on other sites

anyone tried that on KDE?

 

Unfortunately not. What's about you? ;)

 

If it does not work, you can revert to btsync-user. The internal configuration files are saved in the same locations, so it is no problem to switch between them.

 

Update: Yes! Now we know that it works with KDE:

 

btsync_gui_7.png

Figure 7: btsync-gui on KDE with Debian Jessie

Edited by tuxpoldo

Share this post


Link to post
Share on other sites

oh, you need guinea pigs :)

 

That's the meaning of the word "Alpha"... But we are all testers. Remember: BitTorrent Sync is still Beta.

Share this post


Link to post
Share on other sites

Nice job on the GUI application! It works fine on one of my machines, but on my netbook (1 GB RAM, Atom CPU), the UI is unresponsive once opened. It also makes the computer run hot and pushes the CPU to 100% while running. Both run Debian stable with Openbox. I understand it's in alpha but I figured it wouldn't hurt to put that information out there.

 

The web UI doesn't accept my credentials either. I'll look at the other thread because I remember some folks had credentials trouble recently. Sorry, took a look at the first page and fixed that.

 

Question: is it still possible to run btsync in headless mode after installing btsync-gui?

Share this post


Link to post
Share on other sites

Nice job on the GUI application! It works fine on one of my machines, but on my netbook (1 GB RAM, Atom CPU), the UI is unresponsive once opened. It also makes the computer run hot and pushes the CPU to 100% while running. Both run Debian stable with Openbox. I understand it's in alpha but I figured it wouldn't hurt to put that information out there.

Thank you! That's exactly the information I need. I think that I have a theory why this may happen: currently the GUI performs the refresh task quote often (once per second). I am sure, that I have to modify this and make the refresh a little bit more adaptive, since in case of a huge number of shared folders or a huge number of peers connected, the refresh task would flood the application and made the system unresponsive. Can you please tell me how many shared folders (an approximate estimation is enough for me) and connected peers are on your system?

 

The web UI doesn't accept my credentials either. I'll look at the other thread because I remember some folks had credentials trouble recently. Sorry, took a look at the first page and fixed that.

OK - I see you have read the thread. We are still discussing about the Web UI...

 

Question: is it still possible to run btsync in headless mode after installing btsync-gui?

Basically yes. But not if you are only using the GUI. The GUI is intended to be used exactly like the BitTorrent application on Mac OSX and Windows: an application that runs while the user is logged on. As I wrote as an answer to this posting, the current behaviour that BitTorrent Sync continues to run also after logout when btsync-user is installed, is a bug. If you want to run a headless BitTorrent Sync, the correct way is to handle it as a daemon (e.g. using a package like btsync - the server version). In the next version the GUI will support two separate modes:

 

  • Standalone mode: when you start the GUI, also a corresponding BitTorrent Sync engine is started (that's the way it works now)
  • Client mode: start the GUI and connect to a running BItTorrent Sync daemon by specifying host, port and credentials on the command line.

In the next version I will add also some more logging in order to help solving such problems as you reported.

Share this post


Link to post
Share on other sites
Can you please tell me how many shared folders (an approximate estimation is enough for me) and connected peers are on your system?

 

Around 20 folders are shared between the two computers. I have four machines running btsync: two Debian laptops, an iMac desktop, and my phone.

 

If you want to run a headless BitTorrent Sync, the correct way is to handle it as a daemon (e.g. using a package like btsync - the server version)

 

I'll check out the server version, thanks a lot. The upcoming features sound very good. Keep up the good work!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.