Added kiwiirc and dependencies
This commit is contained in:
parent
b2afdf54e1
commit
84d082da1b
7 changed files with 326 additions and 2 deletions
4
modules/rhizo_base/files/etc/sv/kiwi/log/run
Executable file
4
modules/rhizo_base/files/etc/sv/kiwi/log/run
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
LOG_FOLDER=/var/log/kiwi
|
||||
mkdir -p $LOG_FOLDER
|
||||
exec svlogd -tt $LOG_FOLDER
|
2
modules/rhizo_base/files/etc/sv/kiwi/run
Executable file
2
modules/rhizo_base/files/etc/sv/kiwi/run
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
exec /usr/share/kiwiirc/kiwi start
|
|
@ -33,5 +33,10 @@ class rhizo_base::apt {
|
|||
key_server => 'subkeys.pgp.net',
|
||||
include_src => false,
|
||||
}
|
||||
|
||||
apt::source { 'nodesource':
|
||||
location => 'https://deb.nodesource.com/node_0.10',
|
||||
release => 'precise',
|
||||
repos => 'main',
|
||||
key_source => 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key'
|
||||
}
|
||||
}
|
|
@ -150,6 +150,7 @@ class rhizo_base {
|
|||
include rhizo_base::sudo
|
||||
include rhizo_base::users
|
||||
include rhizo_base::icinga
|
||||
include rhizo_base::kiwi
|
||||
|
||||
|
||||
#Rizhomatica scripts
|
||||
|
|
48
modules/rhizo_base/manifests/kiwi.pp
Normal file
48
modules/rhizo_base/manifests/kiwi.pp
Normal file
|
@ -0,0 +1,48 @@
|
|||
# Class: rhizo_base::ircd
|
||||
#
|
||||
# This module manages Irc Chat Support
|
||||
#
|
||||
# Parameters: none
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
class rhizo_base::kiwi {
|
||||
|
||||
$site_name = $rhizo_base::site_name
|
||||
|
||||
file { '/usr/share/kiwiirc':
|
||||
ensure => directory,
|
||||
}
|
||||
|
||||
file { '/usr/share/kiwiirc/config.js':
|
||||
content => template('rhizo_base/config.js.erb'),
|
||||
require => VcsRepo['/usr/share/kiwiirc']
|
||||
}
|
||||
|
||||
exec { 'npm-install':
|
||||
cwd => '/usr/share/kiwiirc',
|
||||
command => '/usr/bin/npm install',
|
||||
creates => '/usr/local/share/kiwiirc/node_modules',
|
||||
require => VcsRepo['/usr/share/kiwiirc']
|
||||
}
|
||||
|
||||
exec { 'build-script':
|
||||
cwd => '/usr/share/kiwiirc',
|
||||
command => '/usr/share/kiwiirc/kiwi build',
|
||||
creates => '/usr/share/kiwiirc/client/assets/kiwi.js',
|
||||
require => [ Exec['npm-install'], File['/usr/share/kiwiirc/config.js'] ]
|
||||
}
|
||||
|
||||
vcsrepo { '/usr/share/kiwiirc':
|
||||
ensure => present,
|
||||
provider => git,
|
||||
source => 'https://github.com/prawnsalad/KiwiIRC.git',
|
||||
#revision => '0.9.3',
|
||||
require => [ File['/usr/share/kiwiirc'], Package['git'] ],
|
||||
notify => [ Exec['build-script'], ]
|
||||
}
|
||||
}
|
|
@ -44,4 +44,10 @@ class rhizo_base::runit {
|
|||
require => [ File['/etc/sv'], Class['rhizo_base::lcr'] ],
|
||||
}
|
||||
|
||||
file { '/etc/service/kiwi':
|
||||
ensure => link,
|
||||
target => '/etc/sv/kiwi',
|
||||
require => [ File['/etc/sv'], Class['rhizo_base::kiwi'] ],
|
||||
}
|
||||
|
||||
}
|
258
modules/rhizo_base/templates/config.js.erb
Normal file
258
modules/rhizo_base/templates/config.js.erb
Normal file
|
@ -0,0 +1,258 @@
|
|||
var conf = {};
|
||||
|
||||
// Run the Kiwi server under a different user/group
|
||||
conf.user = "";
|
||||
conf.group = "";
|
||||
|
||||
|
||||
// Log file location
|
||||
conf.log = "kiwi.log";
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Server listen blocks
|
||||
*/
|
||||
|
||||
// Do not edit this line!
|
||||
conf.servers = [];
|
||||
|
||||
// Example server block
|
||||
conf.servers.push({
|
||||
port: 7778,
|
||||
address: "0.0.0.0"
|
||||
});
|
||||
|
||||
// Example SSL server block
|
||||
//conf.servers.push({
|
||||
// port: 7777,
|
||||
// address: "0.0.0.0",
|
||||
//
|
||||
// ssl: true,
|
||||
// ssl_key: "server.key",
|
||||
// ssl_cert: "cert.pem"
|
||||
//});
|
||||
|
||||
// Network interface for outgoing connections
|
||||
conf.outgoing_address = {
|
||||
IPv4: '0.0.0.0'
|
||||
//IPv6: '::'
|
||||
};
|
||||
|
||||
|
||||
// Do we want to enable the built in Identd server?
|
||||
conf.identd = {
|
||||
enabled: false,
|
||||
port: 113,
|
||||
address: "0.0.0.0"
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Where the client files are
|
||||
conf.public_http = "client/";
|
||||
|
||||
// Transports available to the client.
|
||||
// Behind an Apache reverse proxy? Uncomment the below - Apache does not support websockets!
|
||||
//conf.client_transports = ['polling'];
|
||||
|
||||
// Max connections per connection. 0 to disable
|
||||
conf.max_client_conns = 5;
|
||||
|
||||
// Max connections per server. 0 to disable.
|
||||
// Setting is ignored if:
|
||||
// - There is a WEBIRC password configured for the server,
|
||||
// - Kiwi is configured to send the client's ip as a username for the server, or
|
||||
// - Kiwi is running in restricted server mode.
|
||||
conf.max_server_conns = 0;
|
||||
|
||||
/*
|
||||
* Default encoding to be used by the server
|
||||
* As specified and limited to iconv-lite library support.
|
||||
*/
|
||||
conf.default_encoding = 'utf8';
|
||||
|
||||
|
||||
/*
|
||||
* Default GECOS (real name) for IRC connections
|
||||
* %n will be replaced with the users nick
|
||||
* %h will be replaced with the users hostname
|
||||
*/
|
||||
conf.default_gecos = '%n is using a Web IRC client';
|
||||
|
||||
|
||||
/*
|
||||
* Default ident / username for IRC connections
|
||||
* %n will be replaced with the users nick
|
||||
* %h will be replaced with the users hostname
|
||||
* %i will be replaced with a hexed value of the users IP
|
||||
*/
|
||||
conf.default_ident = '%i';
|
||||
|
||||
|
||||
/*
|
||||
* Default quit message
|
||||
* If a browser gets disconnected without sending a QUIT command, this
|
||||
* message will be used instead.
|
||||
*/
|
||||
conf.quit_message = 'http://www.kiwiirc.com/ - A hand-crafted IRC client';
|
||||
|
||||
|
||||
/*
|
||||
* Auto reconnect if the IRC server disconnects a kiwi user
|
||||
* Hundreds of connected users getting disconnected then reconnecting at once may see
|
||||
* high CPU usage causing further dropouts. Set to false if under high usage.
|
||||
*/
|
||||
conf.ircd_reconnect = true;
|
||||
|
||||
|
||||
/*
|
||||
* Client side plugins
|
||||
* Array of URLs that will be loaded into the browser when the client first loads up
|
||||
* See http://github.com/prawnsalad/KiwiIRC/wiki/Client-plugins
|
||||
*/
|
||||
conf.client_plugins = [
|
||||
// "http://server.com/kiwi/plugins/myplugin.html"
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
// Directory to find the server modules
|
||||
conf.module_dir = "../server_modules/";
|
||||
|
||||
// Which modules to load
|
||||
conf.modules = [
|
||||
// Open a TCP port to control the Kiwi server (default port 8888)
|
||||
// "control",
|
||||
|
||||
// Automatically reload CSS files when a theme changes
|
||||
// "client_file_watcher",
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
// WebIRC password enabled for this server
|
||||
conf.webirc_pass = "";
|
||||
|
||||
// Use the above *OR* the below webirc_pass option
|
||||
|
||||
// Multiple WebIRC passwords may be used for multiple servers
|
||||
//conf.webirc_pass = {
|
||||
// "irc.network.com": "configured_webirc_password",
|
||||
// "127.0.0.1": "foobar"
|
||||
//};
|
||||
|
||||
|
||||
// Whether to verify IRC servers' SSL certificates against built-in well-known certificate authorities
|
||||
conf.reject_unauthorised_certificates = false;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Reverse proxy settings
|
||||
* Reverse proxies that have been reported to work can be found at:
|
||||
* https://kiwiirc.com/docs/installing/proxies
|
||||
*/
|
||||
|
||||
// Whitelisted HTTP proxies in CIDR format
|
||||
conf.http_proxies = ["127.0.0.1/32"];
|
||||
|
||||
// Header that contains the real-ip from the HTTP proxy
|
||||
conf.http_proxy_ip_header = "x-forwarded-for";
|
||||
|
||||
// Base HTTP path to the KIWI IRC client (eg. /kiwi)
|
||||
conf.http_base_path = "/kiwi";
|
||||
|
||||
|
||||
/*
|
||||
* SOCKS (version 5) proxy settings
|
||||
* This feature is only available on node 0.10.0 and above.
|
||||
* Do not enable it if you're running 0.8 or below or Bad Things will happen.
|
||||
*/
|
||||
conf.socks_proxy = {};
|
||||
|
||||
// Enable proxying outbound connections through a SOCKS proxy
|
||||
conf.socks_proxy.enabled = false;
|
||||
|
||||
// Proxy *all* outbound connections through a SOCKS proxy
|
||||
conf.socks_proxy.all = false;
|
||||
|
||||
// Use SOCKS proxy for these hosts only (if conf.sock_proxy.all === false)
|
||||
conf.socks_proxy.proxy_hosts = [
|
||||
"irc.example.com"
|
||||
];
|
||||
|
||||
// Host and port for the SOCKS proxy
|
||||
conf.socks_proxy.address = '127.0.0.1';
|
||||
conf.socks_proxy.port = 1080;
|
||||
|
||||
// Username and password for the SOCKS proxy
|
||||
// Set user to null to disable password authentication
|
||||
conf.socks_proxy.user = null;
|
||||
conf.socks_proxy.pass = null;
|
||||
|
||||
|
||||
// Default settings for the client. These may be changed in the browser
|
||||
conf.client = {
|
||||
server: '10.23.0.11',
|
||||
port: 6667,
|
||||
ssl: false,
|
||||
channel: '#soporte',
|
||||
channel_key: '',
|
||||
nick: '<%= @site_name %>',
|
||||
settings: {
|
||||
theme: 'relaxed',
|
||||
text_theme: 'default',
|
||||
channel_list_style: 'tabs',
|
||||
scrollback: 250,
|
||||
show_joins_parts: true,
|
||||
show_timestamps: false,
|
||||
use_24_hour_timestamps: true,
|
||||
mute_sounds: false,
|
||||
show_emoticons: true,
|
||||
ignore_new_queries: false,
|
||||
count_all_activity: false,
|
||||
locale: null // null = use the browser locale settings
|
||||
},
|
||||
window_title: 'Kiwi IRC'
|
||||
};
|
||||
|
||||
// List of themes available for the user to choose from
|
||||
conf.client_themes = [
|
||||
'relaxed',
|
||||
'mini',
|
||||
'cli',
|
||||
'basic'
|
||||
];
|
||||
|
||||
|
||||
// If set, the client may only connect to this 1 IRC server
|
||||
conf.restrict_server = "10.23.0.11";
|
||||
//conf.restrict_server_port = 6667;
|
||||
//conf.restrict_server_ssl = false;
|
||||
//conf.restrict_server_password = "";
|
||||
|
||||
|
||||
/*
|
||||
* If running multiple kiwi servers you may specify them here.
|
||||
* Note: All kiwi servers must have the same conf.http_base_path config option.
|
||||
*
|
||||
* To force the client to connect to one other kiwi server, use:
|
||||
* conf.client.kiwi_server = 'https://kiwi-server2.com';
|
||||
*
|
||||
* To force the client to connect to a random kiwi server from a list, use:
|
||||
* conf.client.kiwi_server = ['https://kiwi-server1.com', 'https://kiwi-server2.com'];
|
||||
*/
|
||||
//conf.client.kiwi_server = '';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Do not amend the below lines unless you understand the changes!
|
||||
*/
|
||||
module.exports.production = conf;
|
Loading…
Add table
Add a link
Reference in a new issue