{"id":21204784,"url":"https://github.com/leslieleung/reaper","last_synced_at":"2025-04-06T16:16:00.678Z","repository":{"id":205349351,"uuid":"714024605","full_name":"LeslieLeung/reaper","owner":"LeslieLeung","description":"REpository ArchivER(REAPER) is a tool to archive repositories from any Git servers.","archived":false,"fork":false,"pushed_at":"2025-03-27T06:28:46.000Z","size":211,"stargazers_count":93,"open_issues_count":13,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T15:11:11.116Z","etag":null,"topics":["git-backup","github"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeslieLeung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-11-03T18:45:54.000Z","updated_at":"2024-12-27T04:04:50.000Z","dependencies_parsed_at":"2023-11-23T14:23:22.394Z","dependency_job_id":"7f1fdbc2-a24d-49bb-aada-bebfa731d017","html_url":"https://github.com/LeslieLeung/reaper","commit_stats":null,"previous_names":["leslieleung/reaper"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeslieLeung%2Freaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeslieLeung%2Freaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeslieLeung%2Freaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeslieLeung%2Freaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeslieLeung","download_url":"https://codeload.github.com/LeslieLeung/reaper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509238,"owners_count":20950232,"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":["git-backup","github"],"created_at":"2024-11-20T20:40:12.225Z","updated_at":"2025-04-06T16:16:00.661Z","avatar_url":"https://github.com/LeslieLeung.png","language":"Go","readme":"# REAPER\n\nEnglish | [简体中文](README_zh.md)\n\nREpository ArchivER(REAPER) is a tool to archive repositories from any Git servers.\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [rip](#rip)\n  - [run](#run)\n  - [bury](#bury)\n  - [daemon](#daemon)\n- [Configuration](#configuration)\n- [Storage](#storage)\n- [Run as docker container](#run-as-docker-container)\n  - [Docker CLI](#docker-cli)\n  - [Docker Compose](#docker-compose)\n\n## Features\n\n- Archive repositories from any Git servers\n- Archive repositories of a user/an organization (see [Configuration](https://github.com/LeslieLeung/reaper/wiki/Configuration#repository))\n- Cron support\n- Multiple storage types (see [Storage](#storage))\n- Docker support (see [Run as docker container](#run-as-docker-container))\n\n## Installation\n\n```bash\ncurl -sSfL https://raw.githubusercontent.com/LeslieLeung/reaper/main/install.sh | sh -s -- -b /usr/local/bin\n```\n\nOr get from [Release](https://github.com/LeslieLeung/reaper/releases).\n\n## Usage\n\nYou have to create a configuration file to use REAPER.\n\n```yaml\nrepository:\n  - name: reaper\n    url: github.com/leslieleung/reaper\n    cron: \"0 * * * *\"\n    storage:\n      - localFile\n      - backblaze\n    useCache: True\n\nstorage:\n  - name: localFile\n    type: file\n    path: ./repo\n  - name: backblaze\n    type: s3\n    endpoint: s3.us-west-000.backblazeb2.com\n    region: us-west-000\n    bucket: your-bucket-name\n    accessKeyID: your-access-key-id\n    secretAccessKey: your-secret-access-key\n```\n\nThen you can run REAPER with the configuration file.\n\n```bash\nreaper -c config.yaml\n# or simply call reaper if your configuration file is named config.yaml\nreaper\n```\n\n### rip\n\n`rip` archives a single repository defined in configuration.\n\n```bash\nreaper rip reaper\n```\n\n### run\n\n`run` archives all repositories defined in configuration.\n\n```bash\nreaper run\n```\n\nCombined with cron, you can archive repositories periodically.\n\n### bury\n\n`bury` archives all release assets of a repository.\n\n```bash\nreaper bury reaper\n```\n\n### daemon\n\n`daemon` runs REAPER as a daemon. It will archive all repositories defined in configuration periodically.\n\n```bash\nreaper daemon\n# You might want to run it with something like nohup\nnohup reaper daemon \u0026\n```\n\n## Configuration\n\nFor configuration, you can check out this [example](config/example.config.yaml).\n\nFor more details, see [Configuration](https://github.com/LeslieLeung/reaper/wiki/Configuration) in wiki.\n\n## Storage\n\nREAPER supports multiple storage types.\n\n- [x] File\n- [x] AWS S3\n\n## Run as docker container\n\n### Docker CLI\n\nOne-off run. \n- Change `${pwd}/config/example.config.yaml` to your config file path.\n- Customize `${pwd}/repo:/repo` to be your desired storage path. The in-container path needs to be the same as the path in config file.\n\n```bash\ndocker run --rm \\\n    -v ${pwd}/config/example.config.yaml:/config.yaml \\\n    -v ${pwd}/repo:/repo \\\n    leslieleung/reaper:latest \\\n    run\n```\n\n### Docker Compose\n\nFor example compose file, see [docker-compose.yml](docker-compose.yml).\n\n```bash\ndocker compose up -d\n```\n\n## FAQ\n\nSee [FAQ](https://github.com/LeslieLeung/reaper/wiki/FAQ).\n\n## Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/LeslieLeung/reaper.svg)](https://starchart.cc/LeslieLeung/reaper)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleslieleung%2Freaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleslieleung%2Freaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleslieleung%2Freaper/lists"}