Die letzten Tage habe ich mich damit beschäftigt einen IRC-Bouncer auf Uberspace zu installieren. Als Vorlage diente hierzu der Artikel von Marvin Dickhaus.
Wozu benötigt man eigentlich einen Bouncer (BNC)?
Ein Bouncer vermittelt zwischen einem IRC-Client und dem IRC-Server. Ohne Bouncer gibt man die Anwesenheit in einem IRC-Channel nach dem Abmelden immer wieder auf. Mit einem Bouncer hingegen kann man jedoch auch offline im Raum verweilen, um so u.a. keine Nachrichten zu verpassen. Der Bouncer hält die Verbindung zum IRC-Server ständig aufrecht. Man verbindet sich später nun nicht mehr mit dem IRC-Server, sondern mit dem Bouncer (siehe Grafik).
Was benötigt man nun dazu?
Zuerst ein Uberspace und ZNC.
Um ZNC auf dem Uberspace kompilieren und installieren zu können muss eine neuere Version von GCC aktiviert werden. Das geht folgendermaßen:
1 |
echo 'export PATH=/package/host/localhost/gcc-4/bin:$PATH' >> ~/.bashrc |
1 |
echo 'export LD_LIBRARY_PATH=/package/host/localhost/gcc-4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc |
1 |
source ~/.bashrc |
Dann kann ZNC via Toast installiert werden.
1 |
toast arm http://znc.in/ |
Nun geht man in das entsprechende Verzeichnis und konfiguriert das Ganze.
1 |
cd .toast/armed/bin/ |
1 |
znc --makeconf |
Hier ein Überblick, wie das bei mir aussieht. Listen on Port kann frei gewählt werden. In meinem Fall 62626.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
[ .. ] Checking for list of available modules... [ >> ] ok [ ** ] [ ** ] -- Global settings -- [ ** ] [ ?? ] Listen on port (1025 to 65534): 62626 [ ?? ] Listen using SSL (yes/no) [no]: [ ?? ] Listen using both IPv4 and IPv6 (yes/no) [yes]: [ .. ] Verifying the listener... [ >> ] ok [ ** ] Unable to locate pem file: [/home/intux/.znc/znc.pem], creating it [ .. ] Writing Pem file [/home/intux/.znc/znc.pem]... [ >> ] ok [ ** ] Enabled global modules [webadmin] [ ** ] [ ** ] -- Admin user settings -- [ ** ] [ ?? ] Username (alphanumeric): intux [ ?? ] Enter password: [ ?? ] Confirm password: [ ?? ] Nick [intux]: [ ?? ] Alternate nick [intux_]: intux69 [ ?? ] Ident [intux]: [ ?? ] Real name [Got ZNC?]: Frank Luettig [ ?? ] Bind host (optional): [ ** ] Enabled user modules [chansaver, controlpanel] [ ** ] [ ?? ] Set up a network? (yes/no) [yes]: [ ** ] [ ** ] -- Network settings -- [ ** ] [ ?? ] Name [freenode]: [ ?? ] Server host [chat.freenode.net]: [ ?? ] Server uses SSL? (yes/no) [yes]: [ ?? ] Server port (1 to 65535) [6697]: [ ?? ] Server password (probably empty): [ ?? ] Initial channels: #intux [ ** ] Enabled network modules [simple_away] [ ** ] [ .. ] Writing config [/home/intux/.znc/configs/znc.conf]... [ >> ] ok [ ** ] [ ** ] To connect to this ZNC you need to connect to it as your IRC server [ ** ] using the port that you supplied. You have to supply your login info [ ** ] as the IRC server password like this: user/network:pass. [ ** ] [ ** ] Try something like this in your IRC client... [ ** ] /server <znc_server_ip> 64545 intux:<pass> [ ** ] [ ** ] To manage settings, users and networks, point your web browser to [ ** ] http://<znc_server_ip>:64545/ [ ** ] [ ?? ] Launch ZNC now? (yes/no) [yes]: |
Wichtig: ZNC darf nicht am Ende der Konfiguration gestartet werden! Hier ist >no< einzugeben.
Hierfür wird nun ein entsprechender Service auf dem Uberspace eingerichtet, der ZNC automatisch im Hintergrund laufen lässt.
1 |
cd ~ |
1 |
test -d ~/service || uberspace-setup-svscan |
1 |
cat << __EOF__ > ~/bin/znc-daemon |
Jetzt Folgendes eintragen
1 2 3 |
#! /bin/sh exec ~/.toast/armed/bin/znc --foreground --debug 2>&1 __EOF__ |
und mit Enter bestätigen.
1 |
chmod +x ~/bin/znc-daemon |
1 |
uberspace-setup-service znc-daemon ~/bin/znc-daemon |
Der Start des Service gibt bei Erfolg diese Meldung aus:
1 |
Waiting for the service to start ... 1 2 3 4 5 started! |
Der Bouncer nimmt jetzt seine Arbeit auf. Wie man ZNC per Webinterface konfiguriert und via Weechat nutzt, zeige ich im nächsten Artikel.
Erreichbar bin ich auf Freenode unter #intux.
Viel Spaß!
Nachtrag
Andere Bouncer wie bsybnc, miau, muh oder shroudBNC erfüllen den gleichen Zweck. Ein weiterer guter terminal-basierender IRC-Client ist Irssi.
Tut nicht byobu/screen + irssi in einer SSH-Session auf dem Uberspace-Host genau das Gleiche: eine IRC-Session offen halten? Und das hat sogar noch den Vorteil, dass ich sie von irgendwoher anschauen kann. Welche Vorteile bringt ZNC?
ZNC ist Mandantenfähig, über das gelungene WebGUI lassen sich unendlich viele User in IRC Netze zuweisen und verwalten, es kann eingestellt werden wie viele Zeilen pro Channel geloggt werden sollen wenn Offline, es gibt diverse Module die einem das Leben im IRC bequemer machen.
Ich habe auch einen Trust ins Quakenet fuer 10 Verbindungen derselben IP fuer ein paar ZNCs die alte Bekannte nutzen. Sie lieben ihn 🙂
Sicher kann man das auch anders lösen. Ich habe nur eine Möglichkeit aufgezeigt. In Verbindung mit einem Uberspace finde ich ZNC schon recht gut, besonders, dass man die Einstellungen hinterher über das Webinterface leicht konfigurieren kann.
Hmm, so richtig war IRC bei mir immer eine Hassliebe. Ich muss gestehen, dass ich mit XMPP und MUC deutlich glücklicher bin (ein login, resycn, adhoc-cmds mit GUIs, …)
Mit MIX könnte es dann mittelfristig auch die Möglichkeit geben im Channel verfügbar zu bleiben, obwohl man offline ist:
https://blog.process-one.net/xmpp-mobile-groupchat-introducing-muc-subscription/
Ja, XMPP + MUC erledigt das auch. Jedoch hat man über IRC Zugriff auf eine größere Community in den entsprechenden Fachbereichen.
[…] Artikel „Die Sache mit dem Bouncer – Teil 1“ hatte ich gezeigt, wie man einen IRC-Bouncer auf einem Uberspace installiert. […]
[…] auf meinem Debian-Server installiert habe, hielt ich mich bei der Konfiguration an meine damalige Uberspace-Installation. Dort hatte ich die […]