[
  {
    "path": ".github/workflows/main.yml",
    "content": "name: Check Mirrors\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  check-mirrors:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Check out code\n        uses: actions/checkout@v3\n\n      - name: Install dependencies\n        run: |\n          sudo apt-get update\n          sudo apt-get install -y curl jq\n\n          sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq\n          sudo chmod +x /usr/bin/yq\n          yq --version\n\n      - name: Run mirror checker\n        run: |\n          chmod +x check_mirrors.sh\n          ./check_mirrors.sh"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nhaistko@proton.me.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior,  harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to Mirava\n\nThank you for your interest in contributing to **Mirava**! 🎉  \nWe welcome contributions — whether they’re bug fixes, documentation improvements, mirror additions, or new features that benefit the community.\n\nThis document outlines our recommended process and expectations for submitting contributions.\n\n---\n\n## Table of Contents\n\n- [Code of Conduct](#code-of-conduct)\n- [Ways to Contribute](#ways-to-contribute)\n- [Getting Started](#getting-started)\n- [Development Workflow](#development-workflow)\n- [Adding or Updating Mirrors](#adding-or-updating-mirrors)\n- [Pull Request Guidelines](#pull-request-guidelines)\n- [Reporting Issues](#reporting-issues)\n- [Style Guidelines](#style-guidelines)\n- [License](#license)\n\n---\n\n## Code of Conduct\n\nWe expect all contributors to follow the project’s **Code of Conduct**.  \nPlease review the `CODE_OF_CONDUCT.md` before participating.\n\nBe respectful, constructive, and collaborative.\n\n---\n\n## Ways to Contribute\n\nThere are many ways to contribute:\n\n- 🐛 Reporting bugs\n- 💡 Suggesting improvements\n- 🛠 Adding features\n- 📚 Improving documentation\n- 📦 Adding or updating mirror entries\n\nEvery contribution matters.\n\n---\n\n## Getting Started\n\n1. **Fork** the repository on GitHub.\n2. **Clone** your fork locally:\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/Mirava.git\n```\n\n3. Navigate into the project folder.\n4. Create a new branch for your work:\n\n```bash\ngit checkout -b feature/your-feature-name\n```\n\n5. Make your improvements or additions.\n\n---\n\n## Development Workflow\n\n- Keep commits small and focused.\n- Write clear, descriptive commit messages.\n- Follow the existing structure and formatting style.\n- Test your changes before submitting.\n\nExample commit message format:\n\n```text\nfeat: add npm mirror validation script\nfix: correct mirror URL formatting\ndocs: improve README setup section\n```\n\n---\n\n## Adding or Updating Mirrors\n\nMirava maintains a curated list of package mirrors.\n\nWhen contributing a new mirror:\n\n1. Ensure it is stable and publicly accessible.\n2. Add its details to `mirrors_list.yaml`.\n3. If needed, update or add scripts under the `scripts/` directory.\n4. Verify accessibility (ideally without VPN).\n5. Provide a short description of the mirror’s purpose and supported packages.\n\nMake sure formatting stays consistent with existing entries.\n\n---\n\n## Pull Request Guidelines\n\nWhen your changes are ready:\n\n1. Push your branch:\n\n```bash\ngit push origin feature/your-feature-name\n```\n\n2. Open a **Pull Request** against the `main` branch.\n3. Include in your PR description:\n   - What you changed\n   - Why the change is needed\n   - Any related issue numbers\n\nBe responsive to feedback. Maintainers may request revisions before merging.\n\n---\n\n## Reporting Issues\n\nIf you find a bug, please open a GitHub issue and include:\n\n- A clear title\n- Steps to reproduce\n- Expected behavior\n- Actual behavior\n- Logs or screenshots (if applicable)\n\nDetailed reports help us fix problems faster.\n\n---\n\n## Style Guidelines\n\n- Follow existing YAML and code formatting.\n- Avoid unnecessary reformatting of unrelated files.\n- Keep documentation concise and clear.\n- Use meaningful branch names:\n  \n```text\nfeature/add-npm-mirror\nfix/yaml-validation\ndocs/update-readme\n```\n\n---\n\n## License\n\nBy contributing to Mirava, you agree that your contributions will be licensed under the same license as the project.\n\n---\n\nThank you for helping improve Mirava 🚀  \nYour contributions make the ecosystem stronger.\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright 2026 GeeDook / Bahram Naseri\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.fa.md",
    "content": "<div dir=\"rtl\" align=\"right\">\n\n# Mirava\n\n> لیست Mirror های ارائه‌شده توسط سایت‌های ایرانی\n\n---\n\n## معرفی پروژه\n\nیک مجموعه‌ی جامع و سریع از میرورهای عمومی نرم‌افزاری و مخازن بسته‌های نرم‌افزاری داخل کشور ایران است.  \nهدف پروژه میراوا فراهم‌کردن دسترسی آسان، سریع و پایدار به بسته‌های نرم‌افزاری به‌روزشده برای توسعه‌دهندگان، شرکت‌ها و کاربران ایرانی است.\n\nاین پروژه لیستی کامل و به‌روز از میرورهای داخلی بسته‌های نرم‌افزاری معتبر فراهم کرده که در شرایط محدودیت اینترنت بین‌الملل می‌تونه دسترسی سریع، پایداری بالا و ادامه فعالیت بدون قطعی رو ممکن کنه، به‌خصوص در شرایط نت ملی یا قطعی اینترنت خارجی.\n\n---\n\n## بخش های پروژه:\n\n- فهرست دقیق و به‌روز میرورهای معتبر داخل ایران\n- اسکریپت Bash برای بررسی وضعیت دسترسی هر میرور\n- امکان همگام‌سازی با ابزارهایی مثل rsync یا wget\n- ساختار دادهٔ سبک و قابل‌توسعه با فرمت YAML\n- بررسی خودکار شبانه (قابل اتصال به CI)\n- قابل استفاده در پروژه‌های دیگر، سیستم‌عامل‌ها، و سرورهای داخلی\n\n---\n\n## میرورهای رسمی داخل ایران\n\n| میرور (لینک)                                                                            | توضیحات                                                                                                            | پکیج‌های پوشش داده‌شده                                                                                          |\n| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |\n| [mirror.shatel.ir](https://mirror.shatel.ir)                                            | میرور اوبونتو                                                                                                      | مخازن اوبونتو، دبیان، کالی و فایل‌های نصب‌کننده                                                                 |\n| [mirrors.kubarcloud.com](https://mirrors.kubarcloud.com)                                | میرور داخلی کوبار با پشتیبانی                                                                                      | سورس کرنل لینوکس و آرشیوهای اوپن‌سورس متنوع                                                                     |\n| [repo-portal.ito.gov.ir](https://repo-portal.ito.gov.ir/repo)                           | نگهداری شده توسط سازمان فناوری اطلاعات ایران                                                                       | مخازن YUM/DNF برای CentOS، Fedora، Rocky، مخازن Python، npm، Yarn و …                                           |\n| [jamko.ir](https://jamko.ir)                                                            | ارائه مستندات و نمونه‌های کانفیگ برای استفاده آسان‌تر                                                              | Maven، Gradle، Android SDK، APT، RPM، NuGet، Yarn، Composer، pip                                                |\n| [runflare.com/mirrors](https://runflare.com/mirrors)                                    | دارای راهنمای ساده و آپدیت خودکار روزانه                                                                           | Composer/Packagist، PyPI، npm، Node.js                                                                          |\n| [hub.hamdocker.ir](https://hub.hamdocker.ir)                                            | داکر ریجستری                                                                                                       | Docker Registry                                                                                                 |\n| [repo.iut.ac.ir](https://repo.iut.ac.ir)                                                | میرور جامع دانشگاه صنعتی اصفهان با پوشش گسترده توزیع‌های لینوکسی و پروژه‌های متن‌باز                               | Debian، Ubuntu، Mint، Arch Linux، Manjaro، Raspbian، Alpine، Rocky Linux، Fedora، OpenSUSE، OpenBSD, CTAN       |\n| [maven.myket.ir](https://maven.myket.ir)                                                | میرور جامعی از مخازن کتابخانه های اندرویدی شامل mavenCentral - googleMaven - Jitpack                               | Android sdk - android maven central - android jitpack - android googleMaven                                     |\n| [arvancloud.ir/dev/linux-repository](https://www.arvancloud.ir/en/dev/linux-repository) | میرور داخلی و پرسرعت از ریپازیتوری‌های محبوب‌ترین توزیع‌های گنو/لینوکس بر روی سرورهای ابر آروان                    | Debian, Ubuntu, CentOS, Alpine, Arch Linux, OpenSUSE, Manjaro                                                   |\n| [mirror.iranserver.com](https://mirror.iranserver.com)                                  | میرور های داخلی پر سرعت بر روی سرور های ایران سرور                                                                 | Debian, Ubuntu, CentOS                                                                                          |\n| [docker.mobinhost.com](https://docker.mobinhost.com)                                    | داکر ریجستری                                                                                                       | Docker Registry                                                                                                 |\n| [mirror.mobinhost.com](https://mirror.mobinhost.com)                                    | میرور های داخلی پر سرعت بر روی سرور های مبین هاست                                                                  | FreeBSD, Almalinux, Alpine, Archlinux, Debian, Fedora EPEL, Manjaro, MariaDB, MongoDB, Raspbian, Ubuntu, Zabbix |\n| [arvancloud.ir/fa/dev/docker](https://www.arvancloud.ir/fa/dev/docker)                  | میرور داخلی برای داکر                                                                                              | Docker Registry                                                                                                 |\n| [focker.ir](https://focker.ir)                                                          | میرور داخلی برای داکر                                                                                              | Docker Registry                                                                                                 |\n| [liara.ir](https://liara.ir/mirrors)                                                          | میرور داخلی همراه با مستندات و نمونه کانفیگ                                                                                            | Fedora, Alpine, OpenSUSE, Arch, Manjaro, Centos, Ubuntu, Debian, Rocky, ,PyPI, NPM, Go, Composer, NuGet, Docker images Registry, Quay, Github, Microsoft, K8S                                                                                                 |\n| [en-mirror.ir](https://en-mirror.ir)                                                    | میرور جامعی برای گریدل، متشکل مخازن کتابخانه های اندرویدی شامل Maven Central - Google - Jitpack                    | Google - Maven Central - Jitpack - Others(Can be added)                                                         |\n| [docker.kernel.ir](https://docker.kernel.ir)                                            | داکر رجیستری                                                                                                       | Docker Registry                                                                                                 |\n| [terraform.peaker.info](https://terraform.peaker.info)                                  | پروکسی رسمی Terraform                                                                                              | Terraform Proxy                                                                                                 |\n| [afranet.com](http://mirror.afranet.com)                                                | میرور توزیع های گنو/لینوکس                                                                                         | Debian, Ubuntu, CentOS                                                                                          |\n| [pishgaman.net](https://ubuntu.pishgaman.net)                                           | میرور اوبونتو                                                                                                      | Ubuntu                                                                                                          |\n| [pardisco.co](https://mirrors.pardisco.co)                                              | میرور های جامع گنو/لینوکسی و پکیج های برنامه نویسی                                                                 | Ubuntu, Debian، CentOS, Alpine, PyPI, NPM, Go, NuGet, Docker Registry, OmniOS, PkgSrc                           |\n| [cran.um.ac.ir](https://cran.um.ac.ir)                                                  | میرور پکیچ های R                                                                                                   | CRAN                                                                                                            |\n| [ir.archive.ubuntu.com](https://ir.archive.ubuntu.com/ubuntu)                           | میرور رسمی اوبونتو                                                                                                 | Ubuntu                                                                                                          |\n| [mirror.0-1.cloud](https://mirror.0-1.cloud)                                            | میرور های Almalinux, Alpine, Archlinux, CentOS, Debian, EPEL, FreeBSD, Mangaro, MariaDB, Raspbian, Ubuntu, Windows | Almalinux, Alpine, Archlinux, CentOS, Debian, EPEL, FreeBSD, Mangaro, MariaDB, Raspbian, Ubuntu, Windows        |\n| [mirror.manageit.ir](http://mirror.manageit.ir/ubuntu)                                  | میرور اوبونتو                                                                                                      | Ubuntu                                                                                                          |\n| [mirror.aminidc.com](http://mirror.aminidc.com)                                         | میرور اغلب توزیع های گنو/لینوکسی و ویندوز سرور                                                                     | Almalinux, Debian, EPEL, FIO, HPO,HTML, MINT, RHEL, Rocky, Ubuntu, Windows Server                               |\n| [ubuntu-mirror.kimiahost.com](https://ubuntu-mirror.kimiahost.com)                      | میرور اوبونتو                                                                                                      | Ubuntu                                                                                                          |\n| [mirror.digitalvps.ir](https://mirror.digitalvps.ir/ubuntu)                             | میرور اوبونتو                                                                                                      | Ubuntu                                                                                                          |\n| [ir.ubuntu.sindad.cloud](https://ir.ubuntu.sindad.cloud)                                | میرور اوبونتو                                                                                                      | Ubuntu                                                                                                          |\n| [ir.centos.sindad.cloud](https://ir.centos.sindad.cloud)                                | میرور centos                                                                                                       | Centos                                                                                                          |\n| [ir.epel.sindad.cloud](https://ir.epel.sindad.cloud)                                    | میرور epel                                                                                                         | Epel                                                                                                            |\n| [mirror.faraso.org](http://mirror.faraso.org)                                           | میرور های CentOS, EPEL ,Virtz, Webscript و نرم افزارهای کروم و جاوا                                                | CentOS, EPEL, Virtz, Webscript, Chrom, Java_Runtime, Java Dev, Java_SE8                                         |\n| [chat.shhh.ir](https://chat.shhh.ir/dl)                                                 | میرور دلتاچت                                                                                                       | DeltaChat                                                                                                       |\n| [atlanticscloud.ir](https://mirror.atlantiscloud.ir/)                                   | میرور داکر رجیستری و اوبونتو و NPM                                                                                 | Ubuntu, Docker Registry , NPM                                                                                   |\n| [chabokan.ir](https://iran.chabokan.net/)                                               | میرور سرویس پکیج‌های برنامه‌نویسی                                                                                  | NPM, Python, PHP, Docker, NuGet                                                                                 |\n| [abrha.net](https://repo.abrha.net/)                                                    | میرورهای سیستم عامل گنو/لینوکسی                                                                                    | Ubuntu, Almalinux, Debian, EPEL, ProxMox, Avast, Clamav                                                         |\n| [parsdev.com](https://mirror.parsdev.com/)                                              | میرور توزیع های گنو/لینوکسی                                                                                        | Ubuntu, Almalinux, Debian                                                                                       |\n| [linuxmirrors.ir](https://linuxmirrors.ir/)                                             | میرور توزیع های گنو/لینوکسی                                                                                        | Debian, Ubuntu, Fedora, Rocky, Oracle Linux                                                                     |\n\n---\n\n## 🧪 دربارهٔ اسکریپت check_mirrors.sh\n\nاین اسکریپت بررسی می‌کنه که آینه‌هایی که در فایل mirrors_list.yaml تعریف شدن، واقعاً در دسترس هستند یا نه، مخصوصاً در شرایط داخل ایران.\n\n### اجرای سریع\n\nمی‌تونید اسکریپت رو بدون کلون کردن ریپازیتوری اجرا کنید:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/MiravaOrg/Mirava/refs/heads/main/check_mirrors.sh | bash\n```\n\n### ویژگی‌ها:\n\n- اجرای موازی برای افزایش سرعت بررسی\n- گرفتن IP هر میرور با dig یا getent\n- دور زدن مشکلات SSL با --insecure\n- خروجی متنی سازگار با ترمینال‌های فارسی\n- قابل اجرا روی سیستم‌های لینوکسی یا VPS داخل\n\n---\n\n## چطور یک میرور جدید به پروژه اضافه کنیم؟\n\nاگر یک میرور خوب سراغ داری، مخصوصاً داخل ایران و بدون نیاز به VPN خیلی خوشحال می‌شیم اون رو به لیست اضافه کنیم. این کار خیلی ساده‌ست:\n\n### مراحل:\n\n1. ریپازیتوری رو Fork کن\n2. فایل mirrors_list.yaml رو باز کن و اطلاعات میرور جدید رو اضافه کن\n3. اگه اسکریپتی برای همگام‌سازی داری (مثلاً با rsync یا wget)، بذارش داخل پوشه scripts/\n4. روی سیستم خودت تست بگیر\n5. بعدش یک Pull Request بفرست، من بررسی می‌کنم و اگه همه‌چی درست باشه، اضافه می‌شه.\n\n### چه جور میرورهایی به درد می‌خورن؟\n\n- هر چیزی که داخل ایران باشه و بدون فیلتر باز شه\n- مخازن لینوکس: Debian، Ubuntu، Arch و بقیه\n- رجیستری پایتون (PyPI)، NPM، Docker، GitHub Releases و …\n- خلاصه هر سرویسی که تو شرایط نت ملّی یا تحریم به دادمون برسه\n\nاگر فکر می‌کنی می‌تونی یه میرور معرفی کنی یا حتی خودت راه بندازی، خیلی خوشحال می‌شیم در این پروژه شریک شی.\n\n---\n\n## 📢 شبکه‌های اجتماعی\n\n- 🔗 [توییتر من](https://x.com/geedook13)\n- 📣 [کانال تلگرام](https://t.me/shayangeedook)\n\n---\n\n## ☕ حمایت مالی\n\nاگر از این پروژه خوشت اومده و دوست داری ازم حمایت کنی:\n\n[Coffee](https://www.coffeete.ir/geedook)\n\nبا تشکر از حمایت‌هاتون!\n\n---\n\nبا تشکر از آرمان طاهری [ArmanTaheriGhaleTaki](https://github.com/ArmanTaheriGhaleTaki) بابت چندین لینک میرور\n"
  },
  {
    "path": "README.md",
    "content": "# Mirava\n\n>  Mirava is a curated list of Iranian package mirrors, providing reliable and fast access to essential software resources within Iran. \n<div align=\"left\">\n\n## 🌐 Languages / زبان‌ها\n\n[**فارسی / Persian**](README.fa.md)\n\n</div>\n\n---\n\n## Project Overview\n\nMirava is a comprehensive and fast collection of public software mirrors and package repositories hosted inside Iran.\n\nThe goal of this project is to provide **easy, fast, and reliable access** to up-to-date software packages for Iranian developers, companies, and users.  \nEspecially under conditions such as international internet restrictions, national network mode, or foreign connectivity outages, Mirava helps ensure continuity, stability, and high-speed access to essential resources.\n\nThis repository maintains an up-to-date list of trusted domestic mirrors for widely used open-source projects and package managers.\n\n---\n\n## Project Features\n\n- A curated and frequently updated list of trusted mirrors inside Iran\n- Bash script to check availability and health of each mirror\n- Compatible with synchronization tools such as `rsync` and `wget`\n- Lightweight and extensible data structure using YAML\n- Automated nightly checks (CI-friendly)\n- Reusable in other projects, operating systems, and internal servers\n\n---\n\n## Official Mirrors in Iran\n\n| Mirror (Link) | Description | Covered Packages |\n|--------------|-------------|------------------|\n| [shatel.ir](https://mirror.shatel.ir) | Ubuntu mirror | Ubuntu, Debian, Kali repositories and installers |\n| [kubarcloud.com](https://mirrors.kubarcloud.com) | Kubar internal mirror with support | Linux kernel sources and various open-source archives |\n| [repo-portal.ito.gov.ir](https://repo-portal.ito.gov.ir/repo) | Maintained by Iran Information Technology Organization | CentOS, Fedora, Rocky, Python, npm, Yarn, and more |\n| [jamko.ir](https://jamko.ir) | Documentation and config examples | Maven, Gradle, Android SDK, APT, RPM, NuGet, Yarn, Composer, pip |\n| [runflare.com](https://runflare.com/mirrors) | Daily auto-updated with simple guides | Composer/Packagist, PyPI, npm, Node.js |\n| [hub.hamdocker.ir](https://hub.hamdocker.ir) | Docker registry | Docker Registry |\n| [repo.iut.ac.ir](https://repo.iut.ac.ir) | Comprehensive mirror by Isfahan University of Technology | Debian, Ubuntu, Mint, Arch, Manjaro, Alpine, Rocky, Fedora, OpenSUSE, OpenBSD, CTAN |\n| [maven.myket.ir](https://maven.myket.ir) | Android-focused Maven mirror | Maven Central, Google Maven, JitPack |\n| [arvancloud.ir](https://www.arvancloud.ir/en/dev/linux-repository) | High-speed mirrors hosted on ArvanCloud | Debian, Ubuntu, CentOS, Alpine, Arch, OpenSUSE, Manjaro |\n| [iranserver.com](https://mirror.iranserver.com) | High-speed mirrors by IranServer | Debian, Ubuntu, CentOS |\n| [docker.mobinhost.com](https://docker.mobinhost.com) | Docker registry | Docker Registry |\n| [mobinhost.com](https://mirror.mobinhost.com) | Comprehensive GNU/Linux mirrors | FreeBSD, AlmaLinux, Alpine, Arch, Debian, EPEL, Manjaro, MariaDB, MongoDB, Ubuntu, Zabbix |\n| [arvancloud.ir](https://www.arvancloud.ir/fa/dev/docker) | Docker mirror | Docker Registry |\n| [focker.ir](https://focker.ir) | Docker mirror | Docker Registry |\n| [liara.ir](https://liara.ir/mirrors) | Mirrors with documentation and config examples | Fedora, Alpine, OpenSUSE, Arch, Manjaro, CentOS, Ubuntu, Debian, Rocky, PyPI, NPM, Go, Composer, NuGet, Docker images Registry, Quay, Github, Microsoft, K8S  |\n| [en-mirror.ir](https://en-mirror.ir) | Gradle and Android libraries mirror | Google, Maven Central, JitPack |\n| [docker.kernel.ir](https://docker.kernel.ir) | Docker registry | Docker Registry |\n| [terraform.peaker.info](https://terraform.peaker.info) | Official Terraform proxy | Terraform |\n| [afranet.com](http://mirror.afranet.com) | GNU/Linux distributions mirror | Debian, Ubuntu, CentOS |\n| [ubuntu.pishgaman.net](https://ubuntu.pishgaman.net) | Ubuntu mirror | Ubuntu |\n| [pardisco.co](https://mirrors.pardisco.co) | GNU/Linux & programming package mirrors | Ubuntu, Debian, Alpine, PyPI, NPM, Go, NuGet, Docker, OmniOS |\n| [cran.um.ac.ir](https://cran.um.ac.ir) | R packages mirror | CRAN |\n| [ir.archive.ubuntu.com](https://ir.archive.ubuntu.com/ubuntu) | Official Ubuntu mirror | Ubuntu |\n| [0-1.cloud](https://mirror.0-1.cloud) | Multi-distribution mirror | AlmaLinux, Alpine, Arch, Debian, Fedora, FreeBSD, Ubuntu, Windows |\n| [manageit.ir](http://mirror.manageit.ir/ubuntu) | Ubuntu mirror | Ubuntu |\n| [aminidc.com](http://mirror.aminidc.com) | GNU/Linux & Windows Server mirrors | Debian, RHEL, Rocky, Ubuntu, Windows Server |\n| [kimiahost.com](https://ubuntu-mirror.kimiahost.com) | Ubuntu mirror | Ubuntu |\n| [digitalvps.ir](https://mirror.digitalvps.ir/ubuntu) | Ubuntu mirror | Ubuntu |\n| [ir.ubuntu.sindad.cloud](https://ir.ubuntu.sindad.cloud) | Ubuntu mirror | Ubuntu |\n| [ir.centos.sindad.cloud](https://ir.centos.sindad.cloud) | CentOS mirror | CentOS |\n| [ir.epel.sindad.cloud](https://ir.epel.sindad.cloud) | EPEL mirror | EPEL |\n| [faraso.org](http://mirror.faraso.org) | CentOS, EPEL, Java & Chrome packages | CentOS, EPEL, Java Runtime, Java Dev |\n| [chat.shhh.ir](https://chat.shhh.ir/dl) | DeltaChat mirror | DeltaChat |\n| [atlantiscloud.ir](https://mirror.atlantiscloud.ir/) | Docker, Ubuntu, and NPM mirrors | Ubuntu, Docker Registry, NPM |\n| [iran.chabokan.net](https://iran.chabokan.net/) | Programming package services | NPM, Python, PHP, Docker, NuGet |\n| [repo.abrha.net](https://repo.abrha.net/) | GNU/Linux OS mirrors | Ubuntu, AlmaLinux, Debian, EPEL, Proxmox |\n| [parsdev.com](https://mirror.parsdev.com/) | GNU/Linux distributions mirror | Ubuntu, AlmaLinux, Debian |\n| [linuxmirrors.ir](https://linuxmirrors.ir/) | GNU/Linux distributions mirror | Debian, Ubuntu, Fedora, Rocky, Oracle Linux |\n| [kargadan.ir](https://mirror.kargadan.ir/) | High-Speed Package Mirror for Iranian Developers | NuGet, PyPI, Yarn, Docker Registry, MCR, Maven/Gradle, Go Proxy, Composer,\n| [hyperclouds.ir](https://mirrors.hyperclouds.ir/) | Hyperclouds Mirrors | Cargo, Ubuntu, Alpine, Debian, RubyGems, Go Proxy, PyPI, Docker Registry |\n| [gitdl.theazizi.ir](https://gitdl.theazizi.ir) | A tool designed to bypass GitHub download restrictions for releases and source code | Simple GitHub release proxy  |\n| [alldriver.ir](https://www.alldriver.ir) | A large repository for downloading hardware drivers (printers, GPUs, modems, and more) | Driver archive / mirror |\n| [llm.targoman.ir](https://llm.targoman.ir/shares) | A multi-purpose mirror hosting datasets, LLM resources, software packages, ISO files, security tools, and development resources | Data & software mirror hub |\n| [IranGit](https://scorpian.ir/) | A fast, modern, and powerful platform for searching, viewing, and downloading GitHub repositories with a professional, fully Persian user interface | GitHub Mirror |\n\n---\n\n## 🌍 Global & Official Mirrors\n\nThis project also includes selected high-quality global mirrors from other countries and official upstream sources.  \nThese mirrors provide redundancy, higher availability, and alternative routing paths in case of regional network instability.\n\nThe following mirrors are well-known, actively maintained, and widely used within the open-source community.\n\n| Mirror / Country | URL | Description | Covered Packages |\n| ---------------- | --- | ----------- | ---------------- |\n| NYIST Mirror (China) | [nyist.edu.cn](https://mirror.nyist.edu.cn/) | University-operated open-source mirror providing a wide range of Linux distributions and language package repositories | Debian, Ubuntu, CentOS, Fedora, Arch Linux, Alpine, openSUSE, Kali, Linux Mint, PyPI, CRAN, CPAN, RubyGems and more |\n| NJU Mirror (China) | [nju.edu.cn](https://mirror.nju.edu.cn/) | Nanjing University official mirror site serving major Linux distributions and development ecosystems | Debian, Ubuntu, CentOS, Fedora, Arch Linux, Alpine, openSUSE, Manjaro, Gentoo, PyPI and more |\n| Huawei Cloud  Mirror (China) | [huaweicloud.com](https://mirrors.huaweicloud.com/home) | Enterprise-grade mirror service operated by Huawei Cloud with CDN acceleration and global accessibility. | Debian, Ubuntu, CentOS Stream, Fedora, Arch Linux, Alpine, openEuler, PyPI, Maven, Docker, Kubernetes and more |\n| USTC Mirror (China) | [ustc.edu.cn](https://mirrors.ustc.edu.cn/) | University of Science and Technology of China (USTC) mirror | Debian, Ubuntu, CentOS, Fedora, Arch Linux, Alpine, openSUSE, Kali, Manjaro, PyPI, CRAN, Homebrew and more |\n| Yandex Mirror (Russia) | [yandex.ru](https://mirror.yandex.ru/) | High-speed Russian mirror operated by Yandex providing major Linux distributions and open-source repositories | Debian, Ubuntu, CentOS, Fedora, Arch Linux and more |\n| Tsinghua University Mirror (China) | [tuna.tsinghua.edu.cn](https://mirrors.tuna.tsinghua.edu.cn/) | TUNA (Tsinghua University Network Association) mirror | Debian, Ubuntu, CentOS, Fedora, Arch Linux, Alpine, openSUSE, Kali, Manjaro, PyPI, Homebrew, Docker and more |\n| Tsinghua University TUNA Association (China) | [bfsu.edu.cn](https://mirrors.bfsu.edu.cn/) | TUNA (Tsinghua University Network Association) mirror | Slackware, Gentoo, Garuda, Deepin, Arch Linuxcn, NetBSD, Blackarch, MX Linux, Prometheus, PuTTY, QEMU, Zabbix and more |\n\n\n---\n\n## 🧪 About `check_mirrors.sh`\n\nThis script verifies whether the mirrors defined in `mirrors_list.yaml` are actually reachable, especially under Iranian network conditions.\n\n### Quick Run\n\nYou can run the script directly without cloning the repository:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/MiravaOrg/Mirava/refs/heads/main/check_mirrors.sh | bash\n```\n\n### Features\n\n- Parallel execution for faster checks\n- Resolves IPs using `dig` or `getent`\n- Handles SSL issues using `--insecure`\n- Terminal-friendly text output\n- Works on Linux systems and domestic VPS servers\n\n---\n\n## How to Contribute to Mirava\n\nIf you know a reliable mirror (especially one located inside Iran and accessible without a VPN), we’d love to include it.\n\nBefore getting started, please read our contribution guidelines:\n\nSee [Contributing](https://github.com/MiravaOrg/Mirava/blob/main/CONTRIBUTING.md)\n\nThanks for helping improve the project!\n\n---\n\n### What Mirrors Are Useful?\n\n- Hosted inside Iran and accessible without filtering\n- Linux repositories (Debian, Ubuntu, Arch, etc.)\n- Package registries: PyPI, npm, Docker, GitHub Releases\n- Any service that helps during national network mode or sanctions\n\n---\n\n## 📢 Contact Info \n\n- 🔗 [X (twitter)](https://x.com/miravaorg)\n- 📣 [Telegram Channel](https://t.me/miravaorg)\n- 🔗 [Email](Miravaorg@proton.me)\n\n---\n\nSpecial thanks to **Arman Taheri**  \n[ArmanTaheriGhaleTaki](https://github.com/ArmanTaheriGhaleTaki)  \nfor contributing multiple mirror links.\n\n"
  },
  {
    "path": "check_mirrors.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nMIRROR_FILE=\"./mirrors_list.yaml\"\nMIRROR_URL=\"https://raw.githubusercontent.com/MiravaOrg/Mirava/refs/heads/main/mirrors_list.yaml\"\n\nfunction check_dependency() {\n\tif ! command -v $1 &> /dev/null; then\n\t\techo \"❌ Error: '$1' is not installed.\"\n\t\tif [[ $# -gt 1 ]]; then\n\t\t\tshift\n\t\t\techo $@\n\t\telse\n\t\t\techo \"Please install '$1' first.\"\n\t\tfi\n\t\texit 1\n\tfi\n}\n\nfunction check_resource() {\n\tif [[ ! -f $1 ]]; then\n\t\techo \"Resource '$1' not found\"\n\t\tif [[ $# -ge 2 && $2 != - ]]; then\n\t\t\techo \"Trying to download resource '$1' from '$2'\"\n\t\t\tif curl -fsSL \"$2\" -o \"$1\"; then\n\t\t\t\techo \"Downloaded resource '$1' from '$2'\"\n\t\t\telse\n\t\t\t\techo \"Failed to download resource '$1' from '$2'\"\n\t\t\t\texit 1\n\t\t\tfi\n\t\telse\n\t\t\texit 1\n\t\tfi\n\tfi\n}\n\ncheck_dependency curl\ncheck_dependency yq Please install yq from: https://github.com/mikefarah/yq/\ncheck_dependency seq\ncheck_resource \"$MIRROR_FILE\" \"$MIRROR_URL\"\n\ndeclare -A PACKAGE_PATHS=(\n  [\"Ubuntu\"]=\"ubuntu\"\n  [\"Debian\"]=\"debian\"\n  [\"Arch Linux\"]=\"archlinux\"\n  [\"PyPI\"]=\"pypi\"\n  [\"npm\"]=\"npm\"\n  [\"CentOS\"]=\"centos\"\n  [\"Alpine\"]=\"alpine\"\n  [\"Composer\"]=\"packages.json\"\n  [\"Composer/Packagist\"]=\"packages.json\"\n  [\"Docker Registry\"]=\"v2/\"\n  [\"Homebrew\"]=\"brew\"\n  [\"AlmaLinux\"]=\"almalinux\"\n  [\"Fedora\"]=\"fedora\"\n  [\"Rocky\"]=\"rocky\"\n  [\"Rocky Linux\"]=\"rocky\"\n  [\"Kali\"]=\"kali\"\n  [\"Manjaro\"]=\"manjaro\"\n  [\"Mint\"]=\"linuxmint\"\n  [\"LinuxMint\"]=\"linuxmint\"\n  [\"OpenSUSE\"]=\"opensuse\"\n  [\"FreeBSD\"]=\"freebsd\"\n  [\"EPEL\"]=\"epel\"\n  [\"MariaDB\"]=\"mariadb\"\n  [\"MongoDB\"]=\"mongodb\"\n  [\"Node.js\"]=\"node\"\n  [\"Zabbix\"]=\"zabbix\"\n  [\"Proxmox\"]=\"proxmox\"\n  [\"Termux\"]=\"termux\"\n  [\"Void Linux\"]=\"void\"\n  [\"Go\"]=\"golang\"\n  [\"Python\"]=\"python\"\n  [\"Maven\"]=\"maven\"\n  [\"NuGet\"]=\"nuget\"\n  [\"Docker\"]=\"v2/\"\n  [\"Yarn\"]=\"yarn\"\n  [\"APT\"]=\"apt\"\n  [\"RPM\"]=\"rpm\"\n  [\"pip\"]=\"pip\"\n  [\"Gradle\"]=\"gradle\"\n  [\"Android SDK\"]=\"android\"\n  [\"CTAN\"]=\"ctan\"\n  [\"R\"]=\"CRAN\"\n  [\"OmniOS\"]=\"omnios\"\n  [\"PHP\"]=\"php\"\n  [\"Terraform\"]=\"terraform\"\n  [\"Oracle Linux\"]=\"oraclelinux\"\n  [\"TorProject\"]=\"tor\"\n  [\"F-Droid\"]=\"fdroid\"\n  [\"Chaotic-AUR\"]=\"chaotic-aur\"\n  [\"Dart Pub\"]=\"dart-pub\"\n  [\"Flutter packages\"]=\"flutter\"\n  [\"Maven Central\"]=\"maven2\"\n  [\"Google Maven\"]=\"google-maven\"\n  [\"DeltaChat\"]=\"deltachat\"\n  [\"OpenBSD\"]=\"openbsd\"\n  [\"RHEL\"]=\"rhel\"\n  [\"Windows\"]=\"windows\"\n  [\"Windows Server\"]=\"windowsserver\"\n  [\"YUM/DNF (CentOS, Fedora, Rocky)\"]=\"centos\"\n  [\"Linux kernel\"]=\"kernel\"\n  [\"Elastic Registry\"]=\"v2/\"\n  [\"Google Registry\"]=\"v2/\"\n  [\"Microsoft Registry\"]=\"v2/\"\n  [\"Quay Registry\"]=\"v2/\"\n  [\"JitPack\"]=\"jitpack\"\n  [\"Java Dev\"]=\"java-dev\"\n  [\"Java Runtime\"]=\"java-runtime\"\n)\n\nfunction check_url() {\n  local url=$1\n  status=$(curl -s -o /dev/null -w \"%{http_code}\" --max-time 5 \"$url\" || true)\n  echo \"$status\"\n}\n\nfunction check_docker_registry() {\n  local url=$1\n  local pkg_name=${2:-\"Docker Registry\"}\n  # Docker Registry requires a GET to /v2/ and must respond with 200 or 401\n  status=$(curl -s -o /dev/null -w \"%{http_code}\" --max-time 5 \"$url/v2/\" || true)\n  if [[ \"$status\" == \"200\" || \"$status\" == \"401\" || \"$status\" == \"301\" || \"$status\" == \"302\" || \"$status\" == \"403\" ]]; then\n    echo \"✅ $pkg_name -> $url/v2/ ($status)\"\n  else\n    echo \"❌ $pkg_name -> $url/v2/ ($status)\"\n  fi\n}\n\nfor idx in $(seq 0 $(yq -er '.mirrors | length - 1' \"$MIRROR_FILE\")); do\n  name=$(yq -er \".mirrors[$idx].name\" \"$MIRROR_FILE\")\n  base_url=$(yq -er \".mirrors[$idx].url\" \"$MIRROR_FILE\")\n  echo -e \"\\n🔍 Checking mirror: $name\"\n  echo \"URL: $base_url\"\n\n  package_count=$(yq -er \".mirrors[$idx].packages | length\" \"$MIRROR_FILE\")\n\n  for j in $(seq 0 $((package_count - 1))); do\n    package=$(yq -er \".mirrors[$idx].packages[$j]\" \"$MIRROR_FILE\")\n    \n    # Safely get path with set -u enabled\n    if [[ -v PACKAGE_PATHS[\"$package\"] ]]; then\n      path=${PACKAGE_PATHS[\"$package\"]}\n    else\n      path=\"\"\n    fi\n\n    if [[ \"$package\" == *\"Registry\"* || \"$package\" == \"Docker\" ]]; then\n      check_docker_registry \"$base_url\" \"$package\"\n    elif [[ -n \"$path\" ]]; then\n      full_url=\"$base_url/$path\"\n      status=$(check_url \"$full_url\")\n      if [[ \"$status\" == \"200\" || \"$status\" == \"301\" || \"$status\" == \"302\" || \"$status\" == \"403\" ]]; then\n        echo \"✅ $package -> $full_url ($status)\"\n      else\n        echo \"❌ $package -> $full_url ($status)\"\n      fi\n    else\n      echo \"⚠️ Unknown package type: $package\"\n    fi\n  done\n\n  echo \"----------------------------\"\ndone\n"
  },
  {
    "path": "mirrors_list.yaml",
    "content": "mirrors:\n  - name: Shatel\n    url: https://mirror.shatel.ir\n    description: Official Iranian mirror hosted by Shatel ISP.\n    packages:\n      - Ubuntu\n      - Debian\n      - Kali\n\n  - name: KubarCloud\n    url: https://mirrors.kubarcloud.com\n    description: Kubar internal mirror with support for Linux kernel sources and various archives.\n    packages:\n      - Linux kernel\n      - Debian\n      - Ubuntu\n      - Alpine\n      - Arch Linux\n\n  - name: ITO (Information Technology Organization)\n    url: https://repo-portal.ito.gov.ir/repo\n    description: Maintained by Iran Information Technology Organization, supporting multiple package types.\n    packages:\n      - YUM/DNF (CentOS, Fedora, Rocky)\n      - Python\n      - npm\n      - Yarn\n\n  - name: Jamko\n    url: https://jamko.ir\n    description: Documentation and config examples for developers.\n    packages:\n      - Maven\n      - Gradle\n      - Android SDK\n      - APT\n      - RPM\n      - NuGet\n      - Yarn\n      - Composer\n      - pip\n\n  - name: Runflare\n    url: https://runflare.com/mirrors\n    description: Daily auto-updated mirrors with simple guides.\n    packages:\n      - Composer/Packagist\n      - PyPI\n      - npm\n      - Node.js\n\n  - name: Hamravesh\n    url: https://hamravesh.com/blog/container-registry-mirroring-and-caching/\n    description: Hamravesh package mirror and HamDocker cache registries.\n    packages:\n      - Docker Registry\n      - Microsoft Registry\n      - Google Registry\n      - Quay Registry\n      - Elastic Registry\n      - npm\n      - PyPI\n      - Go\n      - NuGet\n      - Maven\n      - Alpine\n      - Debian\n      - Ubuntu\n\n  - name: IUT (Isfahan University of Technology)\n    url: https://repo.iut.ac.ir\n    description: Comprehensive mirror covering many Linux distributions and open-source packages.\n    packages:\n      - Debian\n      - Ubuntu\n      - Mint\n      - Arch Linux\n      - Manjaro\n      - Alpine\n      - Rocky\n      - Fedora\n      - OpenSUSE\n      - OpenBSD\n      - CTAN\n\n  - name: Myket Maven\n    url: https://maven.myket.ir\n    description: Android-focused Maven mirror.\n    packages:\n      - Maven Central\n      - Google Maven\n      - JitPack\n\n  - name: ArvanCloud Linux\n    url: https://www.arvancloud.ir/en/dev/linux-repository\n    description: High-speed mirrors hosted on ArvanCloud for Linux distributions.\n    packages:\n      - Debian\n      - Ubuntu\n      - CentOS\n      - Alpine\n      - Arch Linux\n      - OpenSUSE\n      - Manjaro\n\n  - name: IranServer\n    url: https://mirror.iranserver.com\n    description: High-speed mirrors by IranServer.\n    packages:\n      - Debian\n      - Ubuntu\n      - CentOS\n\n  - name: MobinHost Docker\n    url: https://docker.mobinhost.com\n    description: Docker registry mirror.\n    packages:\n      - Docker Registry\n\n  - name: ArvanCloud Docker\n    url: https://www.arvancloud.ir/fa/dev/docker\n    description: Docker registry mirror hosted by ArvanCloud in Iran.\n    packages:\n      - Docker Registry\n\n  - name: Focker\n    url: https://focker.ir\n    description: Docker registry mirror.\n    packages:\n      - Docker Registry\n\n  - name: Liara\n    url: https://liara.ir/mirrors\n    description: Mirrors for Linux distributions, programming packages, and Docker images hosted by Liara in Iran.\n    packages:\n      - Debian\n      - Ubuntu\n      - CentOS\n      - Fedora\n      - Rocky\n      - Alpine\n      - OpenSUSE\n      - Arch Linux\n      - Manjaro\n      - PyPI\n      - npm\n      - Go\n      - NuGet\n      - Composer\n      - Docker Registry\n\n  - name: MobinHost Full\n    url: https://mirror.mobinhost.com\n    description: Comprehensive GNU/Linux and database mirrors.\n    packages:\n      - FreeBSD\n      - AlmaLinux\n      - Alpine\n      - Arch Linux\n      - Debian\n      - EPEL\n      - Manjaro\n      - MariaDB\n      - MongoDB\n      - Ubuntu\n      - Zabbix\n\n  - name: EN Mirror\n    url: https://en-mirror.ir\n    description: Gradle and Android libraries mirror.\n    packages:\n      - Google Maven\n      - Maven Central\n      - JitPack\n\n  - name: Terraform Peaker\n    url: https://terraform.peaker.info\n    description: Official Terraform proxy in Iran.\n    packages:\n      - Terraform\n\n  - name: Afranet\n    url: http://mirror.afranet.com\n    description: GNU/Linux distributions mirror.\n    packages:\n      - Debian\n      - Ubuntu\n      - CentOS\n\n  - name: Pishgaman Ubuntu\n    url: https://ubuntu.pishgaman.net\n    description: Ubuntu mirror in Iran.\n    packages:\n      - Ubuntu\n\n  - name: Pardisco Mirrors\n    url: https://mirrors.pardisco.co\n    description: GNU/Linux and programming package mirrors.\n    packages:\n      - Ubuntu\n      - Debian\n      - Alpine\n      - PyPI\n      - npm\n      - Go\n      - NuGet\n      - Docker\n      - OmniOS\n\n  - name: CRAN UM\n    url: https://cran.um.ac.ir\n    description: Comprehensive R Archive Network mirror.\n    packages:\n      - R\n\n  - name: Ubuntu Official Iran\n    url: https://ir.archive.ubuntu.com/ubuntu\n    description: Official Ubuntu mirror.\n    packages:\n      - Ubuntu\n\n  - name: 0-1 Cloud Mirror\n    url: https://mirror.0-1.cloud\n    description: Multi-distribution mirror.\n    packages:\n      - AlmaLinux\n      - Alpine\n      - Arch Linux\n      - Debian\n      - Fedora\n      - FreeBSD\n      - Ubuntu\n      - Windows\n\n  - name: ManageIT Ubuntu\n    url: http://mirror.manageit.ir/ubuntu\n    description: Ubuntu mirror.\n    packages:\n      - Ubuntu\n\n  - name: Aminidc\n    url: http://mirror.aminidc.com\n    description: GNU/Linux and Windows Server mirrors.\n    packages:\n      - Debian\n      - RHEL\n      - Rocky\n      - Ubuntu\n      - Windows Server\n\n  - name: KimiaHost Ubuntu\n    url: https://ubuntu-mirror.kimiahost.com\n    description: Ubuntu mirror.\n    packages:\n      - Ubuntu\n\n  - name: DigitalVPS Ubuntu\n    url: https://mirror.digitalvps.ir/ubuntu\n    description: Ubuntu mirror.\n    packages:\n      - Ubuntu\n\n  - name: Sindad Ubuntu\n    url: https://ir.ubuntu.sindad.cloud\n    description: Ubuntu mirror.\n    packages:\n      - Ubuntu\n\n  - name: Sindad CentOS\n    url: https://ir.centos.sindad.cloud\n    description: CentOS mirror.\n    packages:\n      - CentOS\n\n  - name: Sindad EPEL\n    url: https://ir.epel.sindad.cloud\n    description: EPEL mirror.\n    packages:\n      - EPEL\n\n  - name: Faraso\n    url: http://mirror.faraso.org\n    description: CentOS, EPEL, Java & Chrome packages mirror.\n    packages:\n      - CentOS\n      - EPEL\n      - Java Runtime\n      - Java Dev\n\n  - name: DeltaChat\n    url: https://chat.shhh.ir/dl\n    description: DeltaChat mirror.\n    packages:\n      - DeltaChat\n\n  - name: AtlantisCloud\n    url: https://mirror.atlantiscloud.ir\n    description: Docker, Ubuntu, and NPM mirrors.\n    packages:\n      - Ubuntu\n      - Docker Registry\n      - npm\n\n  - name: Chabokan\n    url: https://iran.chabokan.net\n    description: Programming package services mirror.\n    packages:\n      - npm\n      - Python\n      - PHP\n      - Docker\n      - NuGet\n\n  - name: Abrha\n    url: https://repo.abrha.net\n    description: GNU/Linux OS mirrors.\n    packages:\n      - Ubuntu\n      - AlmaLinux\n      - Debian\n      - EPEL\n      - Proxmox\n\n  - name: ParsDev\n    url: https://mirror.parsdev.com\n    description: GNU/Linux distributions mirror.\n    packages:\n      - Ubuntu\n      - AlmaLinux\n      - Debian\n\n  - name: LinuxMirrors\n    url: https://linuxmirrors.ir\n    description: GNU/Linux distributions mirror.\n    packages:\n      - Debian\n      - Ubuntu\n      - Fedora\n      - Rocky\n      - Oracle Linux\n\n  - name: Maven Hub\n    url: https://mvnhub.ir\n    description: Iranian proxy for Maven Central.\n    packages:\n      - Maven Central\n\n  - name: PubYar\n    url: https://pub.pubyar.ir\n    description: Smart read-only Dart Pub and Flutter package mirror/CDN for Iranian developers.\n    packages:\n      - Dart Pub\n      - Flutter packages\n      \n  - name: FreeDif\n    url: https://mirror.freedif.org/\n    description: High-speed open-source mirror based in Singapore with a 10GBPS connection, dedicated to supporting the community.\n    packages:\n      - Termux\n      - F-Droid\n      - Chaotic-AUR\n      - Ubuntu\n      - Debian\n      - Fedora\n      - LinuxMint\n      - Manjaro\n      - Arch Linux\n      - Void Linux\n      - Alpine\n      - AlmaLinux\n      - Rocky Linux\n      - Kali\n      - TorProject\n\n  - name: MIT\n    url: https://mirrors.mit.edu\n    description: MIT high speed and low ping mirror\n    packages:\n    - ArchLinux\n    - CentOS\n    - CPAN\n    - CTAN\n    - Cygwin\n    - Debian\n    - Debian backports\n    - Fedora\n    - Fedora EPEL\n    - Finnix\n    - FreeBSD\n    - Gentoo\n    - Gentoo Portage\n    - KDE\n    - Kernel\n    - Kodi (formerly XBMC)\n    - Libreboot\n    - NetBSD\n    - OSMC\n    - OpenBSD\n    - Parrot Security OS\n    - Raspbian\n    - Sage\n    - sugarlabs\n    - Tails\n    - Tor Project\n    - Ubuntu\n    - Ubuntu CD images\n    - Ubuntu releases\n    - Ubuntu ports\n"
  }
]