Автоматизация постоянно работающего загрузочного Raspberry Pi
Быстрые ссылки
- Почему это нужно
- Что потребуется
- Установка зависимостей
- Установка и настройка SickBeard на Raspbian
- Установка и настройка CouchPotato на Raspbian
- Установка и настройка Headphones на Raspbian

Почему это нужно
Если вы уже сделали из Raspberry Pi сетевой загрузочный узел для BitTorrent и/или Usenet, у вас есть «железо», которое может скачивать файлы 24/7. Однако без автоматизации вы постоянно вручную добавляете задания, ищете эпизоды или фильмы и перемещаете файлы. С помощью автоматизации (SickBeard, CouchPotato, Headphones) вы сообщаете системе, что хотите — дальше она сама ищет, скачивает и размещает контент.
Применение автоматизации выгодно, когда вы хотите:
- Поддерживать медиатеку в актуальном состоянии.
- Автоматизировать бэкап/перемещение скачанного контента на основной носитель.
- Интегрировать загрузки с медиаплеером (XBMC/Kodi).
Важно: прежде чем продолжать, убедитесь, что у вас уже установлены Raspbian, сетевой доступ (SSH/VNC) и подключён внешний USB-диск. Если вы ещё не сделали базовую настройку, пройдите предыдущие руководства по созданию BitTorrent/Usenet-узла.
Что потребуется

Минимальные требования и рекомендации:
- Raspberry Pi (любая модель с поддержкой Raspbian). Рекомендация: модель с >=1 ГБ RAM для комфортной работы нескольких служб.
- Установленный Raspbian и доступ по SSH/локально.
- Подключённый внешний HDD/SSD или большой USB-накопитель с выделённой файловой системой (рекомендуется ext4 для стабильности прав доступа).
- Рабочая установка SABnzbd (для Usenet) или настроенный торрент-клиент (Deluge/qBittorrent) — инструкция предполагает интеграцию с SABnzbd.
- Аккаунты и API-ключи для платных индексаторов/провайдеров (опционально).
Рекомендуемая последовательность подготовки:
- Базовая настройка Raspberry Pi
- Настройка удалённого доступа (SSH/VNC)
- Настройка внешнего диска и точек монтирования
- Установка клиентских приложений (SABnzbd, Deluge)
- Автоматизация с SickBeard, CouchPotato, Headphones
Важно: приложение автоматизации при первоначальной индексации может сильно загружать CPU и диск — давайте каждому сервису время на первичную обработку.
Установка зависимостей
Перед установкой автоматизационных приложений обновите пакеты и установите git и другие зависимости. Если вы недавно обновляли систему, некоторые шаги можно пропустить.
Откройте терминал и выполните:
sudo apt-get updatesudo apt-get upgradeУстановка git:
sudo apt-get install git-coreПроверка установки:
git --versionЕсли вы планируете использовать SickBeard и ранее устанавливали SABnzbd, Cheetah, возможно, уже установлен. Если нет — установите Python Cheetah:
sudo apt-get install python-cheetahПримечание по зависимости: некоторые проекты используют Python 2 (старые релизы). На современных Raspbian может быть установлены и Python 3. Если вы столкнётесь с несовместимостью, используйте виртуальное окружение или старую версию Raspbian (только при понимании рисков безопасности).
Установка и настройка SickBeard на Raspbian
SickBeard — автоматизатор поиска и управления телевизионными сериалами (Usenet и BitTorrent). Он мониторит недостающие эпизоды, отправляет NZB/Torrent в загрузчик и запускает постобработку.
Установка:
git clone git://github.com/midgetspy/Sick-Beard.gitЗапуск впервые:
cd Sick-Beardpython SickBeard.pyПосле запуска откройте браузер:
http://[IP-адрес-вашего-Pi]:8081/home/Основные настройки
В интерфейсе SickBeard пройдите по разделам конфигурации и обратите внимание на следующие параметры:
Config -> General
- Отключите Launch Browser — нам не нужен открывающийся браузер на самом устройстве.
- Можно задать логин/пароль и сменить порт.
Config -> Search Settings
- Настройте работу с SABnzbd: укажите URL, API-ключ, тестируйте соединение.
- При использовании Usenet настройте Retention — если у вас премиум-провайдер, укажите актуальные значения (проверяйте у провайдера).
- При использовании торрентов укажите watched-папку для торрент-клиента.
Config -> Search Providers
- Подключите индексаторы и введите API-ключи для платных сервисов. Приоритеты провайдеров можно менять перетаскиванием.
Config -> Post Processing
- Оставьте TV Download Dir пустым, если будете использовать helper-скрипт для перемещения файлов.
- Отключите Keep Original Files, включите Move Associated Files и Rename Episodes.
- Выберите формат метаданных под ваш медиаплеер (например, XBMC/Kodi).
Config -> Notifications
- Опционально: включите уведомления в XBMC/Kodi, email или другие сервисы. Это удобно для автоматического обновления библиотек после загрузки.
Интеграция с SABnzbd
SickBeard может передавать NZB в SABnzbd, а SABnzbd — запускать скрипт пост-обработки, который отдаст управление обратно SickBeard (autoProcessTV).
Перейдите в папку скриптов:
cd /home/pi/Sick-Beard/autoProcessTVФайлы: autoProcessTV.py и пример конфигурации autoProcessTV.cfg.sample. Откройте пример и отредактируйте под свою систему:
nano autoProcessTV.cfg.sampleПроверьте host/port/user/password на соответствие вашей установке SickBeard. Сохраните и переименуйте файл в autoProcessTV.cfg.
Копирование скриптов в папку SABnzbd (альтернативно):
cp autoProcessTV.cfg autoProcessTV.py sabToSickBeard.py /media/USBHDD1/shares/SABnzbd/scriptsВ SABnzbd создайте категорию tv и выберите sabToSickBeard.py в разделе Scripts. Укажите временную папку для телевизионных загрузок, если нужно.
Добавление сериалов
Создайте папку для сериалов (если её ещё нет):
mkdir /media/USBHDD1/shares/TV/В SickBeard: Add Shows -> Add Existing Shows -> Manage Directories -> New -> выберите папку и Set as Default.
Затем Add New Show, найдите шоу, задайте качество и Wanted/Skipped для недостающих эпизодов. Для немедленного поиска используйте Manage -> Backlog Overview.
Автозапуск SickBeard
Скачайте скрипт и сделайте его исполняемым:
sudo wget -O /etc/init.d/sickbeard/ https://www.howtogeek.com/wp-content/uploads/gg/up/sshot5161b529c109d.txtsudo chmod 755 /etc/init.d/sickbeardsudo update-rc.d sickbeard defaultsПроверка: перезагрузите Pi и убедитесь, что сервис доступен на порту (по умолчанию 8081).
Советы по отладке SickBeard
- Логи: смотрите лог-файлы в папке Sick-Beard/Logs.
- Проблемы с кодеками/переименованием: проверьте права доступа на внешнем диске и опции переименования.
- Если SickBeard не может связаться с SABnzbd — проверьте API-ключ и тест в настройках Search Settings.
Установка и настройка CouchPotato на Raspbian
CouchPotato автоматизирует поиск и скачивание фильмов.
Установка:
cd /home/pigit clone http://github.com/RuudBurger/CouchPotatoServer.gitЗапуск:
python CouchPotatoServer/CouchPotato.pyЕсли скрипт падает, внесите правку в runner.py чтобы задать host по умолчанию:
nano /home/pi/CouchPotatoServer/couchpotato/runner.pyНайдите блок config и добавьте строку:
'host': Env.setting('host', default = "0.0.0.0"),После успешного запуска откройте:
http://[IP-адрес-вашего-Pi]:5050/wizard/Основные настройки
General
- Установите логин/пароль, при необходимости поменяйте порт.
- Отключите Launch Browser.
Downloaders
- Настройте связь с SABnzbd: укажите API-ключ и категорию (рекомендуется задать отдельную категорию для фильмов).
- При использовании торрентов — укажите watched-папку торрент-клиента.
Providers
- Подключите индексаторы и введите API-ключи.
Renamers
- Укажите папку назначения (To folder) и From folder (папка скачивания SABnzbd). Включите Cleanup для удаления временных файлов.
Automation
- Установите bookmarklet/GreaseMonkey для удобного добавления фильмов с браузера.
Уведомления
- Включите уведомления (XBMC, Growl, email) через секцию Notifications.
Автозапуск CouchPotato
cd ~/sudo cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotatosudo chmod 755 /etc/init.d/couchpotatosudo update-rc.d couchpotato defaultsПроверки и советы
- Если CouchPotato не добавляет задания в SABnzbd — проверьте API-ключ и категорию.
- Проверьте права записи на папки назначения.
- При использовании частных индексаторов убедитесь в правильности API и лимитов запросов.
Установка и настройка Headphones на Raspbian
Headphones автоматизирует поиск и скачивание музыки (альбомы и релизы).
Установка и запуск:
git clone https://github.com/rembo10/headphones.gitpython headphones/Headphones.pyНастройки
Web Interface
- Можно задать логин/пароль, порт и включить API.
Download
- Укажите данные SABnzbd (host, порт, username, password, API key) и категорию (например, music). Можно настроить работу с торрентами.
Quality and Post Processing
- Установите желаемое качество (битрейт или lossless). Включите сортировку по папкам и автопереименование.
Advanced Settings
- Оставьте Musicbrainz Mirror по умолчанию, но при ошибках подключения смените зеркала.
Если у вас уже есть коллекция музыки, нажмите Manage и укажите папку с музыкой, чтобы Headphones импортировал существующие альбомы.
Автозапуск Headphones
cd ~/headphonessudo nano init.ubuntuВ файле init.ubuntu раскомментируйте и задайте пользователя и путь:
HP_USER=piHP_HOME=/home/pi/headphonesСкопируйте и включите автозапуск:
sudo cp init.ubuntu /etc/init.d/headphonessudo chmod 755 /etc/init.d/headphonessudo update-rc.d headphones defaultsПосле этого Headphones будет стартовать автоматически вместе с системой.
Практическая методология установки и проверки
Мини-методология установки каждого сервиса:
- Установить зависимости (git, python-cheetah и т. п.).
- Клонировать репозиторий.
- Запустить приложение вручную и проверить веб-интерфейс.
- Настроить интеграцию с SABnzbd (проверить нажатиями Test).
- Настроить папки назначения и права доступа (chown/chmod при необходимости).
- Настроить автозапуск и протестировать перезагрузкой.
- Наблюдать логи и дать время на первичную индексацию.
Критерии приёмки
- Веб-интерфейсы доступны по заданным портам.
- Интеграция с SABnzbd проходит тестовое подключение.
- После добавления фильма/эпизода задача появляется в SABnzbd и после завершения попадает в целевую папку.
- Сервисы стартуют автоматически после перезагрузки Pi.
Тестовые кейсы и критерии приёмки
- Добавить сериал в SickBeard и проверить, что NZB отправляется в SABnzbd и файлы переименовываются в назначенной папке.
- Добавить фильм в CouchPotato, проверить передачу задания и автоматическое перемещение/переименование.
- Добавить альбом в Headphones, проверить загрузку и сортировку по папкам.
- Отключить сеть, перезагрузить Pi — убедиться, что сервисы стартовали и корректно восстанавливают состояние после восстановления сети.
Приёмка считается пройденной, если все четыре сценария завершаются без ошибок и файлы доступны в ожидаемых местах.
Режимы зрелости автоматизации
- Уровень 0 — Ручные загрузки: все выполняется вручную.
- Уровень 1 — Частичная автоматизация: автоматизирована загрузка, но постобработка ручная.
- Уровень 2 — Полная автоматизация: автоматический поиск, загрузка, переименование и уведомления.
- Уровень 3 — Автономный режим: анализ автоподборов, интеграции с медиасервером, восстановление после сбоев.
Большинство домашних инсталляций стремятся к уровню 2.
Роль‑ориентированные чек-листы
Администратор (тот, кто настраивает систему)
- Убедиться в обновлённой системе и резервном копировании конфигов.
- Настроить точки монтирования внешнего диска с правильными правами (chown pi:pi /media/USBHDD1 -R).
- Проверить доступность портов в локальной сети.
- Настроить автозапуск сервисов.
Пользователь (тот, кто предпочитает ‘добавлять’ контент)
- Добавить шоу/фильм/альбом только через веб-интерфейс.
- Проверять папку назначения на предмет свободного места.
- Подписаться на уведомления (XBMC/Email) для оповещений о завершении загрузок.
Оператор восстановления
- Проверять логи сервисов при сбоях (/home/pi/Sick-Beard/Logs и т.п.).
- Перезапускать сервисы и проверять работу post-processing скриптов.
- Временное отключение автоматизации — переключить категориям SABnzbd скрипты в None.
Инцидентный план и откат
Типичные сбои и действия:
Сбой диска или потеря монтирования
- Шаг 1: отключить автоматические задания (при необходимости).
- Шаг 2: проверьте /etc/fstab и пересмонтируйте диск: sudo mount -a.
- Шаг 3: восстановите права: sudo chown pi:pi /media/USBHDD1 -R.
- Шаг 4: перезапустите сервисы.
Сервис не стартует после перезагрузки
- Шаг 1: проверить статус init-скрипта: sudo service <имя> status.
- Шаг 2: посмотреть логи системd/хранилища логов (или лог приложения).
- Шаг 3: временно запустить сервис вручную и наблюдать вывод консоли.
Неверные API-ключи или доступы
- Шаг 1: перепроверить ключи в интерфейсе приложений.
- Шаг 2: протестировать соединение с SABnzbd через тестовую кнопку или curl.
Откат к предыдущему состоянию
- Держите резервные копии конфигурационных файлов (backup/ с шаблонами).
- В случае проблем замените текущие конфиги из резервной копии и перезапустите сервис.
Отладка и типичные ошибки
Проблема: Скрипт post-processing не выполняется
- Проверьте, что файл скрипта имеет права на исполнение (chmod +x).
- Проверьте пути в конфиге autoProcessTV.cfg — абсолютные пути предпочтительны.
- Проверьте, что SABnzbd использует нужную папку со скриптами.
Проблема: Ошибки при переименовании или перемещении
- Проверьте, что пользователь, под которым работает сервис, имеет права записи/удаления в целевой папке.
- Проверьте, что файловая система поддерживает нужные символы и права (например, NTFS через ntfs-3g может иметь нюансы с правами).
Проблема: Приложение не запускается на порту
- Проверьте, не занят ли порт другим процессом (netstat -tulpn | grep <порт>).
- Убедитесь, что firewall/маршрутизатор не блокирует локальные порты.
Безопасность и приватность
- По умолчанию веб-интерфейсы открыты в локальной сети. Если вы собираетесь открывать порты извне, обязательно настройте логин/пароль и при возможности VPN.
- Храните API-ключи в недоступных для посторонних местах и не публикуйте конфиги с ключами.
- Регулярно обновляйте систему и приложения. Старые версии могут содержать уязвимости.
- Для удалённого доступа используйте SSH с ключами вместо паролей.
- Если вы используете платные индексаторы, проверьте условия использования и соблюдайте законодательство вашей страны.
Privacy и GDPR заметки
- Если система используется несколькими пользователями, договоритесь о политике доступа и хранении личных данных (учётные записи, email уведомления).
- Логи загрузок содержат метаданные о скачанных файлах — контролируйте доступ к ним.
Производительность и оптимизация
- Первичная индексация/перенос старых коллекций может занимать много CPU и IO. Планируйте операции на ночное время.
- Для снижения нагрузки можно по очереди запускать initial-scan для каждого приложения, а не все одновременно.
- Используйте быстрый внешний накопитель (USB 3.0, SSD) для лучшей производительности.
- Следите за свободным местом: используйте утилиты df -h и iotop для мониторинга IO.
Сценарии отказа и обходные пути
- Если SABnzbd временно недоступен, переключите CouchPotato и SickBeard на временные папки и вручную перенесите задания после восстановления.
- Если один из сервисов коррумпирован после обновления, вернитесь к предыдущей версии из резервной копии репозитория.
Совместимость и миграция
- При миграции с ПК на Pi сохраните конфиги (папки с .ini/.cfg и базами данных). Проверьте совместимость версий приложений.
- Некоторые старые скрипты рассчитаны на Python 2. При миграции учитывайте различия между Python 2 и 3.
Полезные шаблоны и команды
Права и владельцы для внешнего диска:
sudo chown -R pi:pi /media/USBHDD1/shares
sudo chmod -R 755 /media/USBHDD1/sharesБыстрый проверочный curl для SABnzbd API:
curl "http://localhost:8080/api?mode=queue&apikey=ВАШ_API_KEY"Проверка занятого порта:
sudo netstat -tulpn | grep 8081Перезапуск сервиса (init.d):
sudo service sickbeard restartРезервное копирование конфигов:
mkdir -p /home/pi/backups/configs
cp -r /home/pi/Sick-Beard /home/pi/backups/configs/sickbeard_$(date +%F)Примеры шаблонов конфигурации
Пример минимальной части autoProcessTV.cfg (фрагмент):
[General]
host = 127.0.0.1
port = 8081
username =
password =
[Sabnzbd]
api_key = ВАШ_API_KEY
[PostProcessing]
move_to = /media/USBHDD1/shares/TV/
Не забудьте заменить API-ключи и пути на свои.
Decision flow для выбора, что автоматизировать
flowchart TD
A[Есть ли у вас внешний диск?] -->|Да| B[Есть SABnzbd или торрент-клиент?]
A -->|Нет| Z[Подготовьте диск и точки монтирования]
B -->|SABnzbd| C{Хотите автоматизировать ТВ, фильмы, музыку?}
B -->|Торрент| C
C --> TV[Установить SickBeard]
C --> Movies[Установить CouchPotato]
C --> Music[Установить Headphones]
TV --> Integrate[Настроить категории в SABnzbd и post-processing]
Movies --> Integrate
Music --> Integrate
Integrate --> Done[Проверить автозапуск и тестовые загрузки]Сравнение подходов
- Все в одном Pi: удобно и дешёво, но ограниченные ресурсы требуют поочерёдной первичной синхронизации.
- Разделение на несколько устройств: лучше для производительности (SABnzbd и индексаторы на отдельном устройстве), но требует сложной сети и больше железа.
Рекомендация: для домашних сетапов один Raspberry Pi с SSD/HDD достаточно при корректном планировании первоначальной нагрузки.
Частые вопросы и ответы
Q: Можно ли запускать все три сервиса одновременно на старой модели Pi с 512 МБ RAM?
A: Формально да, но при первоначальном сканировании и массовой обработке вы столкнётесь с сильной нагрузкой. Планируйте staged-инициализацию (запуск по очереди).
Q: Обязательно ли использовать SABnzbd?
A: Нет. Можно использовать торрент-каналы и Deluge/Transmission. Однако многие предпочитают SABnzbd для Usenet‑интеграции.
Q: Как защитить доступ к веб-интерфейсам?
A: Включите логин/пароль в конфигурации приложений, используйте SSH-туннель или VPN для удалённого доступа.
Глоссарий
- SABnzbd: загрузчик NZB для Usenet.
- NZB: файл, описывающий набор частей для скачивания из Usenet.
- Post-processing: автоматические операции после скачивания (распаковка, переименование, перемещение).
- Retention: период хранения постов в Usenet-провайдере.
Риски и меры по снижению
Риски
- Перегрузка CPU/IO при первичной индексации.
- Потеря данных при сбоях диска.
- Неавторизованный доступ к веб-интерфейсам.
Митигейшены
- По очереди запускать первичную индексацию.
- Регулярный бэкап конфигураций и критичных метаданных.
- Ограничение доступа — VPN/SSH и сложные пароли.
Превью для социальных сетей
OG title: Автоматизация загрузок на Raspberry Pi
OG description: Превратите Raspberry Pi в полностью автоматизированный загрузочный сервер с SickBeard, CouchPotato и Headphones — установка, интеграция и безопасность.
Короткое объявление (100–200 слов)
Создайте автономный загрузочный сервер на Raspberry Pi: этот подробный гид показывает, как установить и настроить SickBeard, CouchPotato и Headphones поверх Raspbian и SABnzbd. Вы научитесь интегрировать автоматизацию с пост-обработкой, настраивать автозапуск, решать типичные проблемы и обеспечивать безопасность доступа. Включает пошаговые команды, шаблоны конфигов, чек-листы ролей, план восстановления и рекомендации по оптимизации производительности. Подойдёт как для начинающих, так и для опытных пользователей, желающих сократить ручной труд при пополнении медиатеки.
В результате вы получите полностью автоматизированную систему, которая найдет, скачает и правильно разместит телевизионные эпизоды, фильмы и музыку с минимальным участием человека. Следуйте чек-листам и процедурам, дайте сервисам время на первоначальную индексацию, и ваша Raspberry Pi будет работать как тихий, надёжный сервер загрузок.
Короткое резюме и советы
- Дайте каждой службе время на первичную обработку.
- Проверяйте права доступа и API-ключи.
- Настройте уведомления и резервирование конфигов.
- Не открывайте веб-интерфейсы в интернет без VPN и надёжной авторизации.
Спасибо за внимание — делитесь идеями по расширению вашей Raspberry Pi-сборки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента