# 🎬 searchTorrentDownl **Полнофункциональная система для поиска и загрузки фильмов через торренты с Telegram ботом** [![Docker](https://img.shields.io/badge/Docker-Ready-blue?logo=docker)](https://www.docker.com/) [![Python](https://img.shields.io/badge/Python-3.12+-green?logo=python)](https://python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115.0-red?logo=fastapi)](https://fastapi.tiangolo.com/) [![Telegram](https://img.shields.io/badge/Telegram-Bot-blue?logo=telegram)](https://telegram.org/) ## 🎯 Описание проекта **searchTorrentDownl** - это современная система для поиска и загрузки фильмов, которая объединяет: - 🌐 **Веб-интерфейс** с адаптивным дизайном - 🤖 **Telegram бот** с полной функциональностью - 🔍 **Поиск фильмов** через TMDB API - 🎬 **Поиск торрентов** на популярных трекерах - ⬇️ **Автоматическое добавление** в qBittorrent - 🔔 **Уведомления** о завершении загрузки ### ✨ Основные возможности - **🎬 Поиск фильмов** - интеллектуальный поиск с постерами и описаниями - **🔍 Поиск торрентов** - на всех популярных трекерах (RuTracker, Kinozal, RuTor, NoNameClub) - **📱 Telegram бот** - полная функциональность в мессенджере - **🌐 Веб-интерфейс** - удобный поиск и навигация - **⬇️ Автоматическая загрузка** - добавление торрентов в qBittorrent одним кликом - **🔔 Уведомления** - сообщения о завершении загрузки в Telegram - **🐳 Docker** - полная контейнеризация для простого развертывания ## 🏗️ Архитектура системы ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Telegram Bot │ │ Web Interface │ │ qBittorrent │ │ (Docker) │ │ (Docker) │ │ (Host) │ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │ │ │ └──────────────────────┼──────────────────────┘ │ ┌─────────────┴─────────────┐ │ FastAPI App │ │ (Movie Search API) │ └─────────────┬─────────────┘ │ ┌─────────────┴─────────────┐ │ TMDB API │ │ (Movie Information) │ └─────────────┬─────────────┘ │ ┌─────────────┴─────────────┐ │ TorAPI │ │ (Torrent Search) │ └───────────────────────────┘ ``` ### 🔧 Компоненты системы 1. **FastAPI приложение** (Docker) - основной веб-сервис и API 2. **Telegram Bot** (Docker) - бот для мессенджера 3. **TorAPI-Search** (Docker) - поиск торрентов по названию 4. **TorAPI-qBittorrent** (Docker) - получение magnet ссылок 5. **qBittorrent-nox** (Host) - клиент для загрузки торрентов ## 📋 Системные требования ### Минимальные требования - **ОС**: Linux (Ubuntu 20.04+, Debian 11+) - **RAM**: 2GB - **Диск**: 10GB свободного места - **CPU**: 2 ядра ### Необходимое ПО - **Docker**: 20.10+ - **Docker Compose**: 2.0+ - **qBittorrent-nox**: 4.6.7+ ## 🚀 Быстрый старт ### 1️⃣ Автоматическое развертывание (рекомендуется) ```bash # Клонируйте репозиторий git clone cd searchTorrentDownl # Запустите скрипт развертывания chmod +x deploy.sh ./deploy.sh ``` Скрипт автоматически: - Установит все зависимости - Настроит qBittorrent - Запустит все сервисы - Покажет статус системы ### 2️⃣ Ручное развертывание #### Шаг 1: Установка зависимостей ```bash # Обновление системы sudo apt update && sudo apt upgrade -y # Установка Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # Установка Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # Установка qBittorrent sudo apt install -y qbittorrent-nox ``` #### Шаг 2: Настройка qBittorrent ```bash # Создание пользователя sudo useradd -r -s /bin/false qbittorrent # Создание systemd сервиса sudo tee /etc/systemd/system/qbittorrent.service > /dev/null < API](https://www.themoviedb.org/settings/api) 3. Создайте новый API ключ 4. Скопируйте ключ в файл `.env` #### Telegram Bot Token 1. Найдите [@BotFather](https://t.me/BotFather) в Telegram 2. Отправьте команду `/newbot` 3. Следуйте инструкциям для создания бота 4. Скопируйте токен в файл `.env` ### 📝 Файл конфигурации (.env) ```bash # TMDB API Key TMDB_API_KEY=your_tmdb_api_key_here # Telegram Bot Token TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here # qBittorrent настройки QBITTORRENT_USERNAME=admin QBITTORRENT_PASSWORD=admin QBITTORRENT_HOST=host.docker.internal QBITTORRENT_PORT=8080 # TorAPI настройки TORRENT_SEARCH_URL=http://host.docker.internal:8443 TORRENT_ADD_URL=http://host.docker.internal:8088 ``` ## 🌐 Использование ### Веб-интерфейс 1. Откройте http://localhost:8089 2. Введите название фильма 3. Выберите фильм из результатов 4. Выберите торрент для скачивания 5. Торрент автоматически добавится в qBittorrent ### Telegram Bot 1. Найдите вашего бота в Telegram 2. Отправьте команду `/start` или `/find` 3. Введите название фильма 4. Выберите фильм из списка 5. Нажмите "Найти торренты" 6. Выберите нужный торрент 7. Получите уведомление о завершении загрузки ### qBittorrent - **Веб-интерфейс**: http://localhost:8080 - **Логин по умолчанию**: admin / admin - **Настройка папок**: Settings > Downloads ## 📁 Структура проекта ``` searchTorrentDownl/ ├── app.py # Основное FastAPI приложение ├── telegram_bot.py # Telegram бот ├── run_telegram_bot.py # Скрипт запуска бота ├── deploy.sh # Скрипт автоматического развертывания ├── start_all.sh # Скрипт запуска (локально) ├── requirements.txt # Python зависимости ├── env.example # Пример конфигурации ├── Dockerfile # Docker образ основного приложения ├── Dockerfile.telegram # Docker образ Telegram бота ├── docker-compose.yml # Docker Compose конфигурация ├── templates/ # HTML шаблоны │ ├── index.html # Главная страница │ ├── results.html # Результаты поиска фильмов │ ├── torrents.html # Результаты поиска торрентов │ └── error.html # Страница ошибок ├── README.md # Основная документация ├── TELEGRAM_BOT_README.md # Документация Telegram бота └── PROJECT_SUMMARY.md # Сводка проекта ``` ## 🔧 Управление сервисами ### Основные команды ```bash # Запуск всех сервисов docker compose up -d # Остановка всех сервисов docker compose down # Перезапуск сервисов docker compose restart # Просмотр логов docker compose logs -f # Просмотр статуса docker ps ``` ### Управление отдельными сервисами ```bash # Запуск только веб-приложения docker compose up -d movie-search # Запуск только Telegram бота docker compose up -d telegram-bot # Перезапуск TorAPI docker compose restart torapi-search torapi-qbittorrent ``` ### Управление qBittorrent ```bash # Запуск sudo systemctl start qbittorrent # Остановка sudo systemctl stop qbittorrent # Статус sudo systemctl status qbittorrent # Логи sudo journalctl -u qbittorrent -f ``` ## 🐛 Устранение неполадок ### Проблемы с Docker ```bash # Проверка статуса контейнеров docker ps -a # Просмотр логов docker logs # Пересборка контейнеров docker compose up -d --build --force-recreate ``` ### Проблемы с qBittorrent ```bash # Проверка статуса sudo systemctl status qbittorrent # Перезапуск sudo systemctl restart qbittorrent # Проверка портов netstat -tlnp | grep 8080 ``` ### Проблемы с сетью ```bash # Проверка Docker сетей docker network ls # Создание сети заново docker network rm torrentvideo_default docker network create torrentvideo_default ``` ### Проблемы с API ```bash # Проверка TMDB API curl "https://api.themoviedb.org/3/movie/550?api_key=YOUR_API_KEY" # Проверка Telegram Bot curl "https://api.telegram.org/botYOUR_BOT_TOKEN/getMe" # Проверка TorAPI curl "http://localhost:8443/api/provider/list" ``` ## 📊 Мониторинг ### Логи сервисов ```bash # Все сервисы docker compose logs -f # Конкретный сервис docker logs -f movie-search docker logs -f telegram-bot docker logs -f TorAPI-Search docker logs -f TorAPI-qBittorrent ``` ### Мониторинг ресурсов ```bash # Использование ресурсов контейнерами docker stats # Использование диска df -h # Использование памяти free -h ``` ## 🔒 Безопасность ### Рекомендации 1. **Измените пароли по умолчанию** ```bash # В файле .env QBITTORRENT_PASSWORD=your_secure_password ``` 2. **Настройте файрвол** ```bash sudo ufw allow 8080 # qBittorrent sudo ufw allow 8089 # Web interface sudo ufw enable ``` 3. **Используйте HTTPS в продакшене** - Настройте reverse proxy (nginx) - Получите SSL сертификат 4. **Регулярно обновляйте зависимости** ```bash docker compose pull docker compose up -d --build ``` ## 🚀 Развертывание в продакшене ### Настройка reverse proxy (nginx) ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:8089; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ### Использование Docker Swarm ```bash # Инициализация Swarm docker swarm init # Развертывание стека docker stack deploy -c docker-compose.yml searchtorrentdownl ``` ## 🤝 Вклад в проект 1. Форкните репозиторий 2. Создайте ветку для новой функции 3. Внесите изменения 4. Создайте Pull Request ## 📄 Лицензия Этот проект распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для подробностей. ## 🆘 Поддержка При возникновении проблем: 1. Проверьте [раздел устранения неполадок](#-устранение-неполадок) 2. Изучите логи сервисов 3. Создайте issue в репозитории 4. Опишите проблему и приложите логи ## 📈 Планы развития - [ ] Поддержка дополнительных трекеров - [ ] Веб-интерфейс для управления ботом - [ ] Система уведомлений по email - [ ] API для интеграции с другими приложениями - [ ] Поддержка сериалов и аниме - [ ] Мобильное приложение --- **Создано с ❤️ для удобного поиска и загрузки фильмов**