# 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) ```bash cd searchFilms cp .env.example .env # указать TMDB_API_KEY docker compose up -d --build ``` Откроет порты: - `:8001` — TMDB API Proxy - `:8443` — TorAPI Search ### 🏠 App Stack — на хосте в России ```bash 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 / ... ```