Resilio Sync

Related articles
Syncthing
Synchronization and backup programs
Resilio Sync
(formerly: BitTorrent Sync or BTSync) is a proprietary file sharing system that relies on the
BitTorrent
Peer-to-peer (P2P) protocol.
Instead of having a central server which archives every file, it 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.
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. 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
Install
the
rslsync
AUR
package, which 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
rslsync.service
.
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 will 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.
Note
It is important to make sure that when
rslsync
is run as the user, the
rslsync.conf
file and directory where the
rslsync.pid
file will be located have the correct user permissions, i.e. are owned by the user invoking the command. Failure to do so will prevent the service from running. If the user permissions are correct but
rslsync
still fails to run after being enabled, restart your system.
If running
rslsync
on a headless server, enable lingering to start
rslsync
and keep it running outside user sessions:
Systemd/User#Automatic start-up of systemd user instances
.
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 will probably want to change some of the settings, including:
device_name
storage_path
webui/login
webui/password
Note
The
rslsync
executable does not create the
storage_path
directory if it does not exist, you will have to do this manually or use
#Automatic configuration file creation
.
The storage_path setting defines where metadata will be saved,
not
the synced files themselves. Where synced files are saved is configured on a per-folder basis in the WebGUI.
The configuration option
webui/password_hash_unified
is calculated with
webui/password_hash_salt_unified
prepended, if any salt is used at all.
Automatic configuration file creation
The
rslsync
AUR
package provides a systemd user service called
rslsync.service
which, if enabled, triggers when a user's
rslsync_user.service
starts. Then a configuration file with default values will be created if it does not already exist.
Note
If the configuration file was generated by
rslsync
AUR
it will be configured with a different port. Rather than 8888, the port for the user's instance of
rslsync
will be
7889 + $UID
. If your
$UID
is "1000", the port will be 8889.
The install script enables the service for all users by default. Although defeating most of its purpose,
rslsync.service
can be
disabled
.
Individual users can then
enable
the
rslsync_user.service
user unit
.
rslsync_user.service
creates
~/.config/rslsync/rslsync.conf
if it does not exist, and guesses some default values of the settings:
device_name:
$USER@$HOSTNAME
storage_path:
~/.rlsync
webui/login:
$USER/password
The script also creates the
storage_path
directory set in the configuration file if it does not exist. This is done independently from the creation of the configuration file.
Troubleshooting
Missing storage path
If you start the service but cannot reach the WebUI, check the
unit status
for the system-wide instance or the
user unit
.
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)
Error while loading shared libraries: libcrypt.so.1
If you receive the error message
error while loading shared libraries: libcrypt.so.1
starting rslsync with the binary or as a service, install the package
libxcrypt-compat
.
See also
Official Resilio Sync Help
Official Resilio Sync FAQ