Если вы ищете способ организовать децентрализованный торрент-сервер с возможностью управления через 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 добавляет слои безопасности и удобства:
- Все уведомления и команды передаются через сквозное шифрование (E2EE).
- Поддержка ботов для автоматизации (например, добавление торрентов по команде
!add магнет-ссылка). - Гибкая настройка прав доступа через 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 необходимо:
- Создать бот-аккаунт:
- Зарегистрируйте нового пользователя через
curlили клиент Element. - Получите
access_token(инструкция: документация Matrix).
- Зарегистрируйте нового пользователя через
- Настроить комнату:
- Создайте закрытую комнату (например,
#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 не шифрует трафик. Чтобы защитить систему:
- Настройте 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";
}
}
- Ограничьте доступ:
- В
config.ymlдобавьтеauth-блок с логином/паролем. - Для Matrix используйте приватные комнаты с ограниченным доступом.
- В
- Анонимизируйте трафик:
- Маршрутизируйте TorrServe через Tor:
torsocks ./torrserve - Или используйте WireGuard/OpenVPN на уровне сервера.
- Маршрутизируйте TorrServe через Tor:
⚠️ Внимание: Если раздаёте торренты на публичных трекерах, ваш 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 нет встроенного лимитера, но вы можете:
- Использовать
tc(Linux Traffic Control) для ограничения трафика на уровне ОС. - Настроить VPN-клиент (например, OpenVPN) с ограничением скорости.
- Использовать 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 не имеет встроенного импортера, но вы можете:
- Скопировать файлы торрентов (
.torrent) из~/.config/qBittorrent/BT_backup/в директорию TorrServe. - Использовать
qbittorrent-noxв режиме--webui-port=8080параллельно с TorrServe для постепенного перехода. - Написать скрипт для конвертации 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:..."}'