sBNC 1.3.9 - это новейшая оригнальная стабильная версия популярного BNC сервера. Полностью на английском языке. Русские модификации ниже. Разработчики sBNC - немец Gunnar Beutner и фин Conny Sjöblom. Официальный сайт проекта shroudbnc.info. Разрабатываемая версия на GitHub github.com/gunnarbeutner/shroudbnc.

Установка, настройка и запуск sBNC

Работаем через SSH клиент в Linux сервере Debian 7 от обычного пользователя.
  1. Переходим в папку, в которую будем устаналивать sBNC:
    cd /home/dim/irc
  2. Скачиваем sBNC:
    wget https://raw.githubusercontent.com/dimst/IRC/master/sbnc-1.3.9.tar.gz
  3. Распаковываем скачанный архив:
    tar xf sbnc-1.3.9.tar.gz
  4. Для удобства переименовываем распакованную директорию:
    mv sbnc-1.3.9 sbnc-src
  5. Входим в директорию с исходниками:
    cd sbnc-src
  6. Запускаем конфигурацию с указанием папки, куда будет установлен sBNC:
    ./configure --prefix=/home/dim/irc/sbnc
  7. Запускаем компиляцию:
    make
  8. Запускаем инсталяцию:
    make install
  9. Переходим в директорию с установленным sBNC к запускающему файлу:
    cd ../sbnc/bin
  10. Запускаем sBNC:
    ./sbnc
    При первом запуске sBNC, если конфигурационного файла еще не существует (а лежит/будет лежать в
    /home/dim/.sbnc/
    ), то будут заданы несколько вопросов:
    1. Which port should the bouncer listen on (valid ports are in the range 1025 - 65535):
      На каком порту будет работать BNC? Укажите любой порт в диапазоне 1025 - 65535.
    2. What should the first user's name be?
      Укажите первого пользователя BNC. Он же будет его админом.
    3. Please enter a password for the first user:
      Укажите пароль для первого пользователя BNC.
    4. Please confirm your password by typing it again:
      Повторите пароль для первого пользователя BNC.
  11. Writing main configuration file... DONE
    Writing first user's configuration file... DONE
    Configuration has been successfully saved. Please restart shroudBNC now.
    Конфигурационный файл и файл пользователей BNC успешно создан. Для запуска sBNC повторно запустите файл sbnc:
    ./sbnc
  12. Все конфигурационные файлы находятся в папке
    /home/dim/.sbnc
    .

Настройка автозапуска (crontab) sBNC

Crontab через каждый N промежуток времени запускает указанный в его списке файл. В свою очередь в файле скрипт, проверяющий, запущена на ли программа. Если нет - запускает ее.
  1. Переходим в папку с установленным sBNC:
    cd /home/dim/irc/sbnc
  2. Содаём файл-скрипт sbnc.cron, который будет проверять и запускать sBNC:
    nano sbnc.cron
    Содержимое фйала:
    #!/bin/sh
    PID=/home/dim/.sbnc/sbnc.pid
    BIN=/home/dim/irc/sbnc/bin/sbnc
    
    if test -r $PID; then
        FPID=$(cat $PID)
        if $(kill -CHLD $FPID >/dev/null 2>&1)
        then
    	exit 0
        fi
    fi
    $BIN &>/dev/null
    
    Параметры PID и BIN меняем на свои.
  3. Даём файлу sbnc.cron права на выполнение:
    chmod +x sbnc.cron
  4. Вызываем редактор crontab:
    crontab -e
    вставляем правило:
    */10 * * * * /home/dim/sbnc/sbnc.cron > /dev/null 2>&1
    Путь до sbnc.cron укажите свой. В конце файла обязательно оставляем пустую строку. Данное правило означает, что каждые 10 минут будет выполняться файл sbnc.cron.

Использование sBNC

Настройка IRC-клиента для подключения к sBNC: После подключения к sBNC в привате у сервиса -sBNC сделаем первые основные настройки:

Команды sBNC

Открываем приват с сервисом -sBNC
/query -sBNC
.

Команды, доступные всем пользователям:

Команды, доступные только администраторам:

WEB интерфейс

  1. Переходим в директорию сайта:
    cd /home/dim/www/dim.st
  2. Скачиваем WEB панель:
    wget https://raw.githubusercontent.com/dimst/IRC/master/sbnciface-1.3.0.tar.gz
  3. Распаковываем скачанный архив:
    tar xf sbnciface-1.3.0.tar.gz
  4. Для удобства переименовываем распакованную директорию:
    mv sbnciface-sbnciface-9a81ad2 sbnc
  5. Переходим в директорию с WEB панелью:
    cd sbnc
  6. Создаём конфигурационный файл settings.php:
    nano settings.php
    Редактируем settings.php под свой IRC сервер:
    <?php
    // BNC сервера
    $bncServers = array(
    
      // sBNC сервер №1: название, адрес, порт
      $sbncsrv0 = array(
        'name'  =>  'Dreamterra',
        'ip'    =>  'dreamterra.net',
        'port'  =>  '6661'
      ),
    
    // sBNC сервер №2
    //  $sbncsrv1 = array(
    //    'name'  =>  'Dreamterra2',
    //    'ip'    =>  's2.dreamterra.net',
    //    'port'  =>  '9000'
    //  ),
    );
    
    // время истечения авторизации в веб-панели
    $expire = time() + 60 * 60 * 24 * 30;
    
    // язык по-умолчанию
    // русского нет, но можно сделать перевод самому
    // языки находятся в директории lang
    $defaultLang = 'en';
    
    // шаблон (тема оформления)
    // темы оформления лежат в директории template
    $template = 'sbnciface';
    ?>
    WEB панель будет доступна по адресу (в нашем случае)
    http://dim.st/sbnc/
    .
  7. При необходимости от суперпользователя root откроем порт 6661 в файерволле:
    iptables -A INPUT -p tcp -m tcp --dport 6661 -j ACCEPT

Русские модификации sBNC

Скрипты sBNC

sBNC имеет возможность расширять свой функционал засчет TCL-скриптов. Официальные в сборке sBNC уже есть. Другие скрипты можно найти на sbnc.khobbits.co.uk.

Установка дополнительного скрипта в sBNC:

  1. Скачиваем необходимый TCL скрипт, например, vhost.tcl в директорию со скриптами:
    wget http://sbnc.khobbits.co.uk/sbnc1.3/vhost.tcl -P /home/dim/irc/sbnc/share/sbnc/scripts
  2. Редактируем конфигурационный файл sbnc.tcl:
    nano /home/dim/.sbnc/sbnc.tcl
    В конце файла добавим строку:
    source "scripts/vhost.tcl"
  3. В IRC выполним команду:
    /sbnc tcl rehash
vhost.tcl установлен. С удалением сложнее. Удалив упоминание о скрипте в sbnc.tcl и даже удалив сам скрипт и сделав tcl rehash, скрипт всё равно работает. Требуется перезапуск sBNC.