{"id":16172428,"url":"https://github.com/richardklose/github-release-mirror","last_synced_at":"2025-03-19T00:30:45.125Z","repository":{"id":172727584,"uuid":"191027710","full_name":"richardklose/github-release-mirror","owner":"richardklose","description":"A mirror for releases of GitHub projects","archived":false,"fork":false,"pushed_at":"2019-06-17T09:17:15.000Z","size":8,"stargazers_count":22,"open_issues_count":3,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-28T13:18:41.714Z","etag":null,"topics":["bash","cron","docker","github","mirror","release"],"latest_commit_sha":null,"homepage":"https://blog.klose.dev/mirroring-releases-from-github/","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/richardklose.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":"2019-06-09T16:09:29.000Z","updated_at":"2024-07-31T11:51:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"165273f4-01d5-4e44-8fcc-3679b08b8b3a","html_url":"https://github.com/richardklose/github-release-mirror","commit_stats":null,"previous_names":["richardklose/github-release-mirror"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardklose%2Fgithub-release-mirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardklose%2Fgithub-release-mirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardklose%2Fgithub-release-mirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardklose%2Fgithub-release-mirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardklose","download_url":"https://codeload.github.com/richardklose/github-release-mirror/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955757,"owners_count":20374373,"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":["bash","cron","docker","github","mirror","release"],"created_at":"2024-10-10T03:45:38.678Z","updated_at":"2025-03-19T00:30:44.849Z","avatar_url":"https://github.com/richardklose.png","language":"Shell","readme":"\u003ch1 align=\"center\"\u003eWelcome to github-release-mirror 👋\u003c/h1\u003e\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-0.0.1-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003ca href=\"https://github.com/richardklose/github-release-mirror/blob/master/LICENSE\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://cloud.docker.com/repository/docker/richardklose/github-release-mirror\"\u003e\n    \u003cimg alt=\"Docker: richardklose/github-release-mirror\" src=\"https://img.shields.io/docker/cloud/build/richardklose/github-release-mirror.svg\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/richard_klose\"\u003e\n    \u003cimg alt=\"Twitter: richard_klose\" src=\"https://img.shields.io/twitter/follow/richard_klose.svg?style=social\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Mirroring releases of GitHub projects made easy\n\n### 🏠 [Homepage](https://github.com/richardklose/github-release-mirror) | 📝 [Blog post](https://blog.klose.dev/mirroring-releases-from-github/)\n\nMany packages download prebuilt binaries from their GitHub Release. That has some disadvantages:\n * No reproducible builds. If the project is removed from GitHub, the prebuilt binaries are gone.\n * Required internet connection. If you can't access the internet or GitHub is down, you can't download binaries from there.\n * Installation speed depends on internet connection speed. Downloading from GitHub is always slower than downloading from a server in your local network.\n\nEspecially in an enterprise environment, it's not always the best solution to depend on external servers. On the other hand, you don't want to recompile every external library on every build.\n\nThis project is a simple mirror, that downloads and keeps releases of GitHub Projects on your own server.\n\n## Install\n\nThe easiest way is, to use docker, but you can also use the [mirror.sh](mirror.sh) script manually.\nRecurring updates are run by cron, where every mirrored project has it's own cronjob, so you should overwrite this project's crontab with your own, in order to manage your mirrored projects.\n 1. Create a crontab with a cronjob for each project. (E.g. mirroring node-sass and electron releases)\n  ```bash\n  0 3 * * * /opt/mirror.sh sass/node-sass\n  0 4 * * * /opt/mirror.sh electron/electron.\n  ```\n  2. Create a folder, where the downloaded release can be stored permanently.\n  3. Run docker:\n  ```bash\n  docker run \\\n    -p 80:80 \\\n    -v /path/to/your/crontab:/etc/cron.d/mirror-cron \\\n    -v /path/to/your/storage/folder:/mirror\n    --name github-release-mirror \\\n    richardklose/github-release-mirror\n  ```\n\n## Usage\n\nUse it, e.g. in `.npmrc` for node-sass and electron:\n  ```bash\n  sass_binary_site=http://\u003cip-of-your-server\u003e/sass/node-sass\n  electron_mirror=http://\u003cip-of-your-server\u003e/electron/electron/v\n  ```\n  You can also browse the downloaded files by opening your servers IP in a browser.\n\n## Author\n\n👤 **Richard Klose \u0026lt;richard@klose.dev\u0026gt;**\n\n* Twitter: [@richard_klose](https://twitter.com/richard_klose)\n* Github: [@richardklose](https://github.com/richardklose)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/richardklose/github-release-mirror/issues).\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © 2019 [Richard Klose \u0026lt;richard@klose.dev\u0026gt;](https://github.com/richardklose).\u003cbr /\u003e\nThis project is [MIT](https://github.com/richardklose/github-release-mirror/blob/master/LICENSE) licensed.\n\n## Support on Beerpay\nHey dude! Help me out for a couple of :beers:!\n\n[![Beerpay](https://beerpay.io/richardklose/github-release-mirror/badge.svg?style=beer-square)](https://beerpay.io/richardklose/github-release-mirror)  [![Beerpay](https://beerpay.io/richardklose/github-release-mirror/make-wish.svg?style=flat-square)](https://beerpay.io/richardklose/github-release-mirror?focus=wish)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardklose%2Fgithub-release-mirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardklose%2Fgithub-release-mirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardklose%2Fgithub-release-mirror/lists"}