=====Overview=====
irc.offbyone.lan is the LAIR IRC server.
^ hostname ^ RAM ^ disk ^ swap ^ OS ^ Kernel ^
| irc.offbyone.lan | 256MB | 4GB (/) | 128MB | Debian 8.0 "Jessie" (AMD64) | 3.14-1-amd64 |
lab46.offbyone.lan created on sokraits on 07/11/2014.
=====News=====
* 06/25/2010 - ircnew.offbyone.lan created, DNS updates made on caprisun
* 08/23/2010 - around this day, ircnew became irc.
* 07/11/2014 - irc.offbyone.lan recreated as a jessie-based VM. The future is now.
* 07/14/2014 - transitioned mgough's wezlbot onto irc (**/var/lib/wezlbot**) and set the cron job to autolaunch.
=====TODO=====
* need to clean up /etc/ngircd/ngircd.conf (sanitize comment blocks, reorganize options)
* quickly hacked in some options to get things working (KEY: PAM = no)
* need to post updated ngircd.conf here (sans oper password)
=====Network Configuration=====
^ Machine ^ Interface ^ IP Address ^ MAC Address ^ Other Names ^
| irc.offbyone.lan | eth0 | 10.80.2.12 | 00:16:3e:5d:88:d7 | irc.lair.lan |
=====Packages=====
The following packages have been installed on irc:
* lair-std
* lair-nfs
* lair-autofs
* lair-ldap (libnss-ldapd nslcd)
* irssi
* ngircd
* libtcl8.5
* libtcl8.6
* mosh
=====Xen Configuration=====
irc is a Xen virtual machine. Pertinent configuration information follows:
====Configuration====
The Xen config file for this VM is as follows:
######################################################################
##
## LAIR Xen VM configuration file
##
## created by xen-tools 4.4 on Fri Jul 11 10:57:30 2014.
##
######################################################################
######################################################################
##
## PyGRUB
##
bootloader = '/usr/lib/xen-4.3/bin/pygrub'
######################################################################
##
## CPU(s) + memory size
##
memory = '256'
vcpus = '1'
######################################################################
##
## Disk device(s).
##
root = '/dev/xvda1 ro'
disk = [ 'file:/xen/images/irc.disk,xvda1,w',
'file:/xen/images/irc.swap,xvda2,w' ]
######################################################################
##
## Hostname
##
name = 'irc'
######################################################################
##
## Networking
##
dhcp = 'dhcp'
vif = [ 'mac=00:16:3e:0f:47:08,bridge=xenbr1' ]
######################################################################
##
## Behaviour
##
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
=====ngircd configuration=====
The ngircd config is located in /etc/ngircd/ngircd.conf. It is configured as follows:
##
## ngircd.conf for irc.offbyone.lan
##
[Global]
Name = irc.offbyone.lan
Info = LAIR @ CCC IRC Server
# Information about the server and the administrator, used by the
# ADMIN command. Not required by server but by RFC!
AdminInfo1 = Matthew Haas
AdminInfo2 = lab46.corning-cc.edu/haas
AdminEMail = haas@corning-cc.edu
#Ports = 6667, 6668, 6669
Ports = 6667
MotdFile = /etc/ngircd/ngircd.motd
# Do NOT change this on Debian! The Initscript takes care of this file!
PidFile = /var/run/ngircd/ngircd.pid
# After seconds of inactivity the server will send a
# PING to the peer to test whether it is alive or not.
PingTimeout = 128
# If a client fails to answer a PING with a PONG within
# seconds, it will be disconnected by the server.
PongTimeout = 32
# The server tries every seconds to establish a link
# to not yet (or no longer) connected servers.
ConnectRetry = 64
# Should IRC Operators be allowed to use the MODE command even if
# they are not(!) channel-operators?
OperCanUseMode = yes
# Maximum number of simultaneous connection the server is allowed
# to accept (<=0: unlimited):
MaxConnections = 0
# Maximum number of simultaneous connections from a single IP address
# the server will accept (<=0: unlimited):
MaxConnectionsIP = 128
# Maximum number of channels a user can be member of (<=0: no limit):
MaxJoins = 0
[Operator]
Name = wedge
Password = -REDACTED-
[Server]
Name = irc.dslab.lan
Host = irc.dslab.lan
# Port of the server to which the ngIRCd should connect. If you
# assign no port the ngIRCd waits for incoming connections.
;Port = 6667
# Own password for the connection. This password has to be configured
# as "PeerPassword" on the other server.
MyPassword = serviceslinkp
# Foreign password for this connection. This password has to be
# configured as "MyPassword" on the other server.
PeerPassword = serviceslinkm
Group = 42
[Channel]
Name = #offbyone
Topic = OffByOne chat
Modes = tn
[Channel]
Name = #lair
Topic = LAIR chat
Modes = tn
[Channel]
Name = #unix
Topic = CSCS1730 UNIX/Linux Fundamentals Class chat
Modes = tn
[Channel]
Name = #hpc
Topic = HPC
Modes = n
[Channel]
Name = #asm
Topic = Computer Organization class chat
Modes = n
[Channel]
Name = #lab46
Topic = Lab46 chat
Modes = n
# -eof-
=====ngircd motd=====
Nothing fancy, but here it is nonetheless:
######################################################################
##
## irc.offbyone.lan - LAIR IRC server
##
## If you know your class channel(s), you may "/join CHANNEL_NAME"
## them now.
##
## For help, "/join lab46"
##
## Regular rules apply: Play nice or go home.
##
=====eggdrop=====
Debian includes the eggdrop bot in its package database, appears to be the latest and greatest (1.6.19).
I installed it, and then set about getting it set up.
====adding irc user====
I decided to call my bot 'Willem', so I went and created a local system account on irc: willem (id/gid of 200).
willem's home directory is located in /var/lib/willem, and will host an eggdrop installation with megahal module (and other goodies as I see fit).
Pertinent configuration information follows.
====building megahal module====
The eggdrop megahal module is not available from the package database, so we have to build it from source.
I located a different branch of the megahal module than what has been commonly utilized in classes, and am trying that out. Information on it can be found here: http://thelastexit.net/megahal/index.html
To compile it, I did the following (on a system with a build environment... note you pretty much need build-essential + tcl8.4-dev installed for eggdrop to configure):
apt-get source eggdrop
cd eggdrop-1.6.19
cd src
cp main.c main.c.old
cp -f main.c.new main.c
cd mod
mkdir megahal.mod
cd megahal.mod
wget http://thelastexit.net/megahal/megahal.mod.3.5.zip
unzip megahal.mod.3.5.zip
cd ../../..
./configure
make config
make
At this point eggdrop is built, along with the modules... there is a megahal.so now residing in the base of the eggdrop directory.
This needs to be copied into the module directory for the system-installed eggdrop.
====links====
* http://thelastexit.net/megahal/index.html
* http://www.egghelp.org/files.htm#modules
* http://www.kreativrauschen.com/stats.mod/download/