rsync ===== Simple rsync server running in a docker container This is inspired by https://github.com/nabeken/docker-volume-container-rsync and https://github.com/bfosberry/rsync ## Basic usage Launch the container via docker: ``` docker run -d -p :873 --name rsyncd thomfab/docker-rsyncd ``` You can connect to the rsync server you just created with: ``` rsync rsync://:/ volume volume ``` To sync: ``` rsync -avP /path/to/dir rsync://:/volume/ ``` ## Advanced Some variables can be customized : ### VOLUME To set the name of the sync volume. Default is "volume" Example : ``` docker run -d -p :873 --name rsyncd \ -e VOLUME="backup" \ thomfab/docker-rsyncd ``` which will give : ``` rsync rsync://:/ backup backup ``` ### ALLOW By default, rsync server accepts a connection only from `192.168.0.0/16` and `172.12.0.0/12` for security reasons. You can override via an environment variable like this: ``` docker run -d -p :873 \ --name rsyncd \ -e ALLOW='10.0.0.0/8 x.x.x.x/y' \ thomfab/docker-rsyncd ``` ### OWNER By default the user "nobody" is used. You can customize and pass the id of a user the docker host (so that file perms are correct). Example, if your docker host has a user "ubuntu" with id 1000 you can use : ``` docker run -d -p :873 \ --name rsyncd \ -e OWNER=1000 \ thomfab/docker-rsyncd ``` Files created in the volume by rsyncd will belong to the user ubuntu (see volumes below). ### GROUP By default the group "nogroup" is used. You can also customize and pass the id of a group on the docker host. Example, if your docker host has a group "users" with id 100 you can use : ``` docker run -d -p :873 \ --name rsyncd \ -e GROUP=100 \ thomfab/docker-rsyncd ``` Files created in the volume by rsyncd will belong to the group users. ### Sync volume The sync folder exposed by rsyncd is a docker volume. You can map it to a local folder on the docker host : Example, if your docker host has a user "ubuntu" with id 1000 you can use : ``` docker run -d -p :873 \ --name rsyncd \ -v /path/to/host/folder:/volume \ thomfab/docker-rsyncd ``` ### Full example ``` docker run -d -p 873:873 \ --name rsyncd \ -e VOLUME="backup" \ -e OWNER=1000 \ -e GROUP=100 \ -v /srv/backup:/volume \ thomfab/docker-rsyncd ``` This will start an rsync daemon, exposed on the standard port, with a volume named "backup", and map it to the host folder /srv/backup. Files created during sync will belong to user "ubuntu" and group "users" on a standard Ubuntu install.