Info
Eine kurze Anleitung, wie man einen IRC-Server ohne root-Rechte installiert. In diesem Beispiel gehe ich von der Serverkonfiguration von uberspace.de aus, es sollte aber ähnlich auch überall sonst funktionieren.
Installation
Als erstes laden wir ngircd runter, ein kleiner IRC Server, der kaum Konfiguration braucht und einfach funktioniert.
Entweder über den package manager toast
$ toast arm ngircd
oder mit cURL (aktuellste Version raussuchen)
$ curl http://ngircd.barton.de/pub/ngircd/ngircd-19.1.tar.gz -O
$ tar -zxvf ngircd-19.1.tar.gz
Die Variante bei toast hat dabei den Vorteil, dass Toast bereits alle nötigen Ordner und Strukturen perfekt einrichtet, dass ngircd nicht in den normalen, nur für root zugänglichen Pfaden sucht und waltet. Wie man das manuell einstellt weiß ich nicht. Da dies ein uberspace.de Tutorial sein soll, und toast bei uberspace.de standardmäßig installiert ist, kümmere ich mich auch nicht weiter darum.
Einstellungen
Nun richten wie die Konfiguratinsdateien ein.
$ ln -s ~/.toast/pkg/ngircd/v19.1/1/root/etc ~/ngircd
$ cd ngircd
$ cp ngircd.conf ngircd.org.conf
$ chmod 444 ngircd.org.conf
Dies erstellt einen symbolischen Link ngircd in euer Homeverzeichnis und erstellt eine nicht beschreibbare Kopie der Standardkonfigurationsdatei. Nun müsst ihr an der eigentlichen Konfigurationsdatei noch einige Einstellungen vornehmen. Benutzt dafür einen Terminaleditor euerer Wahl wie zum Beispiel vim oder nano.
$ nano ngircd.conf
[Global]
Name = irc.{username}.{server}.ubserspace.de
Info = Info Text
# Globales Serverpasswort. Das ; am Anfang entfernen um es zu aktivieren
;Password = {password}
# Information about the server and the administrator, used by the
# ADMIN command. Not required by server but by RFC!
AdminInfo1 = Description
AdminInfo2 = Location
AdminEMail = admin@irc.server
# Bitte einen anderen als den Standard '6667' verwenden
Ports = {port}
MotdFile = /home/{username}/ngircd/ngircd.motd
ServerUID = {username}
ServerGID = {username}
[Operator]
Name = {name}
Password = {password}
Ihr müsst die Werte in den geschweiften Klammern natürlich mit euren Werten ersetzen (ohne Klammern dann). Wenn ihr wollt könnt ihr dann noch einige permanente Channels einrichten. Die Konfiguration dafür sieht so aus:
# ein passwortgeschützter Channel
[Channel]
Name = #protected
Topic = a closed channel
Modes = tnPk
Key = password
# ein offener Channel
[Channel]
Name = #open
Topic = an open channel
Modes = tnP
Aus nano kommt ihr mit ^x wieder raus, dann zum speichern bestätigen und fertig.
Jetzt noch eine "Message of the Day" Datei anlegen
$ echo "Willkommen auf meinem IRC Server!" > ngircd.motd
Test
Jetzt testen wir die Konfiguration. Das geht mit
$ ngircd -t
Dabei sollten keine Fehler auftreten, wenn doch, nochmal genau die Konfigdatei anschauen! Jetzt testen wir ob der Server überhaupt funktioniert und starten ihn dafür im Vordergrund:
$ ngircd -n
Und von einer anderen Shell versuchen wir in den Server zu "telneten" (schnell tippen!)
$ telnet localhost {port}
USER tester localhost tester :name
NICK tester
Dabei sollten wir eine Antwort vom Server bekommen und in der Shell des Servers sollten wir den Client connecten sehen
Einen Service aufsetzen
Damit der Server auch nach einem crash oder einer downtime wieder automatisch angeht, verwenden wir ihn als Service. Uberspace.de hat dafür deamontools installiert. Falls noch nicht geschehen einfach ein eigenes ~/service Verzeichnis mit dem mitgelieferten Skript erstellen
$ uberspace-setup-svscan
und dann einen einen ngircd Service einrichten
$ uberspace-setup-service ngircd "ngircd -n"
Nun müsst ihr noch ein Portforwarding bei den Leuten von uberspace.de beantragen und fertig :)
