diff --git a/.gitignore b/.gitignore index e69de29bb..f62d18bc6 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,176 @@ +# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,laravel,phpstorm+all +# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,laravel,phpstorm+all + +### Laravel ### +/vendor/ +node_modules/ +npm-debug.log +yarn-error.log + +# Laravel 4 specific +bootstrap/compiled.php +app/storage/ + +# Laravel 5 & Lumen specific +public/storage +public/hot + +# Laravel 5 & Lumen specific with changed public path +public_html/storage +public_html/hot + +storage/*.key +.env +Homestead.yaml +Homestead.json +/.vagrant +.phpunit.result.cache + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### PhpStorm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PhpStorm+all Patch ### +# Ignore everything but code style settings and run configurations +# that are supposed to be shared within teams. + +.idea/* + +!.idea/codeStyles +!.idea/runConfigurations + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/macos,windows,laravel,phpstorm+all diff --git a/README.md b/README.md index 5e7a13049..7e776e7f9 100644 --- a/README.md +++ b/README.md @@ -5,184 +5,37 @@

-

- 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 +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](https://torrentpier.com), where it's possible to get support and download modifications for the engine. ## ๐ŸŒˆ Current status -TorrentPier is currently undergoing a **major 3.0 rewrite** to remove all legacy code and modernize the codebase to current PHP standards. **Backward compatibility is not a priority** - this release focuses on moving forward with clean, modern architecture. If you want to delve deep into the code, check our [issues](https://github.com/torrentpier/torrentpier/issues) and go from there. +TorrentPier is currently being **completely rewritten from scratch on Laravel**. The current codebase may not reflect the final product, and code downloaded from the `dexter` branch may not include promised features. + +> [!WARNING] +> This branch contains **development code** that is not ready for production use. For stable releases, please download from the [GitHub releases](https://github.com/torrentpier/torrentpier/releases) or use the [download center](https://nightly.link/torrentpier/torrentpier/workflows/ci/master/TorrentPier-master). > [!NOTE] -> TorrentPier 3.0 will introduce breaking changes. Existing installations should remain on 2.x versions until ready to migrate to the new architecture. +> The legacy codebase (v2.x) can be found on the **master branch**. This Laravel rewrite (v3.0) will introduce breaking changes and is not backward compatible. ## โœจ Features * Rich forum with browsing/moderation tools * High-load capable, heavily configurable announcer * Scrape support * FreeLeech -* [TorrServer integration](https://github.com/YouROK/TorrServer) support +* TorrServer integration support * BitTorrent v2 support * Event-based invite system * Bonus points * Polling system * PM/DM system -* Multilingual support (Russian and English are currently fully supported, with others in the future) +* Multilingual support * Atom/RSS feeds * ... and so MUCH MORE! -## ๐Ÿ–ฅ๏ธ Demo - -* URL: https://torrentpier.duckdns.org -* Username: `admin` -* Password: `admin` - -> [!NOTE] -> Demo resets every 24 hours! - -## ๐Ÿ”ง Requirements - -* Apache / nginx ([example config](install/nginx.conf)) / caddy ([example config](install/Caddyfile)) -* MySQL 5.5.3 or above (including MySQL 8.0+) / MariaDB 10.0 or above / Percona -* PHP: 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](https://github.com/torrentpier/autoinstall) repository with detailed instructions. - -> [!NOTE] -> Thanks to [Sergei Solovev](https://github.com/SeAnSolovev) for this installation script โค๏ธ - -### Quick (For web-panels) โ˜•๏ธ - -1. Select the folder where you want TorrentPier installed - ```shell - cd /path/to/public_html - ``` -2. Download the latest version of TorrentPier - ```shell - sudo git clone https://github.com/torrentpier/torrentpier.git . - ``` -3. After completing, execute the command below and follow the instructions - ```shell - php install.php - ``` -4. Voila! โœจ - -### Manual ๐Ÿ”ฉ - -1. Install [Composer](https://getcomposer.org/) -2. Run the following command to create the TorrentPier project - ```shell - composer create-project torrentpier/torrentpier - ``` -3. [Check our system requirements](#-requirements) -4. After, run this command in the project directory to install Composer dependencies - ```shell - composer install - ``` -5. Edit database configuration settings in the environment (`.env.example`), after, rename to `.env` -6. Create a database and run migrations to set up the schema - ```shell - php vendor/bin/phinx migrate --configuration=phinx.php - ``` -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! โœจ - -> [!TIP] -> You can automate steps 4-7 by running `php install.php` instead, which will guide you through the setup process interactively. - -> [!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](https://github.com/torrentpier/torrentpier/security/policy), so we can address it promptly. - -## ๐Ÿงช Testing - -TorrentPier includes a comprehensive testing suite built with **Pest PHP**. Run tests to ensure code quality and system reliability: - -```shell -# Run all tests -./vendor/bin/pest - -# Run with coverage -./vendor/bin/pest --coverage -``` - -For detailed testing documentation, see [tests/README.md](tests/README.md). - -## ๐Ÿ“Œ Our recommendations - -* *It's recommended to run `cron.php`.* - For significant tracker speed increase it may be required to replace the built-in cron.php with an 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](CONTRIBUTING.md) and [code of conduct](CODE_OF_CONDUCT.md) for details, and the process for -submitting pull requests to us. But we are always ready to review your pull-request for compliance with -these requirements. Just send it! - - - Contributors - - -Made with [contrib.rocks](https://contrib.rocks). - -## ๐Ÿ’ž Sponsoring - -Support this project by becoming a sponsor or a backer. - -[![OpenCollective sponsors](https://opencollective.com/torrentpier/sponsors/badge.svg)](https://opencollective.com/torrentpier) -[![OpenCollective backers](https://opencollective.com/torrentpier/backers/badge.svg)](https://opencollective.com/torrentpier) - -
- Monero - -``` -42zJE3FDvN8foP9QYgDrBjgtd7h2FipGCGmAcmG5VFQuRkJBGMbCvoLSmivepmAMEgik2E8MPWUzKaoYsGCtmhvL7ZN73jh -``` -
- -
- YooMoney - -``` -4100118022415720 -``` -
- ## ๐Ÿ“ฆ Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/torrentpier/torrentpier/tags).