Если вы ищете способ организовать децентрализованный торрент-сервер с возможностью управления через Matrix-чаты, комбинация TorrServe и GitHub станет идеальным решением. Этот гибкий инструмент позволяет не только скачивать торренты на удалённом сервере, но и получать уведомления, управлять загрузками и даже автоматизировать процессы через ботов в Element, FluffyChat или других Matrix-клиентах.

В отличие от классических торрент-клиентов вроде qBittorrent или Transmission, TorrServe предлагает уникальную архитектуру с поддержкой плагинов для Matrix, Telegram и Discord, что делает его незаменимым для командной работы или личного использования с акцентом на конфиденциальность. В этой статье мы разберём, как развернуть систему с нуля: от клонирования репозитория на GitHub до настройки вебхуков и шифрования трафика.

Что такое TorrServe и почему его интегрируют с Matrix

TorrServe — это саморазмещаемый торрент-сервер с открытым исходным кодом, написанный на Go. Его ключевые особенности:

  • 🔗 Модульная архитектура: поддержка плагинов для уведомлений в Matrix, Telegram, Slack и других платформах.
  • 📦 Минималистичный интерфейс: управление через API или консоль, без громоздкого GUI.
  • 🔒 Конфиденциальность: возможность маршрутизации трафика через Tor или WireGuard.
  • Производительность: оптимизирован для работы на маломощных устройствах (включая Raspberry Pi).

Интеграция с Matrix добавляет слои безопасности и удобства:

  1. Все уведомления и команды передаются через сквозное шифрование (E2EE).
  2. Поддержка ботов для автоматизации (например, добавление торрентов по команде !add магнет-ссылка).
  3. Гибкая настройка прав доступа через Matrix-комнаты (можно ограничить управление только определённым пользователям).
⚠️ Внимание: TorrServe не шифрует сам торрент-трафик (только управление). Для анонимности используйте VPN или Tor на уровне сервера.

Подготовка сервера: требования и зависимости

Перед установкой убедитесь, что ваш сервер соответствует минимальным требованиям:

Компонент Минимальные требования Рекомендуемые
Операционная система Linux (Ubuntu 20.04+) Debian 11/Ubuntu 22.04
Процессор 1 ядро, 1 ГГц 2+ ядра, 2 ГГц
ОЗУ 512 МБ 2+ ГБ
Хранилище 10 ГБ (для системы) SSD 50+ ГБ (для торрентов)
Сеть 10 Мбит/с 100+ Мбит/с (для пиринга)

Установите зависимости для TorrServe и Matrix-бота:

sudo apt update && sudo apt install -y git golang make curl jq

Для Matrix-интеграции потребуется:

  • 🤖 Аккаунт бота в Matrix (можно создать через matrix.org или свой хомсервер).
  • 🔑 Access Token (получается через curl или клиент вроде Element).
  • 📡 Комната в Matrix, куда будут отправляться уведомления.
📊 Какой протокол вы используете для удалённого управления торрентами?
  • SSH
  • Matrix/Element
  • Telegram
  • Discord
  • Другой

Установка TorrServe с GitHub: пошаговая инструкция

1. Клонируйте репозиторий TorrServe:

git clone https://github.com/autobrr/torrserve.git

cd torrserve

2. Соберите бинарный файл:

make build

3. Создайте конфигурационный файл config.yml в директории ~/.config/torrserve/. Пример минимальной конфигурации:

server:

host: 0.0.0.0

port: 8090

downloads:

path: /path/to/downloads

incomplete_path: /path/to/incomplete

rss:

enabled: false

notifications:

matrix:

enabled: true

homeserver: "https://matrix.org"

user_id: "@your_bot:matrix.org"

access_token: "YOUR_ACCESS_TOKEN"

room_id: "!room_id:matrix.org"

Порты 8090 и 8080 свободны|Конфиг config.yml создан|Права на директории загрузок установлены (chmod 775)|Matrix-бот добавлен в комнату-->

4. Запустите TorrServe в фоновом режиме:

nohup ./torrserve &
⚠️ Внимание: Если используете reverse proxy (Nginx/Apache), настройте проксирование на порт 8090 с поддержкой WebSocket для уведомлений в реальном времени.

Настройка Matrix-интеграции: бот и уведомления

Для работы с Matrix необходимо:

  1. Создать бот-аккаунт:
    • Зарегистрируйте нового пользователя через curl или клиент Element.
    • Получите access_token (инструкция: документация Matrix).
  2. Настроить комнату:
    • Создайте закрытую комнату (например, #torrserve-alerts:matrix.org).
    • Добавьте бота в комнату с правами на отправку сообщений.
  • Протестировать уведомления:
    curl -X POST "http://localhost:8090/api/v1/notifications/test" -H "Content-Type: application/json" -d '{"type": "matrix"}'
  • Пример уведомления о завершении загрузки:

    [TorrServe] Загрузка завершена: "Ubuntu 22.04 ISO"

    📥 Размер: 3.2 ГБ

    📁 Путь: /downloads/ubuntu-22.04.iso

    ⏱️ Время: 12 мин 34 сек

    💡

    Используйте Matrix-мосты (например, mautrix-telegram), чтобы дублировать уведомления в Telegram или Discord, если ваша команда использует несколько платформ.

    Автоматизация и расширенные возможности

    TorrServe поддерживает вебхуки для интеграции с внешними сервисами. Например, можно:

    • 🔄 Автоматически перемещать файлы после загрузки (через rclone или скрипты).
    • 📊 Отправлять статистику в Prometheus/Grafana для мониторинга.
    • 🤖 Управлять загрузками голосом через Home Assistant + Matrix.

    Пример скрипта для автоматического перемещения файлов:

    #!/bin/bash
    

    SOURCE="/downloads/complete/"

    DESTINATION="/media/nas/movies/"

    inotifywait -m -e create -e moved_to --format "%f" $SOURCE | while read FILE

    do

    if [[ "$FILE" == *.mkv || "$FILE" == *.mp4 ]]; then

    mv "$SOURCE$FILE" "$DESTINATION"

    curl -X POST "http://localhost:8090/api/v1/notifications" \

    -H "Content-Type: application/json" \

    -d '{"type": "matrix", "message": "Файл '"$FILE"' перемещён в NAS"}'

    fi

    done

    Для расширенной автоматизации используйте Autobrr (ещё один проект от создателей TorrServe), который позволяет:

    • 🔍 Мониторить RSS-фиды трекеров и автоматически добавлять торренты.
    • 🤖 Фильтровать загрузки по правилам (например, только 1080p или конкретные релиз-группы).
    Как настроить Autobrr с TorrServe?

    1. Установите Autobrr из репозитория GitHub.

    2. В конфиге autobrr.yml укажите путь к TorrServe API (http://localhost:8090).

    3. Настройте фильтры в интерфейсе Autobrr (например, для scene-релизов).

    4. Добавьте вебхук в TorrServe для обратной связи: http://localhost:7474/api/webhook?apikey=YOUR_API_KEY.

    5. Протестируйте, отправив тестовый торрент через RSS.

    Безопасность и оптимизация

    По умолчанию TorrServe не шифрует трафик. Чтобы защитить систему:

    1. Настройте HTTPS:
      • Используйте Nginx + Let’s Encrypt для терминирования TLS.
      • Пример конфига для Nginx:
        server {
        

        listen 443 ssl;

        server_name torrserve.yourdomain.com;

        ssl_certificate /etc/letsencrypt/live/torrserve.yourdomain.com/fullchain.pem;

        ssl_certificate_key /etc/letsencrypt/live/torrserve.yourdomain.com/privkey.pem;

        location / {

        proxy_pass http://localhost:8090;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "upgrade";

        }

        }

    2. Ограничьте доступ:
      • В config.yml добавьте auth-блок с логином/паролем.
      • Для Matrix используйте приватные комнаты с ограниченным доступом.
    3. Анонимизируйте трафик:
      • Маршрутизируйте TorrServe через Tor:
        torsocks ./torrserve
      • Или используйте WireGuard/OpenVPN на уровне сервера.
    ⚠️ Внимание: Если раздаёте торренты на публичных трекерах, ваш IP может быть виден другим пирам. Для полной анонимности комбинируйте VPN + Tor + private trackers.
    💡

    Использование Matrix для управления торрентами значительно безопаснее Telegram/Discord благодаря сквозному шифрованию и децентрализации.

    Решение распространённых проблем

    Если TorrServe не отправляет уведомления в Matrix:

    • 🔌 Проверьте access_token бота (он может истечь).
    • 📡 Убедитесь, что бот добавлен в комнату с правами на отправку сообщений.
    • 🔍 Включите отладку в TorrServe:
      ./torrserve --debug

    Если торренты не скачиваются:

    • 📂 Проверьте права на директории (chmod -R 775 /downloads).
    • 🌐 Убедитесь, что порт TCP/8090 открыт в фаерволле:
      sudo ufw allow 8090
    • 🔄 Перезапустите сервис:
      pkill torrserve && nohup ./torrserve &

    Ошибки с Matrix API (коды 403 или 401):

    • 🔑 Обновите access_token (они могут меняться при смене пароля бота).
    • 📡 Проверьте, не заблокирован ли ваш homeserver (например, matrix.org может ограничивать запросы).
    • 🛠️ Используйте альтернативные homeserver (например, https://matrix-client.matrix.org).

    FAQ: ответы на частые вопросы

    Можно ли использовать TorrServe без Matrix?

    Да, TorrServe поддерживает уведомления через Telegram, Discord, Slack, а также email и webhooks. Для этого достаточно изменить секцию notifications в config.yml. Например, для Telegram:

    notifications:
    

    telegram:

    enabled: true

    token: "YOUR_BOT_TOKEN"

    chat_id: 123456789

    Как ограничить скорость загрузки/отдачи?

    В TorrServe нет встроенного лимитера, но вы можете:

    1. Использовать tc (Linux Traffic Control) для ограничения трафика на уровне ОС.
    2. Настроить VPN-клиент (например, OpenVPN) с ограничением скорости.
    3. Использовать docker-контейнер с ограничениями:
      docker run --network host --cpus 1 --memory 1g torrserve
    Поддерживает ли TorrServe IPv6?

    Да, но требуется явная настройка в config.yml:

    server:
    

    host: "::" # Для прослушивания IPv6

    port: 8090

    Также убедитесь, что ваш Matrix-homeserver поддерживает IPv6 (например, matrix.org — поддерживает).

    Можно ли развернуть TorrServe на Windows?

    Официально TorrServe поддерживает только Linux и macOS, но вы можете:

    • 🖥️ Использовать WSL2 (Windows Subsystem for Linux).
    • 🐳 Запустить через Docker (есть неофициальные образы).
    • 🔄 Виртуализировать Ubuntu в VirtualBox или Hyper-V.

    Для Matrix-бота на Windows потребуется отдельная настройка Go-окружения.

    Как мигрировать данные с qBittorrent на TorrServe?

    TorrServe не имеет встроенного импортера, но вы можете:

    1. Скопировать файлы торрентов (.torrent) из ~/.config/qBittorrent/BT_backup/ в директорию TorrServe.
    2. Использовать qbittorrent-nox в режиме --webui-port=8080 параллельно с TorrServe для постепенного перехода.
    3. Написать скрипт для конвертации qBittorrent-меток в TorrServe-теги (через API).

    Для автоматического добавления торрентов используйте curl:

    curl -X POST "http://localhost:8090/api/v1/torrents/add" \
    

    -H "Content-Type: application/json" \

    -d '{"magnet": "magnet:?xt=urn:btih:..."}'