Git Product home page Git Product logo

rsync-server's Introduction

rsync-server

A rsyncd/sshd server in Docker. You know, for moving files.

Quickstart

Start a server (both sshd and rsyncd are supported)

docker run \
    --name rsync-server \
    -p 8000:873 \
    -p 9000:22 \
    -e USERNAME=user \
    -e PASSWORD=someSecurePassword_NOT_THIS \
    -v /your/public.key:/root/.ssh/authorized_keys \
    axiom/rsync-server:latest

You must set a password via PASSWORD or PASSWORD_FILE, even if you are using key authentication.

rsyncd

Please note that /volume is the rsync volume pointing to /data. The data will be at /data in the container. Use the VOLUME parameter to change the destination path in the container. Even when changing VOLUME, you will still rsync to /volume.

rsync -av /your/folder/ rsync://user@localhost:8000/volume
Password: pass

sending incremental file list
./
foo/
foo/bar/
foo/bar/hi.txt

sent 166 bytes  received 39 bytes  136.67 bytes/sec
total size is 0  speedup is 0.00

sshd

Please note that you are connecting as the root and not the user specified in the USERNAME variable. If you don't supply a key file you will be prompted for the PASSWORD.

rsync -av -e "ssh -i /your/private.key -p 9000 -l root" /your/folder/ localhost:/data

sending incremental file list
./
foo/
foo/bar/
foo/bar/hi.txt

sent 166 bytes  received 31 bytes  131.33 bytes/sec
total size is 0  speedup is 0.00

Usage

Variable options (on run)

Parameter Function
USERNAME the rsync username. defaults to user
PASSWORD the rsync password. One of PASSWORD or PASSWORD_FILE is required.
PASSWORD_FILE path to a file containing the rsync password. One of PASSWORD or PASSWORD_FILE is required.
AUTHORIZED_KEYS the ssh key (for root user). defaults empty
VOLUME the path for rsync. defaults to /data
PUID UserID used to transfer files when running the rsync . defaults to root
GUID GroupID used to transfer files when running the rsync . defaults to root
DENY space separated list of allowed sources. defaults to *
ALLOW space separated list of allowed sources. defaults to 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 127.0.0.1/32.
RO rsync volume read only. defaults to false
CUSTOMCONFIG rsyncd.conf custom config for subsection volume (\n\t for new line ex: uid = root\n\tgid = root). defaults empty

Simple server on port 873

docker run -p 873:873 -e PASSWORD=changeme axiom/rsync-server:latest

Use a volume for the default /data

docker run -p 873:873 -e PASSWORD=seriouslychangeme -v /your/folder:/data axiom/rsync-server:latest

Set a username and password

docker run \
    -p 873:873 \
    -v /your/folder:/data \
    -e USERNAME=admin \
    -e PASSWORD=imnotkidding \
    axiom/rsync-server:latest

Set password via file

docker run \
    -p 873:873 \
    -v /your/folder:/data \
    -v ./password-file-with-secure-permissions:/etc/rsyncd/password:ro \
    -e USERNAME=admin \
    -e PASSWORD_FILE=/etc/rsyncd/password \
    axiom/rsync-server:latest

Run on a custom port

docker run \
    -p 9999:873 \
    -v /your/folder:/data \
    -e USERNAME=admin \
    -e PASSWORD=plzchng \
    axiom/rsync-server:latest
rsync rsync://admin@localhost:9999

volume            /data directory

Modify the default volume location

docker run \
    -p 9999:873 \
    -v /your/folder:/myvolume \
    -e USERNAME=admin \
    -e PASSWORD=yougetitnow \
    -e VOLUME=/myvolume \
    axiom/rsync-server:latest
rsync rsync://admin@localhost:9999

volume            /myvolume directory

Allow specific client IPs

docker run \
    -p 9999:873 \
    -v /your/folder:/myvolume \
    -e USERNAME=admin \
    -e PASSWORD=hopesoanyway \
    -e VOLUME=/myvolume \
    -e ALLOW=192.168.24.0/24 \
    axiom/rsync-server:latest

Over SSH

If you would like to connect over ssh, you may mount your public key or authorized_keys file to /root/.ssh/authorized_keys.

Without setting up an authorized_keys file, you will be propted for the password (which was specified in the PASSWORD variable).

Please note that when using sshd you will be specifying the actual folder destination as you would when using SSH. On the contrary, when using the rsyncd daemon, you will always be using /volume, which maps to VOLUME inside of the container.

docker run \
    -v /your/folder:/myvolume \
    -e USERNAME=admin \
    -e PASSWORD=2manyp455w0rd5 \
    -e VOLUME=/myvolume \
    -e ALLOW=10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 127.0.0.1/32 \
    -v /my/authorized_keys:/root/.ssh/authorized_keys \
    -p 9000:22 \
    axiom/rsync-server:latest
rsync -av -e "ssh -i /your/private.key -p 9000 -l root" /your/folder/ localhost:/data

rsync-server's People

Contributors

kwilcox avatar srstsavage avatar brawn1 avatar gamegine avatar

Stargazers

colin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.