Мобильно-адаптивный веб-клиент и прокси-сервер для просмотра контента с неофициальных зеркал (rezka.fi, rezka.si). Бэкенд написан на Go, фронтенд — чистый HTML/CSS/JS (без сборщиков, работает очень быстро).
- Умное переключение зеркал: Если
rezka.fiзаблокирован или не отвечает, сервер автоматически переключается наrezka.siи повторяет запрос. - Встроенный Видео-Прокси (
/api/p): Весь видео-трафик может проксироваться через ваш сервер. Это обходит проблему "IP-lock" (когда видео отдается только тому IP-адресу, который запрашивал ссылку). - Плеер на
hls.js: Полная кроссбраузерная совместимость (Chrome, Safari, Android, iOS, Smart TV). - Удобный UI: Специально подогнан под мобильные экраны (Bottom Navigation) и пульты телевизоров (поддержка скролла).
- Graceful Shutdown: Сервер корректно завершает работу, обрывая соединения без ошибок.
- Минимум сторонних зависимостей: Парсинг HTML написан с нуля на базе
goqueryбез устаревших оберток.
Рекомендуемый способ установки на любой сервер (Ubuntu/Debian) — через Docker.
git clone https://github.com/ASM717/cinema.git
cd cinema# Если ваш пользователь состоит в группе docker:
make docker-up
# Если нужны root-права:
make sudo-upПроект запустится в фоне и будет доступен на порту 8080 (по умолчанию проброс в docker-compose.yml настроен как 8080:8080).
Открыть приложение:
http://IP_ВАШЕГО_СЕРВЕРА:8080/
make docker-down/make sudo-down— остановить контейнеры.make docker-rebuild— полная пересборка Docker-образа при обновлении кода.make run— для локальной разработки (запускает напрямую черезgo run).
Убедитесь, что у вас установлен Go 1.24+.
git clone https://github.com/ASM717/cinema.git
cd cinema
go mod tidy
make runЛокальная версия запустится по адресу: http://localhost:8080.
Можете использовать бэкенд для написания собственных клиентов (например, нативного iOS/Android приложения). Все ответы приходят в формате JSON.
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/status |
Проверка авторизованной сессии и версии сервера |
| POST | /api/login |
Вход в аккаунт ({"login":"...","password":"..."}) |
| POST | /api/logout |
Выход из аккаунта |
| GET | /api/newest?genre=... |
Получение новинок (films, series, cartoons, animation) |
| GET | /api/popular?genre=... |
Получение популярных тайтлов |
| GET | /api/search?q=текст |
Поиск по сайту |
| GET | /api/video?url=... |
Инициализация плеера (возвращает список переводов/озвучек) |
| GET | /api/episodes?url=...&tr=ID |
Получение списка сезонов и серий для сериалов |
| GET | /api/stream?url=...&tr=ID&season=1&episode=1 |
Получение прямых ссылок на MP4 и M3U8 (HLS) потоки |
| GET | /api/p?url=... |
Проксирование видео (поддерживает Range-запросы) |
- Добавление на экран (PWA): На iPhone откройте Safari, нажмите кнопку
Поделиться→На экран Домой. Проект будет работать как полноценное приложение без рамок браузера. - Фазировка кеша: Если после обновления кода у вас старая версия UI, используйте функцию «Жесткая перезагрузка» или очистите кеш браузера (Cmd+Shift+R / Ctrl+F5).