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',
|
key_server => 'subkeys.pgp.net',
|
||||||
include_src => false,
|
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::sudo
|
||||||
include rhizo_base::users
|
include rhizo_base::users
|
||||||
include rhizo_base::icinga
|
include rhizo_base::icinga
|
||||||
|
include rhizo_base::kiwi
|
||||||
|
|
||||||
|
|
||||||
#Rizhomatica scripts
|
#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'] ],
|
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