Resilio Sync
Related articles
Resilio Sync (formerly: BitTorrent Sync (BTSync) is a proprietary file sharing system that relies on the BitTorrent protocol.
Peer-to-peer (P2P) sync, instead of having a central server which archives every file, uses peer-to-peer connections between the devices themselves therefore there is no limit on data storage and/or transfer speed. The user's data is exclusively stored on the devices with which the user chose to be in sync with, hence it is required to have at least two user devices, or "nodes" to be online. If many devices are connected simultaneously, files are shared between them in a mesh networking topology.
Contents
Security
All traffic between devices is encrypted with AES-128 in counter mode, using a unique session key. This key is derived from a 'secret' which itself is a random 21 Byte key Base32-encoded. By handing over the 'secret', files and folders can be shared with other users.
Synchronization
When a device adds a folder for synchronization, a secret is generated. From now on, every device that wants to synchronize that folder must know the secret key.
The synchronization has no speed or size limits, as long as both devices have enough disk space.
Installation
rslsyncAUR can be installed from the AUR. The package includes systemd service definitions for managing the rslsync daemon. This package creates a default /etc/rslsync.conf for system/root operation. Make the desired changes (e.g. login id and password) to those files prior to enabling the service-file with systemctl.
Alternatively, the bare 'tar.gz' packaged executable can be downloaded from the official website. The rest of this guide assumes that you are using the rslsync AUR package.
Usage
The Linux client of Resilio Sync does not use a typical GUI, instead it sets up a WebUI server accessible at localhost:8888
. Shared folders can also be configured statically in a configuration file, but doing so disables the WebGUI.
Once installed, you'll first need to create a configuration file at ~/.config/rslsync/rslsync.conf
, see #Configuration. You will also need to create the storage_path
directory. When that is done, start and (if you want it to start on boot) start/enable the user service rslsync
(i.e., with the --user
flag.
The service will run as the user invoking the command. Note that the above command is not run as root: doing so may lead to a cryptic error stating that D-Bus has refused the connection.
You can also run it as the rslsync.service
system user (without the --user
flag).
Configuration for this user is located at /etc/rslsync.conf
, and metadata is saved in /var/lib/rslsync/
by default. You should review the configuration settings especially user and password, see below.
Configuration
A sample configuration file can be created using:
# rslsync --dump-sample-config > ~/.config/rslsync/rslsync.conf
You'll probably want to change some of the settings, including:
- device_name
- storage_path
- webui/login
- webui/password
Automatic config file creation
The btsync-autoconfigAUR package provides a systemd user service (btsync-autoconfig.service
) which, if enabled, triggers when a user's btsync.service
starts and creates a config file with default values if it does not already exist.
The install script enables the service for all users by default. Although disabling it defeats most of its purpose, it can be disabled using
# systemctl --global disable btsync-autoconfig.service
Individual users can then enable it if they like:
$ systemctl --user enable btsync-autoconfig.service
btsync-autoconfig.service
creates ~/.config/btsync/btsync.conf
if it does not exist, and guesses some default values of the settings:
- device_name:
$USER@$HOSTNAME
- storage_path:
~/.btsync
- webui/login:
$USER/password
The script also creates the storage_path
directory set in the config file if it does not exist. This is done intependently from the creation of the config file.
Troubleshooting
Missing storage path
If you start the service but can't reach the WebUI, check the status of the rslsync by entering systemctl --user status rslsync
(or systemctl status rslsync
for the system-wide instance).
A common error is Storage path specified in config file does not exist.
. This is easily fixed by mkdir ~/.rslsync
, or whatever your storage_path
is set to.
Ignore some files/folders synchronization
If you don’t want Resilio Sync to track some files in your sync folder, please use IgnoreList
. IgnoreList
is located in hidden .sync
folder.
IgnoreList
is a UTF-8 encoded .txt file that allows you to specify single files, paths or rules for ignoring during the synchronization job. Each line of the IgnoreList
file represents a separate rule. All the files that fall under the ignore filter are not indexed and not counted in the "Size" column in Sync main view.
It supports '?' and '*' wildcard symbols.
Note that IgnoreList
is applied only to the folder where it is contained and will not work with the files that have already been synced. If you add indexed files to IgnoreList
, they will be deleted on other syncing devices. In order to avoid this:
- Remove the folder from sync on all the devices.
- Modify
IgnoreList
file on all of them so that it contains same info. - Re-add the modified folders.
For further details, please refer to Ignoring files in Sync (IgnoreList)
ARM alignment error
Add the line w /proc/cpu/alignment - - - - 2
to /etc/tmpfiles.d/rslsync.conf
. (You need to create the file).
Note that this may lead to performance degradation.