findFilms/README.md
vrubelroman 90ad38bca7 Очистка проекта и улучшение документации
- Удалены ненужные файлы: node_modules, package.json, package-lock.json, get_rutracker_cookie.js, __pycache__
- Создан скрипт автоматического развертывания deploy.sh
- Создан файл .gitignore для исключения временных файлов
- Создан env.example с примером конфигурации
- Полностью переписана документация README.md с подробными инструкциями
- Обновлен PROJECT_SUMMARY.md с инструкциями по развертыванию
- Проект готов к развертыванию на новом компьютере
2025-10-09 13:05:28 +03:00

15 KiB
Raw Blame History

🎬 searchTorrentDownl

Полнофункциональная система для поиска и загрузки фильмов через торренты с Telegram ботом

Docker Python FastAPI Telegram

🎯 Описание проекта

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 Автоматическое развертывание (рекомендуется)

# Клонируйте репозиторий
git clone <repository-url>
cd searchTorrentDownl

# Запустите скрипт развертывания
chmod +x deploy.sh
./deploy.sh

Скрипт автоматически:

  • Установит все зависимости
  • Настроит qBittorrent
  • Запустит все сервисы
  • Покажет статус системы

2 Ручное развертывание

Шаг 1: Установка зависимостей

# Обновление системы
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

# Создание пользователя
sudo useradd -r -s /bin/false qbittorrent

# Создание systemd сервиса
sudo tee /etc/systemd/system/qbittorrent.service > /dev/null <<EOF
[Unit]
Description=qBittorrent-nox
After=network.target

[Service]
Type=simple
User=qbittorrent
Group=qbittorrent
ExecStart=/usr/bin/qbittorrent-nox --webui-port=8080
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# Запуск сервиса
sudo systemctl daemon-reload
sudo systemctl enable qbittorrent
sudo systemctl start qbittorrent

Шаг 3: Настройка проекта

# Создание Docker сети
docker network create torrentvideo_default

# Копирование конфигурации
cp env.example .env

# Редактирование конфигурации
nano .env

Шаг 4: Запуск сервисов

# Запуск всех сервисов
docker compose up -d --build

# Проверка статуса
docker ps

⚙️ Конфигурация

🔑 Получение API ключей

TMDB API Key

  1. Зарегистрируйтесь на themoviedb.org
  2. Перейдите в Settings > API
  3. Создайте новый API ключ
  4. Скопируйте ключ в файл .env

Telegram Bot Token

  1. Найдите @BotFather в Telegram
  2. Отправьте команду /newbot
  3. Следуйте инструкциям для создания бота
  4. Скопируйте токен в файл .env

📝 Файл конфигурации (.env)

# 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        # Сводка проекта

🔧 Управление сервисами

Основные команды

# Запуск всех сервисов
docker compose up -d

# Остановка всех сервисов
docker compose down

# Перезапуск сервисов
docker compose restart

# Просмотр логов
docker compose logs -f

# Просмотр статуса
docker ps

Управление отдельными сервисами

# Запуск только веб-приложения
docker compose up -d movie-search

# Запуск только Telegram бота
docker compose up -d telegram-bot

# Перезапуск TorAPI
docker compose restart torapi-search torapi-qbittorrent

Управление qBittorrent

# Запуск
sudo systemctl start qbittorrent

# Остановка
sudo systemctl stop qbittorrent

# Статус
sudo systemctl status qbittorrent

# Логи
sudo journalctl -u qbittorrent -f

🐛 Устранение неполадок

Проблемы с Docker

# Проверка статуса контейнеров
docker ps -a

# Просмотр логов
docker logs <container_name>

# Пересборка контейнеров
docker compose up -d --build --force-recreate

Проблемы с qBittorrent

# Проверка статуса
sudo systemctl status qbittorrent

# Перезапуск
sudo systemctl restart qbittorrent

# Проверка портов
netstat -tlnp | grep 8080

Проблемы с сетью

# Проверка Docker сетей
docker network ls

# Создание сети заново
docker network rm torrentvideo_default
docker network create torrentvideo_default

Проблемы с API

# Проверка 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"

📊 Мониторинг

Логи сервисов

# Все сервисы
docker compose logs -f

# Конкретный сервис
docker logs -f movie-search
docker logs -f telegram-bot
docker logs -f TorAPI-Search
docker logs -f TorAPI-qBittorrent

Мониторинг ресурсов

# Использование ресурсов контейнерами
docker stats

# Использование диска
df -h

# Использование памяти
free -h

🔒 Безопасность

Рекомендации

  1. Измените пароли по умолчанию

    # В файле .env
    QBITTORRENT_PASSWORD=your_secure_password
    
  2. Настройте файрвол

    sudo ufw allow 8080  # qBittorrent
    sudo ufw allow 8089  # Web interface
    sudo ufw enable
    
  3. Используйте HTTPS в продакшене

    • Настройте reverse proxy (nginx)
    • Получите SSL сертификат
  4. Регулярно обновляйте зависимости

    docker compose pull
    docker compose up -d --build
    

🚀 Развертывание в продакшене

Настройка reverse proxy (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

# Инициализация Swarm
docker swarm init

# Развертывание стека
docker stack deploy -c docker-compose.yml searchtorrentdownl

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции
  3. Внесите изменения
  4. Создайте Pull Request

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.

🆘 Поддержка

При возникновении проблем:

  1. Проверьте раздел устранения неполадок
  2. Изучите логи сервисов
  3. Создайте issue в репозитории
  4. Опишите проблему и приложите логи

📈 Планы развития

  • Поддержка дополнительных трекеров
  • Веб-интерфейс для управления ботом
  • Система уведомлений по email
  • API для интеграции с другими приложениями
  • Поддержка сериалов и аниме
  • Мобильное приложение

Создано с ❤️ для удобного поиска и загрузки фильмов