TorrentPier. Main project repository
Find a file
Roman Kelesidis f2fca0de85
release: v2.6.0 🐂
2025-06-18 14:15:53 +03:00
.github chore(cliff): Add conventional commit prefix to changelog message (#1957) 2025-06-18 07:06:11 +03:00
admin refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
bt feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
data removed: Redundant .htaccess files (#1826) 2025-03-01 20:00:06 +03:00
install misc: Minor improvements (#1904) 2025-05-07 22:26:51 +03:00
internal_data misc: Bring back missing cache & log directories (#1832) 2025-03-02 17:32:46 +03:00
library release: v2.6.0 🐂 2025-06-18 14:15:53 +03:00
sitemap Replace sitemap to the new external component. 2017-06-02 00:03:55 +03:00
src feat!: implement unified cache system with Nette Caching (#1963) 2025-06-18 15:05:22 +04:00
styles feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
.cliffignore Revert "style: Correct sidebar2 displaying" 2025-04-22 16:16:04 +03:00
.editorconfig Minor improvements (#715) 2023-05-24 15:34:22 +07:00
.env.example feat(environment): Make configurable TP_HOST and TP_PORT (#1780) 2025-01-27 19:48:27 +03:00
.gitignore revert: Added IndexNow protocol support 🤖 2025-03-25 13:48:52 +03:00
.htaccess Replaced deny from all with Require all denied 2023-02-17 23:45:00 +07:00
.styleci.yml TorrentPier Aurochs release preparation. 2017-06-12 15:28:45 +03:00
_cleanup.php misc(cliff): Added automated script for releases creation (#1930) 2025-06-09 15:21:17 +03:00
_release.php misc(_release.php): Finally! Removed some useless params (#1947) 2025-06-13 11:20:11 +03:00
ajax.php misc: Some minor improvements (#1829) 2025-03-02 10:15:41 +03:00
CHANGELOG.md release: v2.6.0 🐂 2025-06-18 14:15:53 +03:00
cliff.toml chore(cliff): Add conventional commit prefix to changelog message (#1957) 2025-06-18 07:06:11 +03:00
CODE_OF_CONDUCT.md New project domain name. 2017-06-25 00:01:22 +03:00
common.php feat!: implement unified cache system with Nette Caching (#1963) 2025-06-18 15:05:22 +04:00
composer.json feat!: implement unified cache system with Nette Caching (#1963) 2025-06-18 15:05:22 +04:00
composer.lock feat!: implement unified cache system with Nette Caching (#1963) 2025-06-18 15:05:22 +04:00
CONTRIBUTING.md Minor improvements (#1358) 2024-01-30 22:18:05 +07:00
cron.php misc(copyright): Updated copyright year (#1760) 2025-01-15 15:25:04 +03:00
crowdin.yml Update Crowdin configuration file 2023-03-08 13:25:06 +03:00
dl.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
dl_list.php misc(copyright): Updated copyright year (#1760) 2025-01-15 15:25:04 +03:00
favicon.png New logotype, favicon and css split & reformat. 2017-06-10 00:37:21 +03:00
feed.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
filelist.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
group.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
group_edit.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
HISTORY.md docs: Minor improvements (#1750) 2025-01-14 13:11:19 +07:00
index.php refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
info.php fix(info.php): Undefined array key "show" (#1836) 2025-03-06 14:58:47 +03:00
install.php fix(installer): Strip protocol from TP_HOST to keep only hostname (#1952) 2025-06-17 18:14:47 +03:00
LICENSE misc(copyright): Updated copyright year (#1760) 2025-01-15 15:25:04 +03:00
login.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
memberlist.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
modcp.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
playback_m3u.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
poll.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
posting.php refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
privmsg.php refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
profile.php misc(copyright): Updated copyright year (#1760) 2025-01-15 15:25:04 +03:00
README.md misc: Updated nightly builds link (#1885) 2025-04-29 20:36:15 +03:00
robots.txt Minor improvements (#1683) 2024-11-25 20:05:43 +07:00
search.php refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
SECURITY.md Update SECURITY.md 2024-08-07 23:09:29 +07:00
terms.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
tracker.php feat: implement centralized Config class to replace global $bb_cfg array (#1953) 2025-06-18 01:19:49 +04:00
UPGRADE_GUIDE.md feat!: implement unified cache system with Nette Caching (#1963) 2025-06-18 15:05:22 +04:00
viewforum.php refactor(censor): migrate Censor class to singleton pattern (#1954) 2025-06-18 10:38:23 +04:00
viewtopic.php feat: replace legacy database layer with Nette Database implementation (#1961) 2025-06-18 12:29:13 +04:00

TorrentPier

Bull-powered BitTorrent tracker engine

License Stars Packagist Crowdin TorrentPier nightly Downloads Version Last release Size Deployed to TorrentPier Demo with FTP Deploy Action

🐂 About TorrentPier

TorrentPier — bull-powered BitTorrent Public/Private tracker engine, written in PHP. High speed, simple modifications, load-balanced architecture. In addition, we have a very helpful official support forum, where it's possible to get support and download modifications for the engine.

🌈 Current status

TorrentPier is currently in active development. The goal is to remove all legacy code and rewrite the existing code to modern specifications. If you want delve deep into the code, check our issues and go from there. The documentation will be translated to english in the near future, currently russian is the main language of it.

Features

  • Rich forum with browsing/moderation tools
  • High-load capable, heavily configurable announcer
  • Scrape support
  • FreeLeech
  • TorrServer integration support
  • BitTorrent v2 support
  • Event-based invite system
  • Bonus points
  • Polling system
  • PM/DM system
  • Multilingual support (Russian and English is currently fully supported, with others in the future)
  • Atom/RSS feeds
  • ... and so MUCH MORE!

🖥️ Demo

Note

Demo resets every 24 hours!

🔧 Requirements

  • Apache / nginx (example config) / caddy (example config)
  • MySQL 5.5.3 or above / MariaDB 10.0 or above / Percona
  • PHP: 8.1 / 8.2 / 8.3 / 8.4
  • PHP Extensions: mbstring, gd, bcmath, intl, tidy (optional), xml, xmlwriter
  • Crontab (Recommended)

💾 Installation

For the installation, select one of the installation variants below:

Quick (Clean install) 🚀

Check out our autoinstall repository with detailed instructions.

Important

Thanks to Sergei Solovev for this installation script ❤️

Quick (For web-panels)

  1. Select the folder where you want TorrentPier installed
    cd /path/to/public_html
    
  2. Download the latest version of TorrentPier
    sudo git clone https://github.com/torrentpier/torrentpier.git .
    
  3. After completing, execute the command below and follow the instructions
    php install.php
    
  4. Voila!

Manual 🔩

  1. Install Composer
  2. Run the following command to create the TorrentPier project
    composer create-project torrentpier/torrentpier
    
  3. Check our system requirements
  4. After, run this command in the project directory to install Composer dependencies
    composer install
    
  5. Create a database and import the dump located at install/sql/mysql.sql
  6. Edit database configuration settings in the environment (.env.example), after, rename to .env
  7. Provide write permissions to the specified folders:
    • data/avatars, data/uploads, data/uploads/thumbs
    • internal_data/atom, internal_data/cache, internal_data/log, internal_data/triggers
    • sitemap
  8. Voila!

Important

The specific settings depend on the server you are using, but in general we recommend chmod 0755 for folders, and chmod 0644 for the files in them.

Additional steps 👣

  1. Edit these files:
    • favicon.png (change to your own)
    • robots.txt (change the addresses in lines Host and Sitemap to your own)
  2. Log in to the forum using the admin/admin login/password, and finish setting up via admin panel. Don't forget to change your password!

🔐 Security vulnerabilities

If you discover a security vulnerability within TorrentPier, please follow our security policy, so we can address it promptly.

📌 Our recommendations

  • It's recommended to run cron.php. - For significant tracker speed increase it ay be required to replace the built-in cron.php in operating system daemon.
  • Local configuration copy. - You can override the settings using the local configuration file library/config.local.php.

💚 Contributing / Contributors

Please read our contributing policy and code of conduct for details, and the process for submitting pull requests to us. But we are always ready to renew your pull-request for compliance with these requirements. Just send it!

Contributors

Made with contrib.rocks.

💞 Sponsoring

Support this project by becoming a sponsor or a backer.

OpenCollective sponsors OpenCollective backers

Monero
42zJE3FDvN8foP9QYgDrBjgtd7h2FipGCGmAcmG5VFQuRkJBGMbCvoLSmivepmAMEgik2E8MPWUzKaoYsGCtmhvL7ZN73jh
YooMoney
4100118022415720

📦 Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

📖 License

This project is licensed under the MIT License - see the LICENSE file for details.