{"id":13929940,"url":"https://github.com/axiom-data-science/rsync-server","last_synced_at":"2025-07-19T12:31:00.622Z","repository":{"id":45792928,"uuid":"55259150","full_name":"axiom-data-science/rsync-server","owner":"axiom-data-science","description":"A rsyncd/sshd server in Docker. You know, for moving files.","archived":false,"fork":false,"pushed_at":"2024-09-09T15:28:18.000Z","size":22,"stargazers_count":50,"open_issues_count":2,"forks_count":60,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-09-09T19:12:15.908Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axiom-data-science.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-01T20:04:32.000Z","updated_at":"2024-09-09T15:28:22.000Z","dependencies_parsed_at":"2024-09-09T18:41:43.214Z","dependency_job_id":"b884eff0-4fc4-4780-81fe-935c4698b895","html_url":"https://github.com/axiom-data-science/rsync-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axiom-data-science%2Frsync-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axiom-data-science%2Frsync-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axiom-data-science%2Frsync-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axiom-data-science%2Frsync-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axiom-data-science","download_url":"https://codeload.github.com/axiom-data-science/rsync-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226607547,"owners_count":17658470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-07T18:02:37.971Z","updated_at":"2025-07-19T12:31:00.611Z","avatar_url":"https://github.com/axiom-data-science.png","language":"Shell","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# THIS PROJECT IS UNMAINTAINED AND ARCHIVED. USE AT YOUR OWN RISK.\n\n# rsync-server\n\nA `rsyncd`/`sshd` server in Docker. You know, for moving files.\n\n## Quickstart\n\nStart a server (both `sshd` and `rsyncd` are supported)\n\n```shell\ndocker run \\\n    --name rsync-server \\\n    -p 8000:873 \\\n    -p 9000:22 \\\n    -e USERNAME=user \\\n    -e PASSWORD=someSecurePassword_NOT_THIS \\\n    -v /your/public.key:/root/.ssh/authorized_keys \\\n    axiom/rsync-server:latest\n```\n\n**You must set a password via `PASSWORD` or `PASSWORD_FILE`, even if you are using key authentication.**\n\n### `rsyncd`\n\nPlease note that `/volume` is the `rsync` volume pointing to `/data`. The data\nwill be at `/data` in the container. Use the `VOLUME` parameter to change the\ndestination path in the container. Even when changing `VOLUME`, you will still\n`rsync` to `/volume`.\n\n```shell\nrsync -av /your/folder/ rsync://user@localhost:8000/volume\nPassword: pass\n\nsending incremental file list\n./\nfoo/\nfoo/bar/\nfoo/bar/hi.txt\n\nsent 166 bytes  received 39 bytes  136.67 bytes/sec\ntotal size is 0  speedup is 0.00\n```\n\n### `sshd`\n\nPlease note that you are connecting as the `root` and not the user specified in\nthe `USERNAME` variable. If you don't supply a key file you will be prompted\nfor the `PASSWORD`.\n\n```shell\nrsync -av -e \"ssh -i /your/private.key -p 9000 -l root\" /your/folder/ localhost:/data\n\nsending incremental file list\n./\nfoo/\nfoo/bar/\nfoo/bar/hi.txt\n\nsent 166 bytes  received 31 bytes  131.33 bytes/sec\ntotal size is 0  speedup is 0.00\n```\n\n## Usage\n\nVariable options (on run)\n\n|     Parameter     | Function |\n| :---------------: | -------- |\n| `USERNAME`        | the `rsync` username. defaults to `user`|\n| `PASSWORD`        | the `rsync` password. **One of `PASSWORD` or `PASSWORD_FILE` is required.**|\n| `PASSWORD_FILE`   | path to a file containing the `rsync` password. **One of `PASSWORD` or `PASSWORD_FILE` is required.**|\n| `AUTHORIZED_KEYS` | the `ssh` key (for root user). defaults empty |\n| `VOLUME`   | the path for `rsync`. defaults to `/data`|\n| `PUID`     | UserID used to transfer files when running the rsync . defaults to `root`|\n| `GUID`     | GroupID used to transfer files when running the rsync . defaults to `root`|\n| `DENY`     | space separated list of allowed sources. defaults to `*`|\n| `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`.|\n| `RO`     | `rsync` volume read only. defaults to `false`|\n| `CUSTOMCONFIG` | rsyncd.conf custom config for subsection volume (`\\n\\t` for new line ex: `uid = root\\n\\tgid = root`). defaults empty |\n\n### Simple server on port 873\n\n```shell\ndocker run -p 873:873 -e PASSWORD=changeme axiom/rsync-server:latest\n```\n\n### Use a volume for the default `/data`\n\n```shell\ndocker run -p 873:873 -e PASSWORD=seriouslychangeme -v /your/folder:/data axiom/rsync-server:latest\n```\n\n### Set a username and password\n\n```shell\ndocker run \\\n    -p 873:873 \\\n    -v /your/folder:/data \\\n    -e USERNAME=admin \\\n    -e PASSWORD=imnotkidding \\\n    axiom/rsync-server:latest\n```\n\n### Set password via file\n\n```shell\ndocker run \\\n    -p 873:873 \\\n    -v /your/folder:/data \\\n    -v ./password-file-with-secure-permissions:/etc/rsyncd/password:ro \\\n    -e USERNAME=admin \\\n    -e PASSWORD_FILE=/etc/rsyncd/password \\\n    axiom/rsync-server:latest\n```\n\n### Run on a custom port\n\n```shell\ndocker run \\\n    -p 9999:873 \\\n    -v /your/folder:/data \\\n    -e USERNAME=admin \\\n    -e PASSWORD=plzchng \\\n    axiom/rsync-server:latest\n```\n\n```shell\nrsync rsync://admin@localhost:9999\n\nvolume            /data directory\n```\n\n### Modify the default volume location\n\n```shell\ndocker run \\\n    -p 9999:873 \\\n    -v /your/folder:/myvolume \\\n    -e USERNAME=admin \\\n    -e PASSWORD=yougetitnow \\\n    -e VOLUME=/myvolume \\\n    axiom/rsync-server:latest\n```\n\n```shell\nrsync rsync://admin@localhost:9999\n\nvolume            /myvolume directory\n```\n\n### Allow specific client IPs\n\n```shell\ndocker run \\\n    -p 9999:873 \\\n    -v /your/folder:/myvolume \\\n    -e USERNAME=admin \\\n    -e PASSWORD=hopesoanyway \\\n    -e VOLUME=/myvolume \\\n    -e ALLOW=192.168.24.0/24 \\\n    axiom/rsync-server:latest\n```\n\n### Over SSH\n\nIf you would like to connect over ssh, you may mount your public key or\n`authorized_keys` file to `/root/.ssh/authorized_keys`. This file\nmust have owner root, group root, and 400 octal permissions.\n\nAlternatively, you may specify the `AUTHORIZED_KEYS` environment variable.\n\nWithout setting up an `authorized_keys` file, you will be propted for the\npassword (which was specified in the `PASSWORD` variable).\n\nPlease note that when using `sshd` **you will be specifying the actual folder\ndestination as you would when using SSH.** On the contrary, when using the\n`rsyncd` daemon, you will always be using `/volume`, which maps to `VOLUME`\ninside of the container.\n\n```shell\ndocker run \\\n    -v /your/folder:/myvolume \\\n    -e USERNAME=admin \\\n    -e PASSWORD=2manyp455w0rd5 \\\n    -e VOLUME=/myvolume \\\n    -e ALLOW=10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 127.0.0.1/32 \\\n    -v /my/authorized_keys:/root/.ssh/authorized_keys \\\n    -p 9000:22 \\\n    axiom/rsync-server:latest\n```\n\n```shell\nrsync -av -e \"ssh -i /your/private.key -p 9000 -l root\" /your/folder/ localhost:/data\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxiom-data-science%2Frsync-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxiom-data-science%2Frsync-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxiom-data-science%2Frsync-server/lists"}