Torrent­Monitor

Средство мониторинга торрент-трекеров с возможностью автоматического скачивания. Работает на PHP, абсолютно бесплатно.

Скачать

Версия: TorrentMonitor 3.0

Возможности

Отправка уведомлений, через: e-mail, Prowl, Pushbullet, Pushover, Pushall и Telegram.
Поддержка работы через прокси. Как целиком, так и по отдельным трекерам.
Поддержка выполенения собственных скриптов после обновления раздачи.
Слежение за релизерами и RSS-лента.
Автоматическое управление торрент-клиентами Deluge, Transmission, TorrServer и qBittorrent. Добавление/удаление раздач при выходе новых серий или обновлений.
Поддержка трекеров:
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

При возникновении проблем, с ТМ есть раздел помощи, который поможет более подробно понять механизмы работы и дальнейшие настройки системы

GitHub

Установка на другие устройства:

Docker