This is a small container using Resilio Sync client to syncronize data between clients.
Sync skips the cloud and finds the shortest path between devices when transferring data. No Cloud. No uploading to third party servers. Just fast, simple file syncing.
Based on my alpine micro container with glibc please visit nimmis/alpine-glibc for more information.
This container can run in two different mode:
- web gui mode, all configuration done thru a web interface
- sync mode, sync predefined directory with secret key supplied or generated
These setting applies to both web gui and sync mode
This variable defines the name shown on other nodes, if not defined it will get the name shown with the command hostname
This will start a container with then name database
docker run -d -e RSLSYNC_NAME=database -p 33333:33333 nimmis/resilio-sync
This variable defines if files removed from sync slaves should be put in an archive folder for a time defined by the variable RSLSYNC_TRASH_TIME before removed.
Default value is true, to disable this feature add
-e RSLSYNC_TRASH=false
to the docker start command
This variable defines how many days a file will be kept in the achive folder before it is removed. The variable is defined i days and the default value is 30 days. To change the time so achive files are saved 1 week add
-e RSLSYNC_TRASH_TIME=7
to the docker start command.
This variable defines the maximum size of files to be synced. The variable is defined in MB and the default value is 1000 MB (1GB).
To change maxmimum file size to 50 MB add
-e RSLSYNC_SIZE=50
to the docker start command
Inside the container the /data is the default sync directory, to link this to a local file system you can use the -v flag
To sync the the directory /home/joe you can run
docker run -d -v /home/joe:/data -p 33333:33333 nimmis/resilio-sync
This setting activates a web gui to configure the Resilio Sync client
This variable defines the username used to login to the web interface.
Setting this variable activates the web gui mode.
This variable defines the password used to login to the web interface. If this variable is not defined or empty an random password will be generated. The password can be retrieved from the log.
docker run -d -e RSLSYNC_USER=joe --name sync -p 8888:8888 -p 33333:33333 nimmis/resilio-sync
docker logs sync
Run scripts in /etc/run_once
WEBUI mode activated
RSLSYNC_PASS not set, password generated, use M2FlMjNkOG as password
In this case you should login with user joe and password M2FlMjNkOG
The sync mode version is made for syncing one directory only (you can manualy configure multiple directories), each directory (or sync point) need a uniq secret key. If you need several different directories synced, start a container for each directory
This variable contains the secret key fore this directory, if empty or missing a new secret key is generated. This key can then be used to start more sync klient for the data.
This variable controls which folder is synced (default = /data) and comes in handy when using data containers. To use it add the necessary --volumes-from option and set the RSLSYNC_PATH value to a VOLUME path from the the data container:
docker run -d --volumes-from <data-container> -e RSLSYNC_PATH=/other/location/in/data/container --name sync -p 33333:33333 nimmis/resilio-sync
The first nod creates a uniq secret used to sync all nodes, map the directory you wan't to be syncronized to /data in the container.
Example synk the directory /home/me/data on first nod giving it the name syncnode
docker run -d -v /home/me/data:/data --name sync -p 33333:33333 nimmis/resilio-sync
to see the secret code to use on the other nodes, look at the log-output from the container
> docker logs -f sync
Run scripts in /etc/run_once
non-WEBUI mode activated, /data is synced
add -e RSLSYNC_SECRET=AF2INNKYP672IGIIDTDWWVUBGP2AQRFKX to your other nodes to sync
Run scripts is /etc/run_always
Started runsvdir, PID is 14
wait for processes to start....
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog.so failed [v8.18.0 try http://www.rsyslog.com/e/2145 ]
run: rslsync: (pid 19) 5s
run: crond: (pid 20) 5s
run: rsyslogd: (pid 21) 5s
press CTRL-C to exit log
To get the other nodes to sync with the first, they have to have the same secret key. You add the key with -e RSLSYNC_SECRET=, start with the secret code created by the first sync container. The local director does not have to be the same as on the first container but all sub-folders will be the same. So starting a second sync container on another docker machine using local directory /home/you/sync-backup and using the secret key obtained from the first sync node example above
docker run -d -v /home/you/sync-backup:/data --name syncnode2 -P 33333:33333 -e RSLSYNC_SECRET=AF2INNKYP672IGIIDTDWWVUBGP2AQRFKX nimmis/resilio-sync
NOTE!!!!! DO NOT USE the secret key in this example, use the one you got from the first sync node run.