{"id":15707684,"url":"https://github.com/thenets/rsync-backup-archive","last_synced_at":"2026-05-03T16:32:09.862Z","repository":{"id":87614430,"uuid":"407788139","full_name":"thenets/rsync-backup-archive","owner":"thenets","description":"The easiest way to backup files 💾  using rsync.","archived":false,"fork":false,"pushed_at":"2021-09-18T23:51:27.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T23:35:16.051Z","etag":null,"topics":["backup","docker","docker-image"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thenets.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-09-18T07:22:41.000Z","updated_at":"2023-07-10T07:01:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"5630e873-a336-4739-8c7e-05e90706cd39","html_url":"https://github.com/thenets/rsync-backup-archive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thenets/rsync-backup-archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thenets%2Frsync-backup-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thenets%2Frsync-backup-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thenets%2Frsync-backup-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thenets%2Frsync-backup-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thenets","download_url":"https://codeload.github.com/thenets/rsync-backup-archive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thenets%2Frsync-backup-archive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32577120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["backup","docker","docker-image"],"created_at":"2024-10-03T20:41:06.339Z","updated_at":"2026-05-03T16:32:09.843Z","avatar_url":"https://github.com/thenets.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Docker Repository on Quay](https://quay.io/repository/thenets/rsync-backup-archive/status \"Docker Repository on Quay\")](https://quay.io/repository/thenets/rsync-backup-archive)\n\n# rsync-backup-archive\n\nThe easiest way to backup files using `rsync`.\n\n## 👨‍💻 Motivation\n\nI needed a simple way to back up my own personal servers. Doesn't exist something critical there that must have the best resilience or something like that.\n\nI wanted a way to have copies of my files in case of some server blow up and if I have a simple way to do that, it's even better.\n\nYou can check my blog post to learn more about the `rsync` command that this project uses and how it works:\n- [Using rsync to backup Linux servers](https://blog.thenets.org/using-rsync-to-backup-linux-servers/)\n\n\u003e 🔴 You should not use this kind of solution for a critical production environment! Choose some cloud provider, like AWS, GCP, or Azure, and use their snapshot/backup solutions instead.\n\u003e This is for hobby projects and personal use-cases.\n\n## 🚢 How to use\n\nChoose the environment variables that you need and mount the volume where you want to store the backups.\n\nContainer image:\n- `quay.io/thenets/rsync-backup-archive:latest`\n\nExample:\n\n\u003e 💡 Check the `docker-compose.yml` example below for more details and how to use it.\n\n```bash\ndocker run -it \\\n    --name \"my-rsync-backup\" \\\n    --restart unless-stopped \\\n    -e REMOTE_SSH_EXTRA_OPTS=\"-o StrictHostKeyChecking=no\" \\\n    -e REMOTE_SSH_HOST=\"my-server.com\" \\\n    -e REMOTE_RSYNC_INTERVAL_SECONDS=\"3600\" \\\n    -v  \"~/.ssh:/secrets:ro\" \\\n    -v \"~/backup/my-server-com:/output:rw\" \\\n    quay.io/thenets/rsync-backup-archive:latest\n```\n\n### 🛠 Environment variables\n\n- `LOCAL_OUTPUT_DIR`: [default: /output] local container directory to store the backup files.\n- `REMOTE_SSH_HOST`: [default: localhost] `[required]` remote server domain or ip address.\n- `REMOTE_INPUT_DIR`: [default: /input] remote directory to copy files from.\n- `REMOTE_SSH_USER`: [default: root] remote ssh server username.\n- `REMOTE_SSH_PORT`: [default: 22] remote ssh server port\n- `REMOTE_SSH_KEY`: [default: /secrets/id_rsa] ssh private key file path.\n- `REMOTE_SSH_EXTRA_OPTS`: [default: \"\"] extra arguments to pass to ssh command\n- `REMOTE_RSYNC_EXTRA_OPTS`: [default: \"\"] extra arguments to pass to rsync command\n- `REMOTE_RSYNC_INTERVAL_SECONDS`: [default: 0] Never run rsync again if 0. In other words, runs only once.\n\n### 🐳 docker-compose.yaml example:\n\n```yaml\n---\nversion: \"3.3\"\nservices:\n  my-rsync-backup:\n    image: quay.io/thenets/rsync-backup-archive:latest\n\n    # Container name\n    container_name: \"my-rsync-backup\"\n\n    # Restarts the container if the process exits with a\n    # non-zero exit code. (in case of errors)\n    restart: unless-stopped\n\n    environment:\n      # Probably you want to skip the public key check\n      - \"REMOTE_SSH_EXTRA_OPTS=-o StrictHostKeyChecking=no\"\n\n      # Remote host domain or IP address\n      - \"REMOTE_SSH_HOST=my-server.com\"\n\n      # Remote directory to backup\n      - \"REMOTE_INPUT_DIR=/opt/my_data\"\n\n      # This makes this container never exit\n      # unless some error occurs\n      - \"REMOTE_RSYNC_INTERVAL_SECONDS=3600\"\n    volumes:\n      # Pass the host user ssh key to the container\n      - \"~/.ssh:/secrets:ro\"\n\n      # Pass the local output directory to the container\n      # this is the directory where the backup files will be stored.\n      # If you do not define this, all the files will be lost \n      # after the container exits\n      - \"~/backup/my-server-com:/output:rw\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenets%2Frsync-backup-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthenets%2Frsync-backup-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenets%2Frsync-backup-archive/lists"}