{"id":41363984,"url":"https://github.com/mrworf/iceshelf","last_synced_at":"2026-01-23T08:13:37.911Z","repository":{"id":79806957,"uuid":"43346988","full_name":"mrworf/iceshelf","owner":"mrworf","description":"A simple tool to allow storage of signed, encrypted, incremental backups using Amazon's Glacier storage","archived":false,"fork":false,"pushed_at":"2025-06-29T15:16:27.000Z","size":264,"stargazers_count":31,"open_issues_count":5,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-29T15:35:58.004Z","etag":null,"topics":["aws-glacier","backup","backup-files","glacier","gpg","parity"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrworf.png","metadata":{"files":{"readme":"README.iceshelf-restore.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":"2015-09-29T05:30:33.000Z","updated_at":"2025-06-22T04:59:15.000Z","dependencies_parsed_at":"2025-06-05T06:18:50.799Z","dependency_job_id":"3b4d5ff3-9fdb-441a-8a86-d17e7e63ccec","html_url":"https://github.com/mrworf/iceshelf","commit_stats":{"total_commits":159,"total_committers":3,"mean_commits":53.0,"dds":"0.018867924528301883","last_synced_commit":"26768dde3fc54fa412e523eb8f8552e866b4853b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrworf/iceshelf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrworf%2Ficeshelf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrworf%2Ficeshelf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrworf%2Ficeshelf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrworf%2Ficeshelf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrworf","download_url":"https://codeload.github.com/mrworf/iceshelf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrworf%2Ficeshelf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28684048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"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":["aws-glacier","backup","backup-files","glacier","gpg","parity"],"created_at":"2026-01-23T08:13:37.145Z","updated_at":"2026-01-23T08:13:37.906Z","avatar_url":"https://github.com/mrworf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iceshelf-restore\n\nA helper tool for iceshelf, allowing a somewhat easier way of restoring backups created by it.\n\n# Features\n\n- Quick validation of backup\n- Able to check for parent backup to avoid extacting in the wrong order (`--lastbackup`)\n- Can show contents of backup (`--list`)\n- Validate or restore a backup without needing the original config file\n- Allows for restore even when some files are missing (`--force`)\n- Initial validation of files using `filelist.txt` if available (will still confirm signatures)\n- Can attempt parity repair using `--repair`\n\n# Known issues\n\nBackup must be alone in a directory, you cannot store multiple backups in a folder since it simply picks the first manifest. This is on the todo list to fix\n\n# Usage\n\nThe tool accepts either a single file from the backup or just the prefix of the backup files. Configuration is optional, but can be provided using `--config` if you have it available. Without it you may supply the GPG user using `--user` and the passphrase using `--passphrase`.\nRunning the command with no extra arguments will validate the backup and return `0` on success.\n\nNote! If the archive is corrupt, it will only tell you if there is the possibility to repair it. It is *NO GUARANTEE* that you actually can.\n\n## Listing the contents\n\nAdding `--list` will print the contents of the backup as specified by the manifest, including the parent backup (if available).\n\n## Validating the backup\n\n`--validate` performs a full validation of the backup without extracting any files. Combine with `--repair` to fix corrupted archives if parity files are available.\n\n## Restoring the backup\n\nAdd `--restore` with a folder where you want the backup restored. The tool will automatically locate the necessary files based on the provided prefix or file path. Extra verification is performed to ensure the archive matches the manifest. If a file is present in the archive but not in the manifest, it will error out. This is by design to avoid causing unexpected issues after restoring.\n\nNote! Once the restore process has started, a failure to remove or rename/move an existing file will only cause a warning, restore will still continue.\n\n## Corrupt backup\n\nIf one or more files are missing (such as the manifest), you can still make `iceshelf-restore` try to process it by specifying `--force`.\n\nIf the archive is corrupt but parity files are available you can try fixing it using `--repair`.\n\nNote! It will *NOT* extract any file, it will simply verify as many files as possible as well as repair and decrypt if possible.\n\n## What does `--debug` do?\n\nIt will give you some extra information while running, which normally isn't needed but can be helpful in understanding what's going wrong if `iceshelf-restore` isn't behaving as expected.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrworf%2Ficeshelf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrworf%2Ficeshelf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrworf%2Ficeshelf/lists"}