{"id":31199492,"url":"https://github.com/hhftechnology/docker-backup-restore","last_synced_at":"2025-09-20T09:41:11.068Z","repository":{"id":310964228,"uuid":"1041927153","full_name":"hhftechnology/docker-backup-restore","owner":"hhftechnology","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-21T08:31:26.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-21T10:33:04.838Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hhftechnology.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,"zenodo":null}},"created_at":"2025-08-21T08:10:59.000Z","updated_at":"2025-08-21T08:31:29.000Z","dependencies_parsed_at":"2025-08-21T10:33:08.578Z","dependency_job_id":"679dbfcb-01de-4fc9-bdbf-3cc5f1e44037","html_url":"https://github.com/hhftechnology/docker-backup-restore","commit_stats":null,"previous_names":["hhftechnology/docker-backup-restore"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/hhftechnology/docker-backup-restore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2Fdocker-backup-restore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2Fdocker-backup-restore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2Fdocker-backup-restore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2Fdocker-backup-restore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hhftechnology","download_url":"https://codeload.github.com/hhftechnology/docker-backup-restore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2Fdocker-backup-restore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276077875,"owners_count":25581289,"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","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-09-20T09:41:08.027Z","updated_at":"2025-09-20T09:41:11.060Z","avatar_url":"https://github.com/hhftechnology.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker-backup-restore-toolkit\n\n---\n\n- [Installation](#-installation)\n- [Usage](#-usage)\n  - [backup](#backup)\n  - [restore](#restore)\n- [Contributing](#-contributing)\n- [License](#license)\n\n##  Installation\n\nClone the repository and make the script executable:\n\n```bash\ngit clone https://github.com/hhftechnology/docker-backup-restore.git\ncd docker-backup-restore\nchmod +x toolkit.sh\n```\n\n##  Usage\n\nThe toolkit provides both CLI and interactive modes. If run without arguments (`./toolkit.sh`), it enters interactive menu mode for backup, restore, listing backups, etc. For CLI usage:\n\n```text\nUsage: toolkit.sh [options] [command]\n\nDocker volume backup and restore utility\nAuthor: @hhftechnology, https://github.com/hhftechnology\n\nOptions:\n  -V, --version                         output the version number\n  -h, --help                            display help for command\n\nCommands:\n  backup [options]                      backup from volume or volumes of a container\n  restore [options]                     restore backup to volume\n  help [command]                        display help for command\n```\n\n### backup\n\nThis command is used to backup a container's volumes or a single volume to timestamped tar files (e.g., `my-volume-20250821123456.tar.gz`).\n\n#### Options\n\n```txt\nUsage: toolkit.sh backup [options]\n\nbackup from volume or volumes of a container\n\nOptions:\n  -c, --container \u003ccontainer-name\u003e      backup all volumes of a container\n  -v, --volume \u003cvolume-name\u003e            backup a single volume\n  -h, --help                            display help for command\n```\n\nIf no options are provided for `backup`, it will prompt for a container name interactively.\n\n###### Examples\n\n```bash\n# Backup from all volumes of a container\n./toolkit.sh backup --container my-container\n\n# Backup from a single volume\n./toolkit.sh backup --volume my-volume\n```\n\n### restore\n\nThis command is used to restore from a backup tar file to a volume. Backups are assumed to be in the current directory.\n\n#### Options\n\n```txt\nUsage: toolkit.sh restore [options]\n\nrestore backup to volume\n\nOptions:\n  -v, --volume \u003cvolume-name\u003e            restore to this volume (required for single restore)\n  -f, --file \u003cfile-name\u003e                backup file to restore (required for single restore)\n  -t, --timestamp \u003ctimestamp\u003e           restore all volumes from backups with this timestamp\n  -h, --help                            display help for command\n```\n\nIf no options are provided for `restore`, it enters an interactive restore menu where you can select versions or single backups.\n\n###### Examples\n\n```bash\n# Restore a single backup to a volume\n./toolkit.sh restore --volume my-volume --file my-volume-20250821123456.tar.gz\n\n# Restore all volumes from a specific timestamp\n./toolkit.sh restore --timestamp 20250821123456\n```\n\n#### Interactive Mode\n\nRun `./toolkit.sh` without arguments to access the main menu:\n\n1. Backup  \n   - Submenu for backing up containers or single volumes.  \n   - For containers: Lists all containers with their associated volumes (if any), user selects by number to backup those volumes.  \n   - For single volume: Lists all available volumes, user selects by number to backup.  \n2. Restore  \n   - Submenu for restoring a full version (all volumes from a timestamp) or a single backup.  \n   - Lists available timestamps with formatted dates and associated volumes.  \n   - For versions: Select by number, confirm, and restore all matching backups.  \n   - For single: Select backup file, confirm or change target volume, and restore.  \n3. List Backups  \n   - Displays grouped backups by timestamp, showing formatted dates and volumes.  \n4. Help  \n   - Shows usage information.  \n5. Exit  \n\nBackups are versioned by timestamp. Restore operations overwrite existing volume data—use with caution. For consistency, consider stopping related containers before backup/restore. The script exits on errors such as non-existent containers or volumes.\n\n##  Contributing\n\nContributions are welcome! Please submit pull requests for improvements.\n\n##  License\n\nMIT License\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Fdocker-backup-restore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhhftechnology%2Fdocker-backup-restore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Fdocker-backup-restore/lists"}