TorrentMonitor
Средство мониторинга торрент-трекеров с возможностью автоматического скачивания. Работает на PHP, абсолютно бесплатно.
Версия:
Возможности
anidub.com, animelayer.ru, baibako.tv, booktracker.org, casstudio.tv, hamsterstudio.org, kinozal.me, lostfilm.tv, newstudio.tv, nnmclub.to, pornolab.net, riperam.org, rustorka.com, rutor.info, rutracker.org, tfile.cc
Установка
Для начала потребуется веб-сервер, можно воспользоваться LAMP, а более опытным пользователям собрать его со следующими системными требованиями:
- Веб-сервер (Apache, nginx или lighttpd)
- PHP (7.4 или новее)
- MySQL/MariaDB, PostgreSQL или SQLite
Для корректной работы требуются следующие модули для php:
php-ctype php-curl php-iconv php-mbstring php-pdo php-simplexml php-xml php-zip
Для работы с БД необходим один из следующих модулей, в зависимости от используемой БД:
php-pdo_mysql php-pdo_pgsql php-pdo_sqlite
* Имена пакетов могут немного отличаться в зависимости от версии и дистрибутива ОС. Пример установки в Debian/Ubuntu (PHP 8.x + MySQL):
$ sudo apt install nginx php-fpm php-curl php-mbstring php-xml php-zip php-mysql mariadb-server
Шаг 1 — скачиваем «Торрент Монитор»
Скачиваем последний релиз с GitHub и распаковываем в каталог веб-сервера
$ cd /var/www
$ wget https://github.com/ElizarovEugene/TorrentMonitor/archive/refs/heads/master.zip
$ unzip master.zip
$ mv TorrentMonitor-master torrentmonitor
Шаг 2 — создаём базу данных
Схемы для всех трёх СУБД лежат в каталоге db_schema.
MySQL:
$ mysql -u root -p -e "CREATE DATABASE torrentmonitor CHARACTER SET utf8; CREATE USER 'torrentmonitor'@'localhost' IDENTIFIED BY 'ваш_пароль'; GRANT ALL ON torrentmonitor.* TO 'torrentmonitor'@'localhost';"
$ mysql -u torrentmonitor -p torrentmonitor < /var/www/torrentmonitor/db_schema/mysql.sql
PostgreSQL:
$ sudo -u postgres createuser -P torrentmonitor
$ sudo -u postgres createdb -O torrentmonitor torrentmonitor
$ psql -U torrentmonitor torrentmonitor < /var/www/torrentmonitor/db_schema/postgresql.sql
SQLite (самый простой вариант, отдельный сервер БД не нужен):
$ sqlite3 /var/www/torrentmonitor/torrentmonitor.sqlite < /var/www/torrentmonitor/db_schema/sqlite.sql
Шаг 3 — настраиваем подключение к БД
Копируем пример конфигурации и раскомментируем блок своей СУБД в config.php:
$ cd /var/www/torrentmonitor
$ cp config.php.example config.php
Для MySQL:
Config::write('db.host', 'localhost');
Config::write('db.type', 'mysql');
Config::write('db.charset', 'utf8');
Config::write('db.port', '3306');
Config::write('db.basename', 'torrentmonitor');
Config::write('db.user', 'torrentmonitor');
Config::write('db.password', 'ваш_пароль');
Для PostgreSQL:
Config::write('db.host', 'localhost');
Config::write('db.type', 'pgsql');
Config::write('db.port', '5432');
Config::write('db.basename', 'torrentmonitor');
Config::write('db.user', 'torrentmonitor');
Config::write('db.password', 'ваш_пароль');
Для SQLite:
Config::write('db.type', 'sqlite');
Config::write('db.basename', '/var/www/torrentmonitor/torrentmonitor.sqlite');
* Для SQLite указывайте абсолютный путь до файла с базой и не забудьте выставить на него верные права доступа
По желанию можно включить шифрование учётных данных трекеров и торрент-клиента в базе (AES-256-GCM), указав в config.php 64-символьный hex-ключ:
Config::write('encryption.key', 'hex-строка-64-символа');
Ключ можно сгенерировать командой openssl rand -hex 32. Без ключа приложение работает как обычно, храня значения в открытом виде — потерянный ключ сделает зашифрованные данные нечитаемыми.
Шаг 4 — права на файлы
Каталог должен принадлежать пользователю, от имени которого работает веб-сервер и PHP (www-data в Debian/Ubuntu, apache в RHEL/CentOS, nginx в некоторых сборках):
$ chown -R www-data:www-data /var/www/torrentmonitor
Шаг 5 — настраиваем веб-сервер
Никаких особых правил переписывания адресов ТМ не требует — достаточно обычного виртуального хоста с обработкой PHP. Пример server-блока nginx (PHP-FPM):
server {
listen 80;
server_name tm.example.com;
root /var/www/torrentmonitor;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Для Apache достаточно обычного VirtualHost с DocumentRoot /var/www/torrentmonitor.
⚠ Не открывайте ТМ напрямую в интернет без включённого входа по паролю (и желательно HTTPS) — интерфейс управляет вашим торрент-клиентом и хранит учётные данные трекеров.
Шаг 6 — заходим в веб-интерфейс
Пароль по умолчанию — torrentmonitor, смените(!) его сразу после первого входа в «Настройки → Смена пароля»
На вкладке «Учётные данные» указываем учётные данные от трекеров
Добавляем торренты для мониторинга
Шаг 7 — настраиваем cron
Проверку трекеров выполняет скрипт engine.php — запускаем его по расписанию в crontab пользователя веб-сервера (например, sudo crontab -u www-data -e):
*/10 * * * * php /var/www/torrentmonitor/engine.php >> /var/www/torrentmonitor/torrent_monitor_error.log 2>&1
Каждые 10 минут — разумный интервал, слишком частые запросы могут привести к бану на трекерах. Ошибки будут копиться в torrent_monitor_error.log. Проверить работу движка можно и вручную — из веб-интерфейса (раздел «Запуск») или из консоли:
$ sudo -u www-data php /var/www/torrentmonitor/engine.php
При возникновении проблем, с ТМ есть раздел помощи, который поможет более подробно понять механизмы работы и дальнейшие настройки системы