KiwiIRC - это современный графический Web IRC-клиент, написанный на Node.js, над которым по сей день работает его разработчик англичанин из Манчестера Darren Whitlen под ником prawnsalad. Сайт клиента kiwiirc.com, репозиторий в GitHub github.com/prawnsalad/KiwiIRC.

Плюсы:

Минусы:

Установка KiwiIRC

Прежде, чем устанавливать KiwiIRC, необходимо установить Node.js и NPM.
Дальше работаем через SSH клиент в Linux сервере Debian 7 от обычного пользователя.
  1. Переходим в папку с сайтом:
    cd /home/dim/www/dim.st
  2. Клонируем последнюю стабильную версию KiwiIRC с GitHub на свой сервер:
    git clone https://github.com/prawnsalad/KiwiIRC.git
    Если команда git не найдена, установим его.
  3. Переходим в директорию со скачанным KiwiIRC:
    cd KiwiIRC
  4. Установим все необходимые библиотеки и пакеты для KiwiIRC:
    npm install
  5. Создаём конфигурационный файл config.js:
    nano config.js

Настройка KiwiIRC

  1. Редактируем config.js под свой IRC сервер:
    // ----------------------------------------
    // Конфигурационный файл config.js
    // для IRC WEB клиента KiwiIRC 0.9.2
    // Инструкция по установке и настройке
    // https://dim.st/irc/kiwiirc
    // ----------------------------------------
    
    var conf = {};
    
    // принудительно указать, от какого пользователя запускать KiwiIRC
    conf.user = "";
    conf.group = "";
    
    // файл логов
    conf.log = "kiwi.log";
    
    
    // по какому адресу и порту KiwiIRC будет доступен
    // в данном случае по любому IP сервера (если IP-адресов у сервера несколько)
    // и на 7778 порту: http://server:7778
    conf.servers = [];
    conf.servers.push({
        port:   7778,
        address: "0.0.0.0"
    });
    
    // то же самое, что выше, только с поддержкой ssl, если необходимо
    /*
    conf.servers.push({
       port:     7777,
       address: "0.0.0.0",
       ssl:   true,
       ssl_key: "server.key",
       ssl_cert: "cert.pem"
    });
    */
    
    // подключение к каким типам IP-адресов разрешено KiwiIRC
    // в данном случае только к IPv4
    conf.outgoing_address = {
        IPv4: '0.0.0.0'
        //IPv6: '::'
    };
    
    // поддержка identd-сервера
    // для активации измени параметр "enabled" на "true"
    conf.identd = {
        enabled: false,
        port: 113,
        address: "0.0.0.0"
    };
    
    // расположение файлов "клиента"
    conf.public_http = "client/";
    
    // типы транспорта сокетов
    conf.transports = [
        "websocket",
        "flashsocket",
        "htmlfile",
        "xhr-polling",
        "jsonp-polling"
    ];
    
    // максимальное колличество подключений
    // 0 - нет ограничения
    conf.max_client_conns = 5;
    
    // максимальное кол-во подключений
    // 0 - нет ограничения
    conf.max_server_conns = 0;
    
    // кодировка по-умолчанию
    conf.default_encoding = 'cp1251';
    
    // реальное имя
    // можно указать постоянное значение, например, ссылку на web-страницу c KiwiIRC
    // если указать %n - в имя будет подставлен ник
    // если указать %h - в имя будет подставлен IP-адрес пользователя
    conf.default_gecos = 'KiwiIRC юзер [%h]';
    
    // идент (username)
    // можно указать постоянное значение, например, "kiwi"
    // если указать %n - в идент будет подставлен ник
    // если указать %h - в идент будет подставлен хост (не понятно)
    // если указать %i - в идент будет подставлен hex (закодированный IP клиента)
    conf.default_ident = '%i';
    
    // QUIT-сообщение по-умолчанию
    conf.quit_message = "";
    
    // автоматически переподключаться к IRC-серверу
    conf.ircd_reconnect = true;
    
    
    // массив адресов, которые будут загружены в браузер,
    // когда клиент впервые запустит KiwiIRC
    // подробнее http://github.com/prawnsalad/KiwiIRC/wiki/Client-plugins
    conf.client_plugins = [
        // "http://server.com/kiwi/plugins/myplugin.html"
    ];
    
    
    
    // директория с серверными модулями
    conf.module_dir = "server_modules/";
    
    
    // подгрузка модулей
    conf.modules = [
        // Открыть TCP-порт для контроля KiwiIRC сервера. По-умолчанию 8888
        // "control",
    
        // Автоматически перезагружать c CSS-файлы после изменений в теме оформления
        // "client_file_watcher",
    ];
    
    
    // настройки webirc
    // именно эта настройка позволяет подменять IP/хост сервера, на котором запущен KiwiIRC
    // на IP/хост клиента при подключении к IRC серверу. Можно указать несколько серверов
    conf.webirc_pass = {
        "dreamterra.net": "123123"
    };
    
    // внимание! cgiirc блок НЕ поддерживается и не будет работать в Unreal3.2.1-DalNetRU3.0.8-IRCLine.RU или UnrealIRCd3.2.1-ircline3-Dreamterra2
    // cgiirc блок поддерживается только оригинальным UnrealIRCd новых версий (от 3.2.8)
    // в unrealircd.conf добавь блок:
    /*
       cgiirc {
          type webirc;
          hostname 95.85.45.90; // IP адрес, который соотвествует домену dreamterra.net
          password 123123;
       };
    */
    
    
    // проверять на валидность SSL-сертификаты перед подключением к IRC-серверу
    conf.reject_unauthorised_certificates = false;
    
    // HTTP путь до KiwiIRC
    conf.http_base_path = "/kiwi";
    
    
    
    // параметры kiwiirc по-умолчанию, которые могут быть изменены
    conf.client = {
        // адрес IRC-сервера, который будет назначен по-умолчанию
        server: 'dreamterra.net',
    	
        // порт IRC-сервера
        port: 6667,
    	
        // использовать SSL? true - да, false - нет
        ssl: false,
    	
        // канал
        channel: '#dreamterra',
    	
        // пароль на канал, если необходим
        channel_key: '',
    	
        // ник по-умолчанию
        nick: 'kiwi_?',
    	
        settings: {
          // тема оформления (relaxed, mini, cli, basic)
          theme: 'relaxed',
          
          // шрифт
          text_theme: 'default',
    
          // как отображать список каналов:
          // tabs - список открытых каналов сверху, list - список открытых каналов слева
          channel_list_style: 'tabs',
    		
          // сколько сообщений сохранять
          scrollback: 250,
    		
          // показывать входы/выходы с канала?
          // true - да, false - нет
           show_joins_parts: true,
    		
          // показывать время перед никами?
          // true - да, false - нет
          show_timestamps: true,
    		
          // использовать 24 формат времени?
          // true - да, false - нет
          use_24_hour_timestamps: true,
    		
          // отключить звуковые уведомления?
          // true - да, false - нет
          mute_sounds: false,
    		
          // показывать смайлы?
          // true - да, false - нет
          show_emoticons: true,
    
          ignore_new_queries: false,
          count_all_activity: true,
          locale: null
        },
    	
        // заголовок страницы
        window_title: 'KiwiIRC dreamterra'
    };
    
    // список доступных тем оформления
    conf.client_themes = [
        'relaxed',
        'mini',
        'cli',
        'basic'
    ];
    
    // подключаться только к указанному серверу
    //conf.restrict_server = "dreamterra.net";
    
    // подключаться только к указанному порту
    //conf.restrict_server_port = 6667;
    
    // всегда использовать/не использовать SSL
    //conf.restrict_server_ssl = false;
    
    // всегда заходить только на указанный канал
    //conf.restrict_server_channel = "#dreamterra";
    
    // ключ канала
    //conf.restrict_server_channel_key = "";
    
    // пароль сервера
    //conf.restrict_server_password = "";
    
    // постоянный ник
    //conf.restrict_server_nick = "kiwi_";
    
    
    // если запущено несколько KiwiIRC на разных серверах,
    // можно распределить пользователей по ним
    //conf.client.kiwi_server = ['https://kiwi-server1.com', 'https://kiwi-server2.com'];
    
    
    // настройки прокси, подробнее https://kiwiirc.com/docs/installing/proxies
    conf.http_proxies = ["127.0.0.1/32"];
    conf.http_proxy_ip_header = "x-forwarded-for";
    conf.socks_proxy = {};
    conf.socks_proxy.enabled = false;
    conf.socks_proxy.all = false;
    conf.socks_proxy.proxy_hosts = [
        "irc.example.com"
    ];
    conf.socks_proxy.address = '127.0.0.1';
    conf.socks_proxy.port = 1080;
    conf.socks_proxy.user = null;
    conf.socks_proxy.pass = null;
    
    
    module.exports.production = conf;
  2. Собираем KiwiIRC:
    ./kiwi build
  3. При необходимости открываем порт 7778 в файерволле:
    iptables -A INPUT -p tcp -m tcp --dport 7778 -j ACCEPT

Запуск KiwiIRC

./kiwi start
Чтобы запустить KiwiIRC не в фоне и видеть в консоле вывод всех сообщений:
./kiwi -f start
Проверяем работу KiwiIRC - откроем в браузере
http://сайт:7778/


Больше информации можно найти в официальной документации KiwiIRC.