{"id":49575242,"url":"https://github.com/rollecode/backup-to-storagebox","last_synced_at":"2026-05-03T16:11:09.641Z","repository":{"id":298968344,"uuid":"1001555252","full_name":"rollecode/backup-to-storagebox","owner":"rollecode","description":"A bash utility for backing up your entire Linux box to Hetzner storagebox.","archived":false,"fork":false,"pushed_at":"2026-03-03T12:55:18.000Z","size":97,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-02T13:33:28.044Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/rollecode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-13T15:25:35.000Z","updated_at":"2026-03-03T12:55:22.000Z","dependencies_parsed_at":"2025-09-02T18:13:09.881Z","dependency_job_id":"2ecc4541-0148-4e19-a7df-f29d4b18fab9","html_url":"https://github.com/rollecode/backup-to-storagebox","commit_stats":null,"previous_names":["ronilaukkarinen/backup-to-storagebox","rollecode/backup-to-storagebox"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/rollecode/backup-to-storagebox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fbackup-to-storagebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fbackup-to-storagebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fbackup-to-storagebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fbackup-to-storagebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rollecode","download_url":"https://codeload.github.com/rollecode/backup-to-storagebox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fbackup-to-storagebox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32575404,"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":[],"created_at":"2026-05-03T16:11:08.961Z","updated_at":"2026-05-03T16:11:09.633Z","avatar_url":"https://github.com/rollecode.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Backup to Storagebox\n\n![Version](https://img.shields.io/badge/version-2.8.1-blue?style=for-the-badge) ![Hetzner](https://img.shields.io/badge/hetzner-%23d50c2d.svg?style=for-the-badge\u0026logo=hetzner\u0026logoColor=white) ![Better Stack](https://img.shields.io/badge/Better%20Stack-%235b63d3.svg?style=for-the-badge\u0026logo=betterstack\u0026logoColor=white) ![Rsync](https://img.shields.io/badge/rsync-%23FF6B35.svg?style=for-the-badge\u0026logo=rsync\u0026logoColor=white) ![Bash](https://img.shields.io/badge/bash-%23121011.svg?style=for-the-badge\u0026color=%23222222\u0026logo=gnu-bash\u0026logoColor=white) \n\nA simple, fast backup script for Hetzner Storageboxes.\n\n## ⚡ Quick start\n\n```bash\n# 1. Copy and configure the environment file\ncp .env.example .env\n# Edit .env with your Storagebox credentials\n\n# 2. Run backups with simple command-line syntax\n./backup-to-storagebox.sh / /backups/myserver/linux\n./backup-to-storagebox.sh /home/user /backups/myserver/home\n./backup-to-storagebox.sh /var/www /backups/myserver/www\n```\n\n### Required environment variables\n\n- `STORAGEBOX_USER` - Your Storagebox username (e.g., u123456)\n- `STORAGEBOX_HOST` - Your Storagebox hostname (e.g., u123456.your-storagebox.de)\n\n### Optional environment variables\n\n- `SSH_KEY_PATH` - SSH key path (default: ~/.ssh/id_rsa)\n- `SSH_PORT` - SSH port (default: 23)\n- `RSYNC_MAX_SIZE` - Max file size (default: 2G)\n- `RSYNC_TIMEOUT` - Connection timeout (default: 300)\n- `RSYNC_BANDWIDTH_LIMIT` - Bandwidth limit (e.g., 1000 for 1MB/s)\n- `BETTER_STACK_HEARTBEAT` - Better Stack heartbeat URL for monitoring\n- `DRY_RUN` - Set to 'true' for dry run\n\n## 🔧 Features\n\n- ✅ **Simple command-line interface** - No config files needed\n- ✅ **Progress display** - See individual file transfers\n- ✅ **File size limiting** - Skip large files automatically\n- ✅ **Configurable excludes** - Control what to exclude via EXCLUDES environment variable\n- ✅ **Incremental backups** - Only transfers changed files\n- ✅ **Automatic crontab backup** - Backs up all crontabs when running as root\n- ✅ **Better Stack monitoring** - Optional heartbeat notifications\n- ✅ **Dry run support** - Test before running\n- ✅ **Hetzner Storagebox optimized** - Works perfectly with Storagebox SSH/SFTP\n\n### Test backup (dry run)\n```bash\n# Edit .env to set DRY_RUN=true\n./backup-to-storagebox.sh /var/www /backups/myserver/www\n```\n\n## 🔑 SSH key setup\n\n1. Generate SSH key if you don't have one:\n```bash\nssh-keygen -t rsa -b 4096\n```\n\n2. Install key on Storagebox:\n```bash\ncat ~/.ssh/id_rsa.pub | ssh -p 23 u123456@u123456.your-storagebox.de install-ssh-key\n```\n\n## ⏰ Cronjob\n\n### Daily backup at 2 AM\n```bash\n# Edit crontab\ncrontab -e\n\n# Add this line for daily backup at 2:00 AM\n0 2 * * * /path/to/backup-to-storagebox.sh / /backups/myserver/linux \u003e\u003e /var/log/backup.log 2\u003e\u00261\n```\n\n## 📊 What you'll see\n\n```\n⚡ Backup to Storagebox v2.0.0\n📁 Source: /home/user/\n🎯 Dest: u123456@u123456.your-storagebox.de:backups/myserver/home\n📏 Largest file allowed: 2G\n\n🔌 Testing connection...\n✅ Connected\n📁 Creating destination...\n✅ Destination ready\n\n🚀 Starting backup...\nsending incremental file list\n./\nDocuments/\nDocuments/file1.txt\n          1,234 100%    1.23MB/s    0:00:00 (xfr#1, to-chk=123/456)\n...\n\n🎉 Backup completed in 45s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fbackup-to-storagebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frollecode%2Fbackup-to-storagebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fbackup-to-storagebox/lists"}