Установка nZEDb на Ubuntu 18.04
Что такое nZEDb
nZEDb — это открытый индексатор Usenet, автоматизирующий сканирование заголовков и составление NZB-файлов. Он предоставляет веб-интерфейс, поиск, просмотр и API. nZEDb позволяет скачивать неограниченное число NZB-файлов.
Краткое определение: nZEDb — индексатор Usenet с веб-интерфейсом и автоматическим обновлением релизов.
Требования
- Сервер с Ubuntu 18.04. Минимум 2 ГБ RAM для минимальной нагрузки, рекомендуется 4+ ГБ для индексирования больших объёмов.
- Настроенный root-пароль или доступ через sudo-пользователя с правами root.
- Доступ к интернету для скачивания пакетов и репозиториев Git.
Важно: для production-релиза учитывайте резервирование, бэкапы и отдельный сервер для базы данных при высоких нагрузках.
План работ (коротко)
- Обновить систему. 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 mariadbAppArmor и 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 -ylibav-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.
В интерфейсе будут кнопки и подсказки на английском; следуйте им. Примерные скриншоты установщика находятся ниже.














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 под ваш объём данных.
Критерии приёмки
- Веб-инсталлятор доступен по http://your-ip-address/install и проходит все шаги без критических ошибок.
- Пользователь admin создан и может войти в панель управления.
- Пакеты PHP и расширения, указанные в Pre flight check, отмечены как установленные.
- Скрипты обновления успешно получают заголовки и создают релизы (см. логи в /var/www/nZEDb/logs).
- NNTP-подключение успешно тестируется в интерфейсе (Test Primary Connection).
Резервные подходы и альтернативы
- Если вы предпочитаете не собирать tmux или unrar из исходников, проверьте наличие пакетов в стандартных репозиториях или используйте snap/apt для установки стабильных версий.
- Для баз данных можно использовать MySQL вместо MariaDB — адаптация обычно несложна, но проверьте совместимость переменных конфигурации.
- Для высокой нагрузки рассмотрите выделение отдельного сервера для базы данных и отдельного для индексатора.
Чек-листы (роль администратора)
Перед началом установки:
- Резервная копия текущей системы, если обновляете существующий сервер.
- Доступ в консоль сервера (ssh).
- Домен или статический IP для сервера.
После установки:
- Перенастроить права доступа и убрать 777.
- Настроить HTTPS и firewall (ufw allow 80,443; deny остальные).
- Настроить автоматический бэкап БД и каталогов.
- Настроить мониторинг места на диске.
Короткая методология обновлений
- Сделайте бэкап БД и конфигураций (команды выше).
- Переключите сервисы в режим обслуживания (если необходима консистентность).
- Выполните
git pullв каталоге /var/www/nZEDb иcomposer install. - Примите миграции и проверьте логи на ошибки.
- Выполните smoke-тесты: панель открывается, обновления запускаются и создают релизы.
Итог
Вы развернули nZEDb на Ubuntu 18.04. После первичной конфигурации проверьте обновления новостей, настройте регулярные задания и бэкапы, а также переведите систему на HTTPS для безопасной эксплуатации.
Summary: nZEDb готов к использованию; следите за правами, бэкапами и безопасностью. Если нужно, помогу с конфигурацией Let’s Encrypt, созданием systemd-timers для автоматического запуска update_binaries.php и releases.php или с настройкой innodb_buffer_pool_size под объём данных.
Похожие материалы
Сканирование QR в браузере: jsQR + Web Worker
Карьера в техподдержке: как начать и преуспеть
Как изменить геймертег на Xbox
findstr.exe в Windows: руководство по использованию
Удалённые репозитории Git: что это и как