Гид по технологиям

Автоматизация постоянно работающего загрузочного Raspberry Pi

• 12 min read • Raspberry Pi • Обновлено 28 Nov 2025
Автоматизация загрузочного Raspberry Pi
Автоматизация загрузочного Raspberry Pi

Быстрые ссылки

  • Почему это нужно
  • Что потребуется
  • Установка зависимостей
  • Установка и настройка SickBeard на Raspbian
  • Установка и настройка CouchPotato на Raspbian
  • Установка и настройка Headphones на Raspbian

Фотография Raspberry Pi, настроенного для постоянной работы

Почему это нужно

Если вы уже сделали из Raspberry Pi сетевой загрузочный узел для BitTorrent и/или Usenet, у вас есть «железо», которое может скачивать файлы 24/7. Однако без автоматизации вы постоянно вручную добавляете задания, ищете эпизоды или фильмы и перемещаете файлы. С помощью автоматизации (SickBeard, CouchPotato, Headphones) вы сообщаете системе, что хотите — дальше она сама ищет, скачивает и размещает контент.

Применение автоматизации выгодно, когда вы хотите:

  • Поддерживать медиатеку в актуальном состоянии.
  • Автоматизировать бэкап/перемещение скачанного контента на основной носитель.
  • Интегрировать загрузки с медиаплеером (XBMC/Kodi).

Важно: прежде чем продолжать, убедитесь, что у вас уже установлены Raspbian, сетевой доступ (SSH/VNC) и подключён внешний USB-диск. Если вы ещё не сделали базовую настройку, пройдите предыдущие руководства по созданию BitTorrent/Usenet-узла.

Что потребуется

Фото комплектующих: Raspberry Pi, USB-диски и кабели

Минимальные требования и рекомендации:

  • Raspberry Pi (любая модель с поддержкой Raspbian). Рекомендация: модель с >=1 ГБ RAM для комфортной работы нескольких служб.
  • Установленный Raspbian и доступ по SSH/локально.
  • Подключённый внешний HDD/SSD или большой USB-накопитель с выделённой файловой системой (рекомендуется ext4 для стабильности прав доступа).
  • Рабочая установка SABnzbd (для Usenet) или настроенный торрент-клиент (Deluge/qBittorrent) — инструкция предполагает интеграцию с SABnzbd.
  • Аккаунты и API-ключи для платных индексаторов/провайдеров (опционально).

Рекомендуемая последовательность подготовки:

  1. Базовая настройка Raspberry Pi
  2. Настройка удалённого доступа (SSH/VNC)
  3. Настройка внешнего диска и точек монтирования
  4. Установка клиентских приложений (SABnzbd, Deluge)
  5. Автоматизация с SickBeard, CouchPotato, Headphones

Важно: приложение автоматизации при первоначальной индексации может сильно загружать CPU и диск — давайте каждому сервису время на первичную обработку.

Установка зависимостей

Перед установкой автоматизационных приложений обновите пакеты и установите git и другие зависимости. Если вы недавно обновляли систему, некоторые шаги можно пропустить.

Откройте терминал и выполните:

sudo apt-get update
sudo 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-Beard
python 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.txt
sudo chmod 755 /etc/init.d/sickbeard
sudo update-rc.d sickbeard defaults

Проверка: перезагрузите Pi и убедитесь, что сервис доступен на порту (по умолчанию 8081).

Советы по отладке SickBeard

  • Логи: смотрите лог-файлы в папке Sick-Beard/Logs.
  • Проблемы с кодеками/переименованием: проверьте права доступа на внешнем диске и опции переименования.
  • Если SickBeard не может связаться с SABnzbd — проверьте API-ключ и тест в настройках Search Settings.

Установка и настройка CouchPotato на Raspbian

CouchPotato автоматизирует поиск и скачивание фильмов.

Установка:

cd /home/pi
git 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/couchpotato
sudo chmod 755 /etc/init.d/couchpotato
sudo update-rc.d couchpotato defaults

Проверки и советы

  • Если CouchPotato не добавляет задания в SABnzbd — проверьте API-ключ и категорию.
  • Проверьте права записи на папки назначения.
  • При использовании частных индексаторов убедитесь в правильности API и лимитов запросов.

Установка и настройка Headphones на Raspbian

Headphones автоматизирует поиск и скачивание музыки (альбомы и релизы).

Установка и запуск:

git clone https://github.com/rembo10/headphones.git
python 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 ~/headphones
sudo nano init.ubuntu

В файле init.ubuntu раскомментируйте и задайте пользователя и путь:

HP_USER=pi
HP_HOME=/home/pi/headphones

Скопируйте и включите автозапуск:

sudo cp init.ubuntu /etc/init.d/headphones
sudo chmod 755 /etc/init.d/headphones
sudo update-rc.d headphones defaults

После этого Headphones будет стартовать автоматически вместе с системой.

Практическая методология установки и проверки

Мини-методология установки каждого сервиса:

  1. Установить зависимости (git, python-cheetah и т. п.).
  2. Клонировать репозиторий.
  3. Запустить приложение вручную и проверить веб-интерфейс.
  4. Настроить интеграцию с SABnzbd (проверить нажатиями Test).
  5. Настроить папки назначения и права доступа (chown/chmod при необходимости).
  6. Настроить автозапуск и протестировать перезагрузкой.
  7. Наблюдать логи и дать время на первичную индексацию.

Критерии приёмки

  • Веб-интерфейсы доступны по заданным портам.
  • Интеграция с SABnzbd проходит тестовое подключение.
  • После добавления фильма/эпизода задача появляется в SABnzbd и после завершения попадает в целевую папку.
  • Сервисы стартуют автоматически после перезагрузки Pi.

Тестовые кейсы и критерии приёмки

  1. Добавить сериал в SickBeard и проверить, что NZB отправляется в SABnzbd и файлы переименовываются в назначенной папке.
  2. Добавить фильм в CouchPotato, проверить передачу задания и автоматическое перемещение/переименование.
  3. Добавить альбом в Headphones, проверить загрузку и сортировку по папкам.
  4. Отключить сеть, перезагрузить Pi — убедиться, что сервисы стартовали и корректно восстанавливают состояние после восстановления сети.

Приёмка считается пройденной, если все четыре сценария завершаются без ошибок и файлы доступны в ожидаемых местах.

Режимы зрелости автоматизации

  • Уровень 0 — Ручные загрузки: все выполняется вручную.
  • Уровень 1 — Частичная автоматизация: автоматизирована загрузка, но постобработка ручная.
  • Уровень 2 — Полная автоматизация: автоматический поиск, загрузка, переименование и уведомления.
  • Уровень 3 — Автономный режим: анализ автоподборов, интеграции с медиасервером, восстановление после сбоев.

Большинство домашних инсталляций стремятся к уровню 2.

Роль‑ориентированные чек-листы

Администратор (тот, кто настраивает систему)

  • Убедиться в обновлённой системе и резервном копировании конфигов.
  • Настроить точки монтирования внешнего диска с правильными правами (chown pi:pi /media/USBHDD1 -R).
  • Проверить доступность портов в локальной сети.
  • Настроить автозапуск сервисов.

Пользователь (тот, кто предпочитает ‘добавлять’ контент)

  • Добавить шоу/фильм/альбом только через веб-интерфейс.
  • Проверять папку назначения на предмет свободного места.
  • Подписаться на уведомления (XBMC/Email) для оповещений о завершении загрузок.

Оператор восстановления

  • Проверять логи сервисов при сбоях (/home/pi/Sick-Beard/Logs и т.п.).
  • Перезапускать сервисы и проверять работу post-processing скриптов.
  • Временное отключение автоматизации — переключить категориям SABnzbd скрипты в None.

Инцидентный план и откат

Типичные сбои и действия:

  1. Сбой диска или потеря монтирования

    • Шаг 1: отключить автоматические задания (при необходимости).
    • Шаг 2: проверьте /etc/fstab и пересмонтируйте диск: sudo mount -a.
    • Шаг 3: восстановите права: sudo chown pi:pi /media/USBHDD1 -R.
    • Шаг 4: перезапустите сервисы.
  2. Сервис не стартует после перезагрузки

    • Шаг 1: проверить статус init-скрипта: sudo service <имя> status.
    • Шаг 2: посмотреть логи системd/хранилища логов (или лог приложения).
    • Шаг 3: временно запустить сервис вручную и наблюдать вывод консоли.
  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-сборки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро