Как собрать собственный индексатор Usenet

Быстрые ссылки
- Потребуется
- Установка NewzNab
- Конфигурация
- Контрольный список администратора
- Отладка и распространённые ошибки
- Безопасность и эксплуатация
Потребуется
- Компьютер с Ubuntu (серверная или настольная сборка).
- Аккаунт в Usenet у любого поставщика (NNTP-сервер и логин/пароль).
- Базовые навыки работы в терминале Linux.
- Устойчивая интернет‑связь и выделенное место на диске для NZB-файлов.
Если всё это есть — можно приступать.
Установка NewzNab
Весь процесс выполняется из терминала. Откройте терминал с привилегиями root или используйте sudo для команд.
Важно: в примерах ниже команды приведены в рабочем виде; при копировании убедитесь, что дефисы в опциях — обычные ASCII дефисы (-), а не длинные тире.
Запуск терминала
Откройте терминал. На GNOME можно выполнить:
sudo gnome-terminalЭто даст терминал с правами root в текущем сеансе, чтобы не вводить sudo постоянно.

Обновление репозиториев
Сначала обновим списки пакетов:
apt-get update
Создание каталога для сайта
В Ubuntu веб‑контент обычно хранится в /var/www. Создадим папку для NewzNab и зададим разрешения:
mkdir -p /var/www/newznab
chmod 777 /var/www/newznabПримечание: chmod 777 даёт полные права всем пользователям — удобно для установки, но нежелательно для продакшн‑сервера. В разделе «Безопасность» есть рекомендации по изменению прав после установки.

Установка PHP и расширений
Установим PHP и нужные расширения. Примеры для PHP5 в старых системах; на современных Ubuntu будет актуальнее PHP7/8 — используйте соответствующие пакеты и конфигурации.
apt-get install -y php5 php5-dev php-pear
apt-get install -y php5-gd php5-mysql php5-curl
Редактирование конфигурации PHP
Отредактируйте конфиг CLI (и позже конфиг Apache). Откроем файл nano:
nano /etc/php5/cli/php.iniНайдите и измените параметры:
- max_execution_time = 120
- date.timezone = Europe/London (замените на вашу временную зону, например Europe/Moscow)

Если вы не уверены в формате timezone, список значений есть в официальной документации PHP.

Установка MySQL
Для базы данных установим MySQL. В примере используется 5.5 — на новых системах выбирайте актуальную версию (5.7, 8.0). Пакеты:
apt-get install mysql-server-5.5
apt-get install mysql-client-5.5
apt-get install libmysqlclient-devВо время установки MySQL система попросит задать пароль root. Выберите надежный пароль, особенно если сервер будет публично доступен.


Установка Apache
Установим веб‑сервер Apache:
apt-get install -y apache2
Теперь откроем конфигурацию PHP под Apache и скорректируем те же параметры:
nano /etc/php5/apache2/php.iniЗадайте:
- memory_limit = -1 (или разумный предел для продакшн: 256M/512M)
- max_execution_time = 120
- date.timezone = Europe/London (или ваша зона)

Конфигурация Apache для NewzNab
Создадим виртуальный хост:
nano /etc/apache2/sites-available/newznabВставьте в файл следующий минимальный блок (примеры значений):
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /var/www/newznab/www
ErrorLog /var/log/apache2/error.log
LogLevel warn
Сохраните изменения.

Скачивание и распаковка NewzNab
Скачайте NewzNab Classic с официальной страницы проекта. После загрузки распакуйте архив и скопируйте все файлы в /var/www/newznab:
# распаковка архива (пример)
unzip newznab-classic.zip -d /tmp/newznab
cp -r /tmp/newznab/* /var/www/newznab/



Активация сайта и mod_rewrite
Зарегистрируем сайт как активный и включим модуль rewrite:
sudo a2dissite default
sudo a2ensite newznab
sudo a2enmod rewrite
sudo service apache2 restartПри перезапуске может появиться предупреждение, если вы использовали ServerName localhost — это допустимо для локальной установки.

Разрешения файлов и папок
Установите права на каталоги, которые NewzNab будет записывать:
sudo chmod 777 /var/www/newznab/www/lib/smarty/templates_c
sudo chmod 777 /var/www/newznab/www/covers/movies
sudo chmod 777 /var/www/newznab/www/covers/music
sudo chmod 777 /var/www/newznab/www
sudo chmod 777 /var/www/newznab/www/install
sudo chmod 777 /var/www/newznab/nzbfiles/Опять же, эти права упрощают установку, но не подходят для долгосрочной эксплуатации на сервере с внешним доступом.
Конфигурация
Откройте браузер и перейдите на http://localhost/install. Установщик проверит зависимости и предложит пройти шаги конфигурации.
Примечание: установщик может отметить date.timezone и memory_limit как предупреждение — это нормально при установке. Продолжайте.

Настройка базы данных
Вставьте данные для подключения к MySQL (host, пользователь, пароль, имя базы). Установщик создаст нужные таблицы.

Настройка доступа к Usenet
Введите NNTP‑сервер, порт, логин и пароль вашего провайдера Usenet. NewzNab будет использовать эти данные, чтобы подключаться к заголовкам и скачивать сообщения.

Создание администратора сайта
Задайте имя пользователя и пароль администратора — это учётная запись для входа в панель управления NewzNab.

Если появится ошибка по месту хранения nzb‑файлов, выполните предложенную chmod‑команду в терминале и повторите.

Поздравляем — вы попали в административную панель.

Настройка категорий
Рекомендуется изменить поведение категорий NZB. В админке кликните по своему имени в правом верхнем углу, затем — «Edit» и снимите чекбоксы для Movies, Music и Console, если вы не хотите индексировать эти категории по умолчанию.



Затем вернитесь в http://localhost/admin и пройдите оставшиеся шаги конфигурации.

Готово. Если всё работает локально, можно подумать о публикации индексатора в сети — в разделе безопасности описаны необходимые доработки.
Контрольный список администратора
- Проверить, что Apache обслуживает /var/www/newznab/www
- Убедиться, что MySQL доступен и создана база данных для NewzNab
- Ввести корректные данные NNTP провайдера в админке
- Настроить права доступа к nzbfiles и кэшам шаблонов
- Отключить chmod 777 после установки — настроить владельца (www-data) и правильные права
- Настроить бэкап базы данных и каталога nzbfiles
- При публикации в сеть — настроить HTTPS и ограничение доступа к административной панели
Отладка и распространённые ошибки
Сервер возвращает 500 или белая страница
- Проверьте логи Apache: /var/log/apache2/error.log
- Убедитесь в правильности прав на файлы и в том, что PHP‑модули установлены.
NewzNab не подключается к MySQL
- Проверьте host/порт/пользователь/пароль.
- Убедитесь, что MySQL слушает внешний интерфейс, если база на удалённом хосте.
Ошибки записи в nzbfiles
- Проверьте права на каталог и владельца процесса Apache (обычно www-data).
Не скачиваются заголовки из Usenet
- Проверьте настройки провайдера NNTP: хост, порт, SSL/TLS.
- Убедитесь, что лимиты соединений провайдера не превышены.
Когда этот подход не подходит
- Вы планируете публичный индексатор с большим трафиком и многопользовательской моделью — NewzNab Classic требует доработки по масштабируемости и безопасности.
- Вам нужна современная поддержка PHP7/8, современных библиотек и контейнеризации — лучше использовать форки или модифицированные версии проекта.
- Нет опыта администрирования серверов — хостинг и SaaS‑решения окажутся проще и безопаснее.
Альтернативы
- Использовать готовые NZB‑индексаторы (коммерческие или открытые) для экономии времени.
- Развернуть окружение в контейнерах Docker (образ для PHP/Apache/MySQL) для изоляции и удобства миграции.
- Использовать NewzNab‑forks с активной поддержкой или пересмотреть архитектуру на основе микросервисов для масштабирования.
Мини‑методология установки (быстрая инструкция)
- Подготовка сервера: обновление системы и создание каталога.
- Установка стека: Apache, PHP и расширения, MySQL.
- Настройка PHP и Apache (timezone, memory_limit, max_execution_time).
- Скачивание NewzNab и копирование в /var/www/newznab.
- Включение сайта и модулей Apache; настройка прав.
- Проход веб‑инсталлятора: БД, NNTP, админ.
- Тестирование: проверка логов, подключение к Usenet, поиск тестовой записи.
Безопасность и эксплуатация
- После установки устраните chmod 777: измените владельца на www-data и установите более строгие права, например 755 для директорий и 644 для файлов.
sudo chown -R www-data:www-data /var/www/newznab
sudo find /var/www/newznab -type d -exec chmod 755 {} \;
sudo find /var/www/newznab -type f -exec chmod 644 {} \;- Настройте HTTPS (Let’s Encrypt) и принудительную переадресацию с HTTP на HTTPS.
- Ограничьте доступ к админке по IP или настройте двухфакторную аутентификацию, если возможно.
- Проводите регулярные бэкапы базы данных и каталога nzbfiles.
Критерии приёмки
- Веб‑инсталлятор успешно прошёл все проверки и создал таблицы в БД.
- Админская страница доступна по https://ваш‑хост/admin (локально: http://localhost/admin).
- NewzNab может подключаться к NNTP‑серверу и получать заголовки.
- Поиск возвращает результаты, и nzb‑файлы сохраняются в каталоге nzbfiles.
Роль‑ориентированные рекомендации
- Для системного администратора: автоматизируйте установку через Ansible или скрипты, настройте мониторинг и бэкапы.
- Для разработчика: используйте контейнеры для изоляции окружения и тестов, обновите код под современные версии PHP.
- Для пользователя/администратора контента: настраивайте категории, фильтры и планировщики сканирования.
Тесты и проверка
- Тест подключения к базе: попытка входа в MySQL с конфигурацией приложения.
- Тест NNTP: подключение к серверу через telnet/openssl для проверки логина и получения заголовков.
- Интеграционный тест: поиск тестовой записи, скачивание NZB, проверка файловой системы на наличие nzb.
Краткое резюме
NewzNab позволяет создать приватный индексатор Usenet локально. Ключевые шаги: подготовка сервера, установка LAMP‑стека, настройка PHP/Apache, копирование файлов NewzNab, настройка прав и прохождение веб‑инсталлятора. После установки обязательно выполните дополнительные меры безопасности, настройте бэкапы и мониторинг.
Важно: не публикуйте индексатор без предварительной проработки безопасности и юридической проверки в вашей юрисдикции.
Спасибо за внимание. Следите за обновлениями и подписывайтесь в соцсетях, если хотите получать практические гайды по самохостингу.
Похожие материалы
Сброс Samsung при заблокированном телефоне
Как разогнать монитор через NVIDIA Control Panel
APC_INDEX_MISMATCH: как исправить BSOD в Windows
Как исправить ошибку Blink 1011