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

Установка nZEDb на Ubuntu 18.04

7 min read Сервер Обновлено 23 Nov 2025
Установка nZEDb на Ubuntu 18.04
Установка nZEDb на Ubuntu 18.04

Что такое nZEDb

nZEDb — это открытый индексатор Usenet, автоматизирующий сканирование заголовков и составление NZB-файлов. Он предоставляет веб-интерфейс, поиск, просмотр и API. nZEDb позволяет скачивать неограниченное число NZB-файлов.

Краткое определение: nZEDb — индексатор Usenet с веб-интерфейсом и автоматическим обновлением релизов.

Требования

  • Сервер с Ubuntu 18.04. Минимум 2 ГБ RAM для минимальной нагрузки, рекомендуется 4+ ГБ для индексирования больших объёмов.
  • Настроенный root-пароль или доступ через sudo-пользователя с правами root.
  • Доступ к интернету для скачивания пакетов и репозиториев Git.

Важно: для production-релиза учитывайте резервирование, бэкапы и отдельный сервер для базы данных при высоких нагрузках.

План работ (коротко)

  1. Обновить систему. 2. Установить стек LAMP и PHP-модули. 3. Настроить MariaDB и AppArmor. 4. Установить медиа-утилиты, unrar, libav, composer и tmux. 5. Клонировать nZEDb, установить зависимости composer. 6. Настроить Apache виртуальный хост. 7. Пройти веб-инсталляцию nZEDb и запустить первичную индексацию.

Подготовка системы

Перед началом обновите пакеты и примените обновления безопасности:

apt-get update -y
apt-get upgrade -y

После обновления рекомендуется перезагрузить сервер, чтобы применить обновления ядра и сервисов.

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

Установите Apache, MariaDB и нужные PHP-пакеты одной командой (по умолчанию пакет php7.2 в Ubuntu 18.04):

apt-get install apache2 mariadb-server mariadb-client php7.2 php7.2-fpm php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-cli php7.2-curl libapache2-mod-php7.2 php-imagick php-pear php7.2-dev php7.2-mbstring php7.2-xml curl unzip git -y

После установки откройте и отредактируйте конфигурационные файлы php.ini для веб-прослойки и CLI. Для стабильной работы индексатора рекомендуется увеличить таймауты и лимит памяти и установить свой часовой пояс.

Откройте /etc/php/7.2/apache2/php.ini:

nano /etc/php/7.2/apache2/php.ini

Измените или добавьте:

max_execution_time = 300
memory_limit = 1024M
date.timezone = "Europe/Moscow"

Примечание: укажите ваш локальный часовой пояс (например, “Europe/Moscow” или другой регион из /usr/share/zoneinfo).

Затем отредактируйте CLI-версию:

nano /etc/php/7.2/cli/php.ini

Измените те же параметры:

max_execution_time = 300
memory_limit = 1024M
date.timezone = "Europe/Moscow"

Сохраните файлы и перезапустите Apache:

systemctl restart apache2

Замечание: если вы используете PHP-FPM, проверьте конфигурацию пула и перезапустите php7.2-fpm.

Настройка MariaDB (создание БД и пользователя)

Войдите в консоль MariaDB:

mysql -u root -p

Создайте базу данных и выделенного пользователя для nZEDb (замените your-password на надёжный пароль):

MariaDB [(none)]> create database nzedb;
MariaDB [(none)]> grant all privileges on nzedb.* to 'nzedb'@'localhost' identified by 'your-password';

Разрешите право FILE, необходимое для некоторых импортов и операций:

MariaDB [(none)]> grant file on *.* TO 'nzedb'@'localhost';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Конфигурация MariaDB для nZEDb

Откройте файл /etc/mysql/mariadb.conf.d/50-server.cnf:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Добавьте в секцию [mysqld]:

### configurations by nZEDb ####
innodb_file_per_table = 1
innodb_large_prefix = 1
max_allowed_packet = 16M
group_concat_max_len = 8192

Сохраните и перезапустите MariaDB:

systemctl restart mariadb

AppArmor и MariaDB

AppArmor в Ubuntu может блокировать некоторые операции MariaDB (например, LOAD DATA). Установите утилиты AppArmor и переведите mysqld в режим complain, чтобы временно снять жёсткие ограничения:

apt-get install apparmor-utils -y

aa-complain /usr/sbin/mysqld

Если возникнут ошибки при aa-complain, запишите их и проверьте профиль AppArmor вручную; в большинстве простых развёртываний команда работает корректно.

Установка вспомогательных инструментов

Медиапакеты и unrar

Установите набор утилит для обработки медиа и архивов:

apt-get install time p7zip-full mediainfo lame ffmpeg zip -y

libav-tools в Ubuntu 18.04 может отсутствовать в репозитории; в оригинальном руководстве предлагают скачать конкретный .deb. Если вам нужен libav, скачайте и установите так:

wget http://launchpadlibrarian.net/339874908/libav-tools_3.3.4-2_all.deb

dpkg -i libav-tools_3.3.4-2_all.deb

Соберите и установите unrar (или используйте пакет unrar из репозитория, если он доступен):

wget http://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz

tar -xzf rarlinux-x64-5.5.0.tar.gz

mv rar/unrar /usr/bin/unrar
chmod 755 /usr/bin/unrar

Проверка: выполните unrar в командной строке.

Установка Composer

Composer управляет PHP-зависимостями. Установите глобально:

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Проверьте: composer --version.

Установка tmux (рекомендуется)

tmux удобен для фоновых задач обновления. Если нужна свежая версия, можно собрать из исходников. Сначала установите зависимости:

apt-get install libevent-dev build-essential git autotools-dev automake pkg-config ncurses-dev python python-setuptools python-dev build-essential python-pip ca-certificates -y

Удалите старую версию tmux (опционально):

apt-get remove tmux -y

Соберите tmux из репозитория (пример для ветки 2.0 в исходном руководстве):

git clone https://github.com/tmux/tmux.git --branch 2.0 --single-branch
cd tmux
./autogen.sh
./configure
make -j4
make clean

После сборки установите бинарник (обычно make install или скопируйте бинарник вручную).

Развёртывание nZEDb

Клонируйте репозиторий в каталог Apache и установите зависимости:

mkdir /var/www/nZEDb/
cd /var/www/
git clone https://github.com/nZEDb/nZEDb.git

cd /var/www/nZEDb/
composer install

Импортируйте базовые данные часовых зон в MySQL (важно для корректной обработки временных меток):

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Создайте временную директорию для unrar и выставьте права:

mkdir -p /var/www/nZEDb/resources/tmp/unrar

chmod -R 777 /var/www/nZEDb/
chown -R www-data:www-data /var/www/nZEDb/
chmod -R 777 /var/lib/php/sessions

Примечание по безопасности: права 777 удобны на этапе установки, но в production следует сузить права (например, 755 для директорий и минимально необходимые для записи каталоги), а владельцем оставить www-data.

Настройка виртуального хоста Apache

Создайте файл конфигурации:

nano /etc/apache2/sites-available/nzedb.conf

Вставьте:


    ServerAdmin webmaster@localhost
    ServerName your-server-ip
    DocumentRoot "/var/www/nZEDb/www"
    LogLevel warn
    ServerSignature Off
    ErrorLog /var/log/apache2/error.log
    
       Options FollowSymLinks
       AllowOverride All
       Require all granted
    
    Alias /covers /var/www/nZEDb/resources/covers

Замените ServerName на доменное имя или IP сервера. Затем включите конфигурацию и модуль переопределений:

a2dissite 000-default

a2ensite nzedb.conf

a2enmod rewrite

systemctl restart apache2

Если используете HTTPS, создайте отдельный VirtualHost для 443 и настройте SSL-сертификат (Let’s Encrypt — бесплатный и рекомендуемый вариант).

Веб-инсталляция nZEDb

Откройте в браузере: http://your-ip-address/install

Вы последовательно пройдёте шаги:

  • Pre flight check — проверка PHP-расширений и прав.
  • Set up the database — ввод данных созданной базы nzedb.
  • Setup openssl — указать путь к CA bundle и каталогу сертификатов.
  • Setup news server connection — тестирование подключения к NNTP-серверу.
  • Save Settings — сохранение конфигурации.
  • Setup admin user — создание администратора.
  • Set file paths — указать пути для временных файлов и хранения NZB.

В интерфейсе будут кнопки и подсказки на английском; следуйте им. Примерные скриншоты установщика находятся ниже.

Страница установки nZEDb — проверка требований

Результат Pre flight check с перечнем зависимостей PHP

Ввод данных базы данных в установщике nZEDb

Подтверждение успешной настройки базы

Настройка openssl — указание CA bundle и папки сертификатов

Проверка openssl в установщике nZEDb

Подключение к NNTP-серверу — ввод URL и данных учётной записи

Тест подключения к primary NNTP-серверу успешно пройден

Сохранение настроек установщика nZEDb

Создание администратора в интерфейсе nZEDb

Подтверждение создания admin-пользователя

Указание путей для файлов и каталогов в nZEDb

Подтверждение настройки путей хранения NZB и временных файлов

Стандартная панель администратора nZEDb после завершения установки

Important: в продакшне используйте HTTPS и ограничьте доступ к административной панели по IP или через VPN.

Первичная индексация — получение заголовков и создание релизов

После установки активируйте нужные группы новостей в панели и выполните первичное обновление заголовков.

Получение заголовков (выполняется в каталоге обновлений):

cd /var/www/nZEDb/misc/update
php update_binaries.php

Создание релизов и NZB (в многопроцессорном режиме):

cd /var/www/nZEDb/misc/update/nix/multiprocessing
php releases.php

Рекомендация: для длительных фоновых задач запускайте эти команды в tmux-сессии или настройте systemd timer/cron с логированием.

Безопасность и эксплуатация

  • HTTPS: настройте Let’s Encrypt (certbot) для получения бесплатного SSL и автоматического продления сертификата.
  • Права доступа: после установки снимите 777-права и установите минимально необходимые разрешения (владельцем — www-data). Каталоги, в которые должен записывать nZEDb, оставьте доступными только для веб-сервера.
  • Бэкапы: настройте регулярный бэкап базы (mysqldump или бессерверные снимки), а также архивацию ресурсных директорий (covers, resources).
  • Мониторинг: следите за дисковым пространством (NZB и кэши могут быстро расти), CPU и I/O.
  • Обновления: обновляйте nZEDb и зависимости composer. Перед обновлением делайте резервную копию базы и файлов.

Рекомендуемые команды для бэкапа БД:

mysqldump -u root -p nzedb > /root/backups/nzedb-$(date +%F).sql

И восстановление:

mysql -u root -p nzedb < /root/backups/nzedb-2020-01-01.sql

Отладка и распространённые проблемы

  • Проблема: веб-инсталлятор сообщает о недостающих PHP-расширениях. Решение: установите недостающий пакет через apt и перезапустите Apache.
  • Проблема: соединение с NNTP не устанавливается. Решение: проверьте параметры порта, брандмауэр (ufw), корректность TLS/SSL и доступность NNTP-сервера из вашей сети.
  • Проблема: ошибки прав при записи в каталоги. Решение: установите владельцем www-data и минимальные права записи для конкретных директорий.
  • Проблема: медленная индексация. Решение: выделите больше RAM/CPU, используйте SSD для MySQL и файловых операций, настройте innodb_buffer_pool_size в MariaDB под ваш объём данных.

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

  1. Веб-инсталлятор доступен по http://your-ip-address/install и проходит все шаги без критических ошибок.
  2. Пользователь admin создан и может войти в панель управления.
  3. Пакеты PHP и расширения, указанные в Pre flight check, отмечены как установленные.
  4. Скрипты обновления успешно получают заголовки и создают релизы (см. логи в /var/www/nZEDb/logs).
  5. NNTP-подключение успешно тестируется в интерфейсе (Test Primary Connection).

Резервные подходы и альтернативы

  • Если вы предпочитаете не собирать tmux или unrar из исходников, проверьте наличие пакетов в стандартных репозиториях или используйте snap/apt для установки стабильных версий.
  • Для баз данных можно использовать MySQL вместо MariaDB — адаптация обычно несложна, но проверьте совместимость переменных конфигурации.
  • Для высокой нагрузки рассмотрите выделение отдельного сервера для базы данных и отдельного для индексатора.

Чек-листы (роль администратора)

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

  • Резервная копия текущей системы, если обновляете существующий сервер.
  • Доступ в консоль сервера (ssh).
  • Домен или статический IP для сервера.

После установки:

  • Перенастроить права доступа и убрать 777.
  • Настроить HTTPS и firewall (ufw allow 80,443; deny остальные).
  • Настроить автоматический бэкап БД и каталогов.
  • Настроить мониторинг места на диске.

Короткая методология обновлений

  1. Сделайте бэкап БД и конфигураций (команды выше).
  2. Переключите сервисы в режим обслуживания (если необходима консистентность).
  3. Выполните git pull в каталоге /var/www/nZEDb и composer install.
  4. Примите миграции и проверьте логи на ошибки.
  5. Выполните smoke-тесты: панель открывается, обновления запускаются и создают релизы.

Итог

Вы развернули nZEDb на Ubuntu 18.04. После первичной конфигурации проверьте обновления новостей, настройте регулярные задания и бэкапы, а также переведите систему на HTTPS для безопасной эксплуатации.

Summary: nZEDb готов к использованию; следите за правами, бэкапами и безопасностью. Если нужно, помогу с конфигурацией Let’s Encrypt, созданием systemd-timers для автоматического запуска update_binaries.php и releases.php или с настройкой innodb_buffer_pool_size под объём данных.

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

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

Сканирование QR в браузере: jsQR + Web Worker
Веб-разработка

Сканирование QR в браузере: jsQR + Web Worker

Карьера в техподдержке: как начать и преуспеть
Карьера

Карьера в техподдержке: как начать и преуспеть

Как изменить геймертег на Xbox
Игры

Как изменить геймертег на Xbox

findstr.exe в Windows: руководство по использованию
Windows

findstr.exe в Windows: руководство по использованию

Удалённые репозитории Git: что это и как
GIT

Удалённые репозитории Git: что это и как

Резюме для фрилансера: как составить и адаптировать
Карьера

Резюме для фрилансера: как составить и адаптировать