{"id":13599567,"url":"https://github.com/torrust/torrust-index","last_synced_at":"2025-04-10T13:30:47.148Z","repository":{"id":37007247,"uuid":"499851107","full_name":"torrust/torrust-index","owner":"torrust","description":"This repository serves as the backend for the Torrust Index project.","archived":false,"fork":false,"pushed_at":"2024-10-29T08:44:37.000Z","size":3150,"stargazers_count":51,"open_issues_count":34,"forks_count":19,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2024-10-29T09:57:03.790Z","etag":null,"topics":["backend","bittorrent","rust","torrents"],"latest_commit_sha":null,"homepage":"https://torrust.com","language":"Rust","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/torrust.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-04T14:34:22.000Z","updated_at":"2024-10-29T08:44:42.000Z","dependencies_parsed_at":"2023-10-16T04:17:24.313Z","dependency_job_id":"68679fb2-b88c-4abd-9b87-d9ed5bf9a566","html_url":"https://github.com/torrust/torrust-index","commit_stats":null,"previous_names":["torrust/torrust-index","torrust/torrust-index-backend"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrust%2Ftorrust-index","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrust%2Ftorrust-index/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrust%2Ftorrust-index/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/torrust%2Ftorrust-index/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/torrust","download_url":"https://codeload.github.com/torrust/torrust-index/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225705,"owners_count":21068078,"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":["backend","bittorrent","rust","torrents"],"created_at":"2024-08-01T17:01:06.950Z","updated_at":"2025-04-10T13:30:44.349Z","avatar_url":"https://github.com/torrust.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Torrust Index\n\n[![container_wf_b]][container_wf] [![coverage_wf_b]][coverage_wf] [![deployment_wf_b]][deployment_wf] [![testing_wf_b]][testing_wf] [![labels_wf_b]][labels_wf]\n\n__Torrust Index__ is a library for [BitTorrent][bittorrent] Files. Written in [Rust Language][rust] with the [Axum] web framework. ___This index aims to be respectful to established standards, (both [formal][BEP 00] and [otherwise][torrent_source_felid]).___\n\n\u003e This is a [Torrust][torrust] project and is in active development. It is community supported as well as sponsored by [Nautilus Cyberneering][nautilus].\n\n## About\n\nThe core purpose of a [BitTorrent][bittorrent] Index is to maintain a database that connects torrent files with useful metadata. Allowing a community of users to keep track of their torrents in a well-organized and informative manner.\n\nThe __Torrust Index__ serves as a [high-level API][API] for our [Torrust Index GUI][gui] client. It also connects to the [management api][api_tracker] of our [Torrust Tracker][tracker], to provide statistics and whitelisting functionally.\n\n![Torrust Index Architecture](./docs/images/torrust-index-architecture.jpg)\n\n## Key Features\n\n- [x] High Quality and Modern Rust Codebase.\n- [x] [Documentation][docs] Generated from Code Comments.\n- [x] [Comprehensive Suit][coverage] of Unit and Functional Tests.\n- [x] Good Performance in Busy Conditions.\n- [x] Native `IPv4` and `IPv6` support.\n- [x] Persistent `SQLite3` or `MySQL` Databases.\n\n## Getting Started\n\n### Upgrading\n\nIf you are using `Version 1` of `torrust-tracker-backend`, please view our [upgrading guide][upgrade.md].\n\n### Container Version\n\nThe Torrust Index is [deployed to DockerHub][dockerhub], you can run a demo immediately with the following commands:\n\n#### Docker\n\n```sh\ndocker run -it torrust/index:develop\n```\n\n\u003e Please read our [container guide][containers.md] for more information.\n\n#### Podman\n\n```sh\npodman run -it torrust/index:develop\n```\n\n\u003e Please read our [container guide][containers.md] for more information.\n\n### Development Version\n\n- Please assure you have the ___[latest stable (or nightly) version of Rust][Rust]___.\n- Please assure that your computer has enough RAM. ___Recommended 16GB.___\n\n#### Checkout, Test and Run:\n\n```sh\n# Checkout repository into a new folder:\ngit clone https://github.com/torrust/torrust-index.git\n\n# Change into directory and create a empty database file:\ncd torrust-index\nmkdir -p ./storage/index/lib/database/\ntouch ./storage/index/lib/database/sqlite3.db\n\n# Check all tests in application:\ncargo test --tests --benches --examples --workspace --all-targets --all-features\n\n# Run the index:\ncargo run\n```\n\n#### Customization\n\n```sh\n# Copy the default configuration into the standard location:\nmkdir -p ./storage/index/etc/\ncp ./share/default/config/index.development.sqlite3.toml ./storage/index/etc/index.toml\n\n# Customize the index configuration (for example):\nvim ./storage/index/etc/index.toml\n\n# Run the index with the updated configuration:\nTORRUST_INDEX_CONFIG_TOML_PATH=\"./storage/index/etc/index.toml\" cargo run\n```\n\n_Optionally, you may choose to supply the entire configuration as an environmental variable:_\n\n```sh\n# Use a configuration supplied on an environmental variable:\nTORRUST_INDEX_CONFIG_TOML=$(cat \"./storage/index/etc/index.toml\") cargo run\n```\n\n_For deployment, you __should__ override:\n\n- The `tracker_api_token` and the `index_auth_secret_key` by using environmental variables:_\n\n```sh\n# Please use the secret that you generated for the torrust-tracker configuration.\n# Override secret in configuration using an environmental variable\nTORRUST_INDEX_CONFIG_TOML=$(cat \"./storage/index/etc/index.toml\") \\\n  TORRUST_INDEX_CONFIG_OVERRIDE_TRACKER__TOKEN=$(cat \"./storage/tracker/lib/tracker_api_admin_token.secret\") \\\n  TORRUST_INDEX_CONFIG_OVERRIDE_AUTH__SECRET_KEY=\"MaxVerstappenWC2021\" \\\n  cargo run\n```\n\n\u003e Please view our [crate documentation][docs] for more detailed instructions.\n\n### Services\n\nThe following services are provided by the default configuration:\n\n- API\n  - `http://127.0.0.1:3001/`.\n\n## Documentation\n\n- [API (Version 1)][api]\n\n## Contributing\n\nWe are happy to support and welcome new people to our project. Please consider our [contributor guide][guide.md].\u003c/br\u003e\nThis is an open-source community-supported project. We welcome contributions from the community!\n\n__How can you contribute?__\n\n- Bug reports and feature requests.\n- Code contributions. You can start by looking at the issues labeled \"[good first issues]\".\n- Documentation improvements. Check the [documentation][docs] and [API documentation][API] for typos, errors, or missing information.\n- Participation in the community. You can help by answering questions in the [discussions].\n\n## License\n\n**Copyright (c) 2023 The Torrust Developers.**\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the [GNU Affero General Public License][AGPL_3_0] as published by the [Free Software Foundation][FSF], version 3.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU Affero General Public License][AGPL_3_0] for more details.\n\nYou should have received a copy of the *GNU Affero General Public License* along with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nSome files include explicit copyright notices and/or license notices.\n\n### Legacy Exception\n\nFor prosperity, versions of Torrust Tracker that are older than five years are automatically granted the [MIT-0][MIT_0] license in addition to the existing [AGPL-3.0-only][AGPL_3_0] license.\n\n## Contributor Agreement\n\nThe copyright of the Torrust Tracker is retained by the respective authors.\n\n**Contributors agree that:**\n\n- All their contributions be granted a license(s) __compatible__ with the [Torrust Trackers License](#license).\n- All contributors signal __clearly__ and __explicitly__ any other compilable licenses if they are not: __[AGPL-3.0-only with the legacy MIT-0 exception](#license)__.\n\n**The Torrust-Tracker project has no copyright assignment agreement.**\n\n_We kindly ask you to take time and consider The Torrust Project [Contributor Agreement][agreement.md] in full._\n\n## Acknowledgments\n\nThis project was a joint effort by [Nautilus Cyberneering GmbH][nautilus] and [Dutch Bits].\n\n[container_wf]: ../../actions/workflows/container.yaml\n[container_wf_b]: ../../actions/workflows/container.yaml/badge.svg\n[coverage_wf]: ../../actions/workflows/coverage.yaml\n[coverage_wf_b]: ../../actions/workflows/coverage.yaml/badge.svg\n[deployment_wf]: ../../actions/workflows/deployment.yaml\n[deployment_wf_b]: ../../actions/workflows/deployment.yaml/badge.svg\n[testing_wf]: ../../actions/workflows/testing.yaml\n[testing_wf_b]: ../../actions/workflows/testing.yaml/badge.svg\n[labels_wf]: ../../actions/workflows/labels.yaml\n[labels_wf_b]: ../../actions/workflows/labels.yaml/badge.svg\n\n[bittorrent]: http://bittorrent.org/\n[rust]: https://www.rust-lang.org/\n[axum]: https://github.com/tokio-rs/axum\n[coverage]: https://app.codecov.io/gh/torrust/torrust-index\n[torrust]: https://torrust.com/\n\n[tracker]: https://github.com/torrust/torrust-tracker\n[gui]: https://github.com/torrust/torrust-index-gui\n\n[dockerhub]: https://hub.docker.com/r/torrust/index/tags\n\n[torrent_source_felid]: https://github.com/qbittorrent/qBittorrent/discussions/19406\n\n[BEP 00]: https://www.bittorrent.org/beps/bep_0000.html\n\n[containers.md]: ./docs/containers.md\n[upgrade.md]: ./upgrades/from_v1_0_0_to_v2_0_0/README.md\n\n[docs]: https://docs.rs/torrust-index/latest/torrust_index/\n[api]: https://docs.rs/torrust-index/latest/torrust_index/web/api/v1/\n[api_tracker]: https://docs.rs/torrust-tracker/latest/torrust_tracker/servers/apis/v1\n\n[good first issues]: https://github.com/torrust/torrust-index/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22\n[discussions]: https://github.com/torrust/torrust-index/discussions\n\n[guide.md]: https://github.com/torrust/.github/blob/main/info/contributing.md\n[agreement.md]: https://github.com/torrust/.github/blob/main/info/licensing/contributor_agreement_v01.md\n\n[AGPL_3_0]: ./docs/licenses/LICENSE-AGPL_3_0\n[MIT_0]: ./docs/licenses/LICENSE-MIT_0\n[FSF]: https://www.fsf.org/\n\n[nautilus]: https://github.com/orgs/Nautilus-Cyberneering/\n[Dutch Bits]: https://dutchbits.nl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorrust%2Ftorrust-index","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftorrust%2Ftorrust-index","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftorrust%2Ftorrust-index/lists"}