Установка и настройка ZNC
ZNC — многофункциональный IRC-баунсер, который, будучи запущенным на круглосуточно работающем компьютере, позволяет не тереть сессии IRC и подключаться к ним с любого устройства и клиента.
Данная статья является обзорной и будет ссылаться на официальную вики ZNC.
Где лучше держать ZNC
Наиболее стабильным решением является установка ZNC на выделенный сервер. Однако для размещения баунсера можно использовать любой подходящий компьютер с высоким uptime и стабильным подключением к интернету.
Для работы ZNC потребуется 256-512 Мбайт оперативной памяти (для использования с несколькими пользователями). ZNC доступен на большинстве операционных систем и дистрибутивов linux в виде уже подготовленных бинарных пакетов. Единственное неудобство — часто версия в стандартном репозитории может ощутимо отставать от текущей стабильной.
Для решения этой проблемы всегда можно использовать возможность сборки последней версии (или даже разрабатываемой) из исходных кодов. В стандартной конфигурации с включением всех модулей для сборки потребуется около 2 Гбайт RAM и достаточно производительный процессор. Однако, если отказаться от поддержки modperl и modpython, можно обойтись даже 256 Мбайт RAM на слабой конфигурации. Например, я собрал стандартный порт 1.7.0 во freebsd на конфигурации 512 Мбайт RAM и 512 Мбайт swap с одним доступным ядром Intel Xeon E5620 2.4Ghz за не очень большое время.
Установка
Установка ZNC описана на странице Installation (Перевод не окончен). Проблем с установкой из репозиториев бинарных пакетов возникнуть не должно. Также может быть хорошим выходом запуск ZNC в докере.
В этой же статье будет описан случай установки на FreeBSD, с оговорками про другие системы, но без инструкций для них. За рамками данной статьи останется множество вопросов соответствия предварительным требованиям к конфигурации операционной системы и дополнительного программного обеспечения, однако это будет оговорено.
FreeBSD
Установка пакета
# pkg install znc
Обращаем внимание на сообщение:
***************************************************************************** # Configuration Configs written before ZNC 0.206 can't be read anymore! To generate a basic configuration file, run znc --makeconf after installation. It is NOT a good idea to create a new config file manually. For generate your config file using znc user, execute: su -m znc -c 'znc -d /usr/local/etc/znc --makeconf' or sudo -u znc znc -d /usr/local/etc/znc --makeconf http://wiki.znc.in/Configuration # Modules If you upgrade your ZNC version you must recompile all your external modules, ZNC ABI is not stable. znc-buildmod <modulename>.cpp http://wiki.znc.in/Compiling_modules *****************************************************************************
Начальное конфигурирование и первый запуск
Нужно запустить znc --makeconf от того пользователя, под чьим именем будет работать ZNC (если вы устанавливали ZNC из пакетов, то скорее всего будет создан пользоватеоль znc).
Конфигурирование в FreeBSD
Выполняем команду начального конфигурирования. Процесс проходит интерактивно:
# su -m znc -c 'znc -d /usr/local/etc/znc --makeconf'
Выполняем конфигурирование:
[ .. ] Checking for list of available modules... [ ** ] [ ** ] -- Global settings -- [ ** ] [ ?? ] Listen on port (1025 to 65534): 8841 [ ?? ] Listen using SSL (yes/no) [no]: yes [ ?? ] Listen using both IPv4 and IPv6 (yes/no) [yes]: no [ .. ] Verifying the listener... [ ** ] Enabled global modules [webadmin] [ ** ] [ ** ] -- Admin user settings -- [ ** ] [ ?? ] Username (alphanumeric): username [ ?? ] Enter password: [ ?? ] Confirm password: [ ?? ] Nick [username]: username [ ?? ] Alternate nick [username_]: [ ?? ] Ident [username]: [ ?? ] Real name (optional): [ ?? ] Bind host (optional): [ ** ] Enabled user modules [chansaver, controlpanel] [ ** ] [ ?? ] Set up a network? (yes/no) [yes]: [ ** ] [ ** ] -- Network settings -- [ ** ] [ ?? ] Name [freenode]: [ ?? ] Server host [chat.freenode.net]: [ ?? ] Server uses SSL? (yes/no) [yes]: [ ?? ] Server port (1 to 65535) [6697]: [ ?? ] Server password (probably empty): Fkrjujkm40 [ ?? ] Initial channels: #lorwiki [ ** ] Enabled network modules [simple_away] [ ** ] [ .. ] Writing config [/usr/local/etc/znc/configs/znc.conf]... [ ** ] [ ** ] To connect to this ZNC you need to connect to it as your IRC server [ ** ] using the port that you supplied. You have to supply your login info [ ** ] as the IRC server password like this: user/network:pass. [ ** ] [ ** ] Try something like this in your IRC client... [ ** ] /server <znc_server_ip> +8841 username:<pass> [ ** ] [ ** ] To manage settings, users and networks, point your web browser to [ ** ] https://<znc_server_ip>:8841/ [ ** ] [ ?? ] Launch ZNC now? (yes/no) [yes]: no
Редактируем /etc/rc.conf, добавив строку:
znc_enable="YES"