сервис по поиску фильмов и их закачке через qbittorrent. из клиентов телеграм бот и веб интерфейс
Find a file
vrubelroman 127060d023 fix: пропал декоратор @app.post(/api/add-torrent), follow_redirects в tmdb-proxy
- Возвращён @app.post('/api/add-torrent') — был съеден при вставке
  proxy-torrent-download, из-за чего кнопка 'Добавить в клиент' всегда
  возвращала 404
- tmdb-proxy /proxy-torrent: добавлен follow_redirects=True — rutracker
  и kinozal отдают 302 перед .torrent файлом
2026-06-03 19:32:41 +00:00
app fix: пропал декоратор @app.post(/api/add-torrent), follow_redirects в tmdb-proxy 2026-06-03 19:32:41 +00:00
searchFilms fix: пропал декоратор @app.post(/api/add-torrent), follow_redirects в tmdb-proxy 2026-06-03 19:32:41 +00:00
.gitignore Очистка проекта и улучшение документации 2025-10-09 13:05:28 +03:00
PROJECT_SUMMARY.md refactor: split into two stacks - searchFilms/ (NL) and app/ (RU) 2026-06-03 09:29:09 +00:00
README.md refactor: split into two stacks - searchFilms/ (NL) and app/ (RU) 2026-06-03 09:29:09 +00:00

findFilms — поиск и скачивание фильмов

Двухстековая архитектура: searchFilms/ на NL-хосте (Голландия, без блокировок), app/ на RU-хосте (Россия). Между собой общаются по HTTP через интернет.


Архитектура

searchFilms/ (NL, 72.56.91.135)       internet      app/ (RU, 192.168.8.173)
┌─────────────────────────┐     HTTP      ┌─────────────────────────────┐
│  tmdb-proxy (:8001)     │ ←──────────→ │  movie-search (:8089)       │
│  torapi-search (:8443)  │   поиск      │  telegram-bot               │
│                         │              │  qBittorrent (:8080)        │
└─────────────────────────┘              └─────────────────────────────┘

Поток данных:

  1. Пользователь ищет фильм → movie-search делает запрос к tmdb-proxy (NL)
  2. Пользователь ищет торренты → movie-search делает запрос к torapi-search (NL)
  3. Пользователь добавляет торрент → movie-search отдаёт magnet-ссылку в qBittorrent (локально)

NL-хосту не нужен доступ к RU — только RU ходит к NL.


Быстрый старт

🌍 SearchFilms Stack — на голландском хосте (72.56.91.135)

cd searchFilms
cp .env.example .env        # указать TMDB_API_KEY
docker compose up -d --build

Откроет порты:

  • :8001 — TMDB API Proxy
  • :8443 — TorAPI Search

🏠 App Stack — на хосте в России

cd app
cp .env.example .env        # указать TELEGRAM_BOT_TOKEN
docker compose up -d --build

Откроет:

  • :8089 — веб-интерфейс
  • Telegram бот (ждёт команды /start)

Переменные окружения

Переменная Где Назначение
NL_HOST app/.env IP голландского хоста (по умолч. 72.56.91.135)
TELEGRAM_BOT_TOKEN app/.env Токен бота от @BotFather
TMDB_API_KEY search/.env Ключ TMDB API
QBITTORRENT_USERNAME app/.env Логин qBittorrent
QBITTORRENT_PASSWORD app/.env Пароль qBittorrent

Структура

findFilms/
├── README.md               ← этот файл
├── PROJECT_SUMMARY.md      ← архитектура
├── searchFilms/             ← NL-стек
│   ├── docker-compose.yml
│   ├── .env.example
│   └── tmdb-proxy/         ← build-зависимость
└── app/                    ← RU-стек
    ├── docker-compose.yml
    ├── .env.example
    ├── app.py / telegram_bot.py / templates / Dockerfile / ...