<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.csclub.uwaterloo.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lbahodi</id>
	<title>CSCWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.csclub.uwaterloo.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lbahodi"/>
	<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/Special:Contributions/Lbahodi"/>
	<updated>2026-04-23T20:22:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Club_Hosting&amp;diff=5140</id>
		<title>Club Hosting</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Club_Hosting&amp;diff=5140"/>
		<updated>2023-11-12T05:45:30Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: his/her -&amp;gt; their&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Computer Science Club provides web hosting to other clubs free of charge. We host many club web sites. If you have a question about our hosting service, contact syscom at csclub dot uwaterloo dot ca or visit our office in MC 3036.&lt;br /&gt;
&lt;br /&gt;
== Hosting Features ==&lt;br /&gt;
&lt;br /&gt;
* 4 GB web space&lt;br /&gt;
* Scripting&lt;br /&gt;
** PHP (mod_fcgid)&lt;br /&gt;
** Perl (https://wiki.csclub.uwaterloo.ca/Web_Hosting#Dynamic_Sites)&lt;br /&gt;
** Python (https://wiki.csclub.uwaterloo.ca/Web_Hosting#Dynamic_Sites)&lt;br /&gt;
*** Django (https://wiki.csclub.uwaterloo.ca/Web_Hosting#Dynamic_Sites)&lt;br /&gt;
** Ruby (https://wiki.csclub.uwaterloo.ca/Web_Hosting#Dynamic_Sites)&lt;br /&gt;
* Databases&lt;br /&gt;
** [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
This is not an exhaustive list. Contact us if you want something not listed or installed.&lt;br /&gt;
&lt;br /&gt;
== Getting Hosted ==&lt;br /&gt;
&lt;br /&gt;
To get hosted, you need a &#039;&#039;&#039;club account&#039;&#039;&#039; and one &#039;&#039;&#039;user account&#039;&#039;&#039; for each person who will be updating the club&#039;s web site or other files.&lt;br /&gt;
&lt;br /&gt;
The general process to get yourself an account on our systems to host your club website is:&lt;br /&gt;
&lt;br /&gt;
1. Request a free club account on the CSC systems by emailing syscom@csclub.uwaterloo.ca from an official club email (an official club email is one that is posted on your website or Facebook page, for example). Something along the lines of &amp;quot;I am from the ActSci club and am the current webmaster. Can I be registered for a club account to access the ActSci website?&amp;quot; Include the WatIAM userids (Quest ID) of any club reps that should be authorized to manage the club account in your email.&lt;br /&gt;
&lt;br /&gt;
2. For each club rep that needs access, an email needs to be sent to syscom with the following information, if they don&#039;t already have a CSC account:&lt;br /&gt;
&lt;br /&gt;
* a scan or photograph copy of the rep&#039;s WatCard,&lt;br /&gt;
* their WatIAM userid, and&lt;br /&gt;
* their acknowledgement of having read, understood, and agreeing with our Machine Usage Agreement.&lt;br /&gt;
&lt;br /&gt;
These can be sent in one email or separately.&lt;br /&gt;
&lt;br /&gt;
3. Once syscom receives these, the users will be given permission to access your club website by adding you to your corresponding club group (for example, the actsci user group).&lt;br /&gt;
&lt;br /&gt;
=== Club Account ===&lt;br /&gt;
&lt;br /&gt;
Each club we host has a &amp;quot;club account&amp;quot; that owns and stores club resources. You can request a club account via email or in person. The club account:&lt;br /&gt;
&lt;br /&gt;
* Is named after the club, possibly abbreviated.&lt;br /&gt;
* Has a home directory named /users/clubname, where club files are stored.&lt;br /&gt;
* Is not permitted to log in. You must use your own user account to login.&lt;br /&gt;
&lt;br /&gt;
The Systems Committee will create club accounts when sent a request from the club&#039;s email address to syscom@csclub.uwaterloo.ca. Verification of the club&#039;s university affiliation may be required, for instance by contacting the Federation of Students or the club&#039;s faculty advisor.&lt;br /&gt;
&lt;br /&gt;
=== User Accounts ===&lt;br /&gt;
&lt;br /&gt;
Each user who needs access to the club account must have their own user account on our machines. There are two ways to get an account:&lt;br /&gt;
&lt;br /&gt;
* Become a member of the Computer Science Club. Membership is $2.00 per term.&lt;br /&gt;
* Request a free &amp;quot;club representative&amp;quot; account. These accounts are to be used solely for managing the club account, and expire at the end of the term.&lt;br /&gt;
&lt;br /&gt;
Club representatives can request renewal of their free accounts (for one or more terms) if they still need the account to manage the club account in future terms.&lt;br /&gt;
&lt;br /&gt;
Your user account must also be authorized to change club files. Each club has a &amp;quot;club group&amp;quot; whose members may update the clubs files. We add (and remove) users to the group when we are asked to do so by the club exec. The exec must email the Systems Committee (syscom@csclub.uwaterloo.ca) from a club email address.&lt;br /&gt;
&lt;br /&gt;
Any office staff member may create and renew both member and club representative accounts using [[ceo]]. Only Systems Committee members may modify club access lists.&lt;br /&gt;
&lt;br /&gt;
== Accessing Club Resources ==&lt;br /&gt;
&lt;br /&gt;
At this point, you have a user account and a club account, and need to get started with your web site. Before you can do anything, you need to log into our machines somehow. &lt;br /&gt;
&lt;br /&gt;
=== Shell Access ===&lt;br /&gt;
&lt;br /&gt;
To gain shell access to your site, you can:&lt;br /&gt;
&lt;br /&gt;
* Log in using a terminal in the office&lt;br /&gt;
* Log in from anywhere using SSH. We discourage SSH&#039;ing into our web server (caffeine), you should use a different general-use machine (like corn-syrup.csclub.uwaterloo.ca)&lt;br /&gt;
&lt;br /&gt;
The club&#039;s files are stored in /users/clubname.&lt;br /&gt;
&lt;br /&gt;
If you want, you can become the club user by typing &amp;quot;become_club clubname&amp;quot;. This is not usually necessary, as the permissions should allow you to make changes as yourself.&lt;br /&gt;
&lt;br /&gt;
=== SFTP File Access ===&lt;br /&gt;
&lt;br /&gt;
You may access files stored on our servers, or upload new ones, via SFTP and SCP. If you are a Windows user you should use [http://winscp.net/ WinSCP] or a similar client with SFTP/SCP abilities. If you are using OS X you can use the sftp or scp Terminal commands, or you can install a graphical client such as [http://cyberduck.ch/ Cyberduck]. Similarly on GNU/Linux you can use the shell commands or a graphical client such as gftp.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
=== Web Hosting ===&lt;br /&gt;
&lt;br /&gt;
See [[Web Hosting]].&lt;br /&gt;
&lt;br /&gt;
=== Databases ===&lt;br /&gt;
&lt;br /&gt;
See [[MySQL]].&lt;br /&gt;
&lt;br /&gt;
You can create a MySQL database yourself through [[ceo]] by following [[MySQL#Using_ceo|these instructions]].&lt;br /&gt;
&lt;br /&gt;
== Some Clubs We Support ==&lt;br /&gt;
&lt;br /&gt;
* Math Society&lt;br /&gt;
* Software Engineering Society&lt;br /&gt;
* WiCS (Women in Computer Science)&lt;br /&gt;
* UW Blockchain&lt;br /&gt;
* WARG (Waterloo Aerial Robotics Group)&lt;br /&gt;
* Rocketry&lt;br /&gt;
* Pure Math Club&lt;br /&gt;
* mathNEWS&lt;br /&gt;
* Badminton Club&lt;br /&gt;
* CSA (Chinese Students Association)&lt;br /&gt;
* HVZ (Humans vs. Zombies)&lt;br /&gt;
* Warriors Band&lt;br /&gt;
* WLSG (Waterloo Libre Software Group)&lt;br /&gt;
* Physics Club&lt;br /&gt;
* CSSA (Canadian Shooting Sports Association)&lt;br /&gt;
* CAPSI (Canadian Association of Pharmacy Students and Interns)&lt;br /&gt;
* CWC (Centre for Wireless Communications?)&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4851</id>
		<title>How to IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4851"/>
		<updated>2022-07-30T05:54:57Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: Add section describing setup with emacs x erc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chat with us!&lt;br /&gt;
&lt;br /&gt;
== The Lounge ==&lt;br /&gt;
We have a web UI for IRC at [https://chat.csclub.uwaterloo.ca The Lounge].&lt;br /&gt;
[[File:The_lounge_screenshot.png|alt=The Lounge screenshot of #csc channel|400px|thumbnail|A screen capture of the #csc channel, as seen from The Lounge web client]]&lt;br /&gt;
If you are a first-time IRC user, this is by far the easiest way to join.&lt;br /&gt;
The steps are (roughly):&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Login using your CSC credentials. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Follow the prompts to join the Libera server (make sure TLS is enabled). &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Type &amp;lt;code&amp;gt;/join #csc&amp;lt;/code&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Say hi! &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are a termcom member, you will need to join the #csc-termcom channel, which requires nick (nickname) registration. To do this, run the following commands in The Lounge (or any IRC client):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/nick my_nickname&lt;br /&gt;
/msg NickServ REGISTER my_password my_email@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fill in your nickname, password and email as appropriate. You will receive an email from Libera asking you to verify your email address.&lt;br /&gt;
Once you have done so, go back to The Lounge, go the Libera window, click on the three-dots button in the top right corner, and click &amp;quot;Edit this network&amp;quot;. There, you can specify the nick and password which you just created.&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
[[File:Mattermost-csc-sample.png|alt=Mattermost #csc screen capture, including a conversation between members of the channel|372x372px|right|thumbnail|A screen capture of the #csc channel, as seen from Mattermost desktop]]&lt;br /&gt;
&lt;br /&gt;
[[File:Mattermost-phone-sample.jpg|alt=Mattermost android screenshot of #csc channel|362x362px|thumbnail|A screen capture of the #csc channel, as seen from Mattermost Android client]]&lt;br /&gt;
We self-host [https://mattermost.csclub.uwaterloo.ca/ Mattermost] now, it&#039;s easier to use if you&#039;re not familiar with IRC. If you know how to use IRC, we&#039;re #csc on libera.chat and there should be a #csc bridge that relays messages between #csc and our Mattermost instance.&lt;br /&gt;
&lt;br /&gt;
Both #csc on libera.chat ([https://web.libera.chat/#csc Libera Webchat] or via IRC clients e.g. irssi, weechat) and ~csc on Mattermost are official channels to interact with CSC members!&lt;br /&gt;
&lt;br /&gt;
=== Mattermost Setup ===&lt;br /&gt;
&lt;br /&gt;
Make an account at [https://mattermost.csclub.uwaterloo.ca/signup_email our self-hosted Mattermost]. For username, you can put your questid (i.e. your CSC username), although you can always set your full name as it will appear in Mattermost.&lt;br /&gt;
&lt;br /&gt;
The benefit of Mattermost over Slack and family is that Slack stores all your information on Slack&#039;s servers, wherever they are in the US. They do this so they can sell your data back to you (e.g. not allowing you to see old messages), but Slack is also closed-source even though it was derived from IRC. Mattermost is open-source and hosted on CSC servers.&lt;br /&gt;
&lt;br /&gt;
For iOS users, Mattermost&#039;s mobile app is also a superior option if you wish to receive push notifications as it supports Apple&#039;s native push via iCloud/APN.&lt;br /&gt;
&lt;br /&gt;
== Weechat ==&lt;br /&gt;
&lt;br /&gt;
[[File:Glowing-bear-screencap.png|alt=glowing-bear screen capture of #csc IRC channel|right|thumbnail|450px|A screen capture of the #csc IRC channel, as seen from glowing-bear client]]&lt;br /&gt;
&lt;br /&gt;
[[File:Weechat-Android-screenshot.png|alt=Weechat Android screen capture of #csc IRC channel|right|thumbnail|A screen capture of the #csc IRC channel, as seen from Weechat Android client]]&lt;br /&gt;
&lt;br /&gt;
This method will establish a persistent IRC session that you can connect to with different clients. A [https://weechat.org/ weechat] server program running on a CSClub server will remain connected to IRC networks at all times, and simply connecting to your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program will give you all the chat history upon connection.&lt;br /&gt;
&lt;br /&gt;
To set up your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to a CS Club general-use server, such as &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, and run &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; in such a way that it will keep running after you log out.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace ctdalek with your username:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh ctdalek@neotame.csclub.uwaterloo.ca&lt;br /&gt;
$ screen -U weechat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;WeeChat&amp;quot; window should have opened up. Type the following commands into this window, replacing [yourpassword] with a password of your choice and [yourport] with a number in the range of [28100-28400]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /set relay.network.password [yourpassword]&lt;br /&gt;
  /relay add weechat [yourport]&lt;br /&gt;
  /save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have entered in all these commands, you don&#039;t need your terminal anymore. You can close your ssh window!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Your personal WeeChat server is set up. Now connect to it using a pretty client:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.glowing-bear.org/ glowing-bear] is a free and open source web-based weechat client. It works well as a desktop client, and on iOS. To connect using glowing-bear, fill in &amp;quot;Connection Settings&amp;quot; with &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[yourport]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[yourpassword]&amp;lt;/code&amp;gt;. Make sure to use the &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; version of the website with this guide! &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt; only works if you set up encryption. That&#039;s not covered here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended&#039;&#039;&#039;: [https://play.google.com/store/apps/details?id=com.ubergeek42.WeechatAndroid Weechat Android] is a free and open source android &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; client. It gives notifications when your receive a direct message or your name is mentioned in one of the channels you are in. To connect using Weechat Android, fill in Settings &amp;gt; Connection with &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[yourport]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[yourpassword]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Join the #csc IRC channel&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your weechat client (e.g. glowing-bear or Weechat Android), switch to the &#039;Libera&#039; tab and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /server add libera irc.libera.chat/6697 -ssl -autoconnect&lt;br /&gt;
  /set irc.server.libera.autojoin &amp;quot;#csc&amp;quot;&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;re now connected to the main IRC network! Connected by an SSL connection, so you&#039;re super sneaky as well. Way to go.&lt;br /&gt;
&lt;br /&gt;
Now, to join the CSC channel!&lt;br /&gt;
&lt;br /&gt;
In your client, you&#039;ll now have two buffers that you can switch to. One is called &amp;quot;weechat&amp;quot; and the other is &amp;quot;libera&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Switch to the &amp;quot;libera&amp;quot; buffer and type:&lt;br /&gt;
&lt;br /&gt;
   /join #csc&lt;br /&gt;
&lt;br /&gt;
Congratulations you win!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Know some IRC commands&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Welcome to the channel! Go ahead and say something, like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Good morning ctdalek http://www.total-knowledge.com/~ilya/mips/ugt.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to privately message someone, use &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /q [nick] [optional message] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will open a new tab with that person. For example &amp;lt;code&amp;gt;/q pj2melan ping pong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you want to join another channel, use &lt;br /&gt;
&amp;lt;pre&amp;gt;  /join [channel]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example &amp;lt;code&amp;gt;/join #csc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&#039;&#039;Note about CSClub server restarts:&#039;&#039; If &amp;lt;code&amp;gt;neotame&amp;lt;/code&amp;gt; or any server you&#039;re using to run the &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; program on is restarted for any reason (we&#039;ll email you if it does), Make sure to run &amp;lt;code&amp;gt;screen -U weechat&amp;lt;/code&amp;gt; again to start your server. You won&#039;t have to reconfigure &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; (step 2) though.&lt;br /&gt;
&lt;br /&gt;
=== Securing Glowing Bear - SSL/TLS Setup ===&lt;br /&gt;
&lt;br /&gt;
With the default setup, when you log in to your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; relay using a client such as glowing-bear or Weechat Android, &#039;&#039;your password is sent in the clear&#039;&#039;. If you believe this to be a bad thing, follow these steps to enable SSL encryption between you and your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; relay running on &amp;lt;code&amp;gt;neotame&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; to generate an SSL certificate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
$ mkdir ~/.weechat/ssl&lt;br /&gt;
$ cd ~/.weechat/ssl&lt;br /&gt;
$ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out relay.pem # Fill in the fields as it asks&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; to use the new certificate you generated, and add a new relay with a different password (since your old password was likely compromised):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; client (glowing-bear, or Weechat Android), run&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /set relay.network.password [newpassword]&lt;br /&gt;
 /relay sslcertkey&lt;br /&gt;
 /relay del weechat&lt;br /&gt;
 /relay add ssl.weechat [yourport]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell your client to connect to your relay using SSL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For glowing-bear, refresh and simply check the &amp;quot;Encryption. Check settings for help.&amp;quot; checkbox when logging in with your new password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For Weechat Android, in Settings &amp;gt; Connection, change Connection type to WeeChat SSL and change your Relay password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy fully encrypted communication!&lt;br /&gt;
&lt;br /&gt;
You might have warnings about untrusted certificates, but since you made the certificate yourself you can trust yourself and add required security exceptions.&lt;br /&gt;
&lt;br /&gt;
== Quick SSH-based Setup ==&lt;br /&gt;
&lt;br /&gt;
1. Open up an IRC client, i.e. &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt;. Launch &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt; in a screen session, which you&lt;br /&gt;
can return to later.&lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
  $ screen -U irssi&lt;br /&gt;
&lt;br /&gt;
2. In irssi, connect to the libera network and join our channel. &lt;br /&gt;
&lt;br /&gt;
  /server add -auto -net libera -ssl -ssl_verify irc.libera.chat 6697&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
  /join #csc&lt;br /&gt;
&lt;br /&gt;
3. Please set your nickname to your Quest ID so we know who you are.  &lt;br /&gt;
&lt;br /&gt;
  /nick $YOUR_QUEST_ID&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
You can register your nickname on the libera network by messaging NickServ.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ REGISTER password email &lt;br /&gt;
&lt;br /&gt;
4. Close your screen session, which you can return to later.&lt;br /&gt;
&lt;br /&gt;
  CTRL-A CTRL-D&lt;br /&gt;
&lt;br /&gt;
5. Return to your screen session. You will have remained connected to the channel. &lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca -t &amp;quot;screen -Urd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
If you are comfortable with Emacs, then you can also configure the editor to act as an IRC client via &amp;lt;code&amp;gt;erc&amp;lt;/code&amp;gt;. For a quick introduction, you can run &amp;lt;code&amp;gt;M-x erc-tls&amp;lt;/code&amp;gt;where you will be prompted for a server, a port (the defaults are correct), and a nickname. For a detailed overview of possible configuration options see the [https://www.emacswiki.org/emacs/ERC ERC Emacs Wiki]. To prettify the default display and for simiilar QOL changes, consider applying some of the configuration options from [https://systemcrafters.cc/live-streams/june-04-2021/ this guide] by System Crafters.&lt;br /&gt;
&lt;br /&gt;
=== ZNC.el ===&lt;br /&gt;
To keep track of chat logs while your machine is powered down, consider setting up [[ZNC]] with the help of [https://www.emacswiki.org/emacs/ErcZNC ZNC.el]. &lt;br /&gt;
&lt;br /&gt;
= syscom =&lt;br /&gt;
&lt;br /&gt;
To kick (and optionally ban) a user:&lt;br /&gt;
&lt;br /&gt;
 /cs op #&amp;lt;channel&amp;gt;&lt;br /&gt;
 /mode #&amp;lt;channel&amp;gt; +b &amp;lt;nick_to_ban&amp;gt;&lt;br /&gt;
 /kick &amp;lt;nick_to_kick&amp;gt;&lt;br /&gt;
 /mode -o &amp;lt;your_nick&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user need not be banned you can skip the second line. If other accounts from the same user/host should be banned, replace &amp;lt;code&amp;gt;nick_to_ban/kick&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;nick!username@host&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4849</id>
		<title>How to IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4849"/>
		<updated>2022-07-30T05:17:00Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: Restructure heading titles to group together client setups&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview of Clients =&lt;br /&gt;
&lt;br /&gt;
== The Lounge ==&lt;br /&gt;
We have a web UI for IRC at [https://chat.csclub.uwaterloo.ca The Lounge].&lt;br /&gt;
[[File:The_lounge_screenshot.png|alt=The Lounge screenshot of #csc channel|400px|top|left|thumbnail|A screen capture of the #csc channel, as seen from The Lounge web client]]&lt;br /&gt;
If you are a first-time IRC user, this is by far the easiest way to join.&lt;br /&gt;
The steps are (roughly):&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Login using your CSC credentials. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Follow the prompts to join the Libera server (make sure TLS is enabled). &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Type &amp;lt;code&amp;gt;/join #csc&amp;lt;/code&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Say hi! &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are a termcom member, you will need to join the #csc-termcom channel, which requires nick (nickname) registration. To do this, run the following commands in The Lounge (or any IRC client):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/nick my_nickname&lt;br /&gt;
/msg NickServ REGISTER my_password my_email@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fill in your nickname, password and email as appropriate. You will receive an email from Libera asking you to verify your email address.&lt;br /&gt;
Once you have done so, go back to The Lounge, go the Libera window, click on the three-dots button in the top right corner, and click &amp;quot;Edit this network&amp;quot;. There, you can specify the nick and password which you just created.&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
We self-host [https://mattermost.csclub.uwaterloo.ca/ Mattermost] now, it&#039;s easier to use if you&#039;re not familiar with IRC. If you know how to use IRC, we&#039;re #csc on libera.chat and there should be a #csc bridge that relays messages between #csc and our Mattermost instance.&lt;br /&gt;
&lt;br /&gt;
Both #csc on libera.chat ([https://web.libera.chat/#csc Libera Webchat] or via IRC clients e.g. irssi, weechat) and ~csc on Mattermost are official channels to interact with CSC members!&lt;br /&gt;
&lt;br /&gt;
=== Mattermost Setup ===&lt;br /&gt;
&lt;br /&gt;
[[File:Mattermost-phone-sample.jpg|alt=Mattermost android screenshot of #csc channel|362x362px|left|thumbnail|A screen capture of the #csc channel, as seen from Mattermost Android client]]&lt;br /&gt;
[[File:Mattermost-csc-sample.png|alt=Mattermost #csc screen capture, including a conversation between members of the channel|372x372px|right|thumbnail|A screen capture of the #csc channel, as seen from Mattermost desktop]]&lt;br /&gt;
&lt;br /&gt;
Make an account at [https://mattermost.csclub.uwaterloo.ca/signup_email our self-hosted Mattermost]. For username, you can put your questid (i.e. your CSC username), although you can always set your full name as it will appear in Mattermost.&lt;br /&gt;
&lt;br /&gt;
The benefit of Mattermost over Slack and family is that Slack stores all your information on Slack&#039;s servers, wherever they are in the US. They do this so they can sell your data back to you (e.g. not allowing you to see old messages), but Slack is also closed-source even though it was derived from IRC. Mattermost is open-source and hosted on CSC servers.&lt;br /&gt;
&lt;br /&gt;
For iOS users, Mattermost&#039;s mobile app is also a superior option if you wish to receive push notifications as it supports Apple&#039;s native push via iCloud/APN.&lt;br /&gt;
&lt;br /&gt;
== Weechat ==&lt;br /&gt;
&lt;br /&gt;
[[File:Glowing-bear-screencap.png|alt=glowing-bear screen capture of #csc IRC channel|right|thumbnail|450px|A screen capture of the #csc IRC channel, as seen from glowing-bear client]]&lt;br /&gt;
&lt;br /&gt;
[[File:Weechat-Android-screenshot.png|alt=Weechat Android screen capture of #csc IRC channel|right|thumbnail|A screen capture of the #csc IRC channel, as seen from Weechat Android client]]&lt;br /&gt;
&lt;br /&gt;
This method will establish a persistent IRC session that you can connect to with different clients. A [https://weechat.org/ weechat] server program running on a CSClub server will remain connected to IRC networks at all times, and simply connecting to your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program will give you all the chat history upon connection.&lt;br /&gt;
&lt;br /&gt;
To set up your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to a CS Club general-use server, such as &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, and run &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; in such a way that it will keep running after you log out.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace ctdalek with your username:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh ctdalek@neotame.csclub.uwaterloo.ca&lt;br /&gt;
$ screen -U weechat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;WeeChat&amp;quot; window should have opened up. Type the following commands into this window, replacing [yourpassword] with a password of your choice and [yourport] with a number in the range of [28100-28400]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /set relay.network.password [yourpassword]&lt;br /&gt;
  /relay add weechat [yourport]&lt;br /&gt;
  /save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have entered in all these commands, you don&#039;t need your terminal anymore. You can close your ssh window!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Your personal WeeChat server is set up. Now connect to it using a pretty client:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.glowing-bear.org/ glowing-bear] is a free and open source web-based weechat client. It works well as a desktop client, and on iOS. To connect using glowing-bear, fill in &amp;quot;Connection Settings&amp;quot; with &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[yourport]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[yourpassword]&amp;lt;/code&amp;gt;. Make sure to use the &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; version of the website with this guide! &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt; only works if you set up encryption. That&#039;s not covered here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended&#039;&#039;&#039;: [https://play.google.com/store/apps/details?id=com.ubergeek42.WeechatAndroid Weechat Android] is a free and open source android &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; client. It gives notifications when your receive a direct message or your name is mentioned in one of the channels you are in. To connect using Weechat Android, fill in Settings &amp;gt; Connection with &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[yourport]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[yourpassword]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Join the #csc IRC channel&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your weechat client (e.g. glowing-bear or Weechat Android), switch to the &#039;Libera&#039; tab and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /server add libera irc.libera.chat/6697 -ssl -autoconnect&lt;br /&gt;
  /set irc.server.libera.autojoin &amp;quot;#csc&amp;quot;&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;re now connected to the main IRC network! Connected by an SSL connection, so you&#039;re super sneaky as well. Way to go.&lt;br /&gt;
&lt;br /&gt;
Now, to join the CSC channel!&lt;br /&gt;
&lt;br /&gt;
In your client, you&#039;ll now have two buffers that you can switch to. One is called &amp;quot;weechat&amp;quot; and the other is &amp;quot;libera&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Switch to the &amp;quot;libera&amp;quot; buffer and type:&lt;br /&gt;
&lt;br /&gt;
   /join #csc&lt;br /&gt;
&lt;br /&gt;
Congratulations you win!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Know some IRC commands&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Welcome to the channel! Go ahead and say something, like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Good morning ctdalek http://www.total-knowledge.com/~ilya/mips/ugt.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to privately message someone, use &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /q [nick] [optional message] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will open a new tab with that person. For example &amp;lt;code&amp;gt;/q pj2melan ping pong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you want to join another channel, use &lt;br /&gt;
&amp;lt;pre&amp;gt;  /join [channel]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example &amp;lt;code&amp;gt;/join #csc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&#039;&#039;Note about CSClub server restarts:&#039;&#039; If &amp;lt;code&amp;gt;neotame&amp;lt;/code&amp;gt; or any server you&#039;re using to run the &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; program on is restarted for any reason (we&#039;ll email you if it does), Make sure to run &amp;lt;code&amp;gt;screen -U weechat&amp;lt;/code&amp;gt; again to start your server. You won&#039;t have to reconfigure &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; (step 2) though.&lt;br /&gt;
&lt;br /&gt;
=== Securing Glowing Bear - SSL/TLS Setup ===&lt;br /&gt;
&lt;br /&gt;
With the default setup, when you log in to your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; relay using a client such as glowing-bear or Weechat Android, &#039;&#039;your password is sent in the clear&#039;&#039;. If you believe this to be a bad thing, follow these steps to enable SSL encryption between you and your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; relay running on &amp;lt;code&amp;gt;neotame&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to &amp;lt;code&amp;gt;neotame.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; to generate an SSL certificate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
$ mkdir ~/.weechat/ssl&lt;br /&gt;
$ cd ~/.weechat/ssl&lt;br /&gt;
$ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out relay.pem # Fill in the fields as it asks&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; to use the new certificate you generated, and add a new relay with a different password (since your old password was likely compromised):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; client (glowing-bear, or Weechat Android), run&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /set relay.network.password [newpassword]&lt;br /&gt;
 /relay sslcertkey&lt;br /&gt;
 /relay del weechat&lt;br /&gt;
 /relay add ssl.weechat [yourport]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell your client to connect to your relay using SSL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For glowing-bear, refresh and simply check the &amp;quot;Encryption. Check settings for help.&amp;quot; checkbox when logging in with your new password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For Weechat Android, in Settings &amp;gt; Connection, change Connection type to WeeChat SSL and change your Relay password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy fully encrypted communication!&lt;br /&gt;
&lt;br /&gt;
You might have warnings about untrusted certificates, but since you made the certificate yourself you can trust yourself and add required security exceptions.&lt;br /&gt;
&lt;br /&gt;
== Quick SSH-based Setup ==&lt;br /&gt;
&lt;br /&gt;
1. Open up an IRC client, i.e. &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt;. Launch &amp;lt;code&amp;gt;irssi&amp;lt;/code&amp;gt; in a screen session, which you&lt;br /&gt;
can return to later.&lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
  $ screen -U irssi&lt;br /&gt;
&lt;br /&gt;
2. In irssi, connect to the libera network and join our channel. &lt;br /&gt;
&lt;br /&gt;
  /server add -auto -net libera -ssl -ssl_verify irc.libera.chat 6697&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
  /join #csc&lt;br /&gt;
&lt;br /&gt;
3. Please set your nickname to your Quest ID so we know who you are.  &lt;br /&gt;
&lt;br /&gt;
  /nick $YOUR_QUEST_ID&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
You can register your nickname on the libera network by messaging NickServ.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ REGISTER password email &lt;br /&gt;
&lt;br /&gt;
4. Close your screen session, which you can return to later.&lt;br /&gt;
&lt;br /&gt;
  CTRL-A CTRL-D&lt;br /&gt;
&lt;br /&gt;
5. Return to your screen session. You will have remained connected to the channel. &lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca -t &amp;quot;screen -Urd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= syscom =&lt;br /&gt;
&lt;br /&gt;
To kick (and optionally ban) a user:&lt;br /&gt;
&lt;br /&gt;
 /cs op #&amp;lt;channel&amp;gt;&lt;br /&gt;
 /mode #&amp;lt;channel&amp;gt; +b &amp;lt;nick_to_ban&amp;gt;&lt;br /&gt;
 /kick &amp;lt;nick_to_kick&amp;gt;&lt;br /&gt;
 /mode -o &amp;lt;your_nick&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user need not be banned you can skip the second line. If other accounts from the same user/host should be banned, replace &amp;lt;code&amp;gt;nick_to_ban/kick&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;nick!username@host&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4846</id>
		<title>How to IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=How_to_IRC&amp;diff=4846"/>
		<updated>2022-07-30T05:00:22Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: /* IRC Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Chatting with us =&lt;br /&gt;
&lt;br /&gt;
== The Lounge ==&lt;br /&gt;
We have a web UI for IRC at [https://chat.csclub.uwaterloo.ca The Lounge].&lt;br /&gt;
[[File:The_lounge_screenshot.png|alt=The Lounge screenshot of #csc channel|400px|top|left|thumbnail|A screen capture of the #csc channel, as seen from The Lounge web client]]&lt;br /&gt;
If you are a first-time IRC user, this is by far the easiest way to join.&lt;br /&gt;
The steps are (roughly):&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Login using your CSC credentials. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Follow the prompts to join the Libera server (make sure TLS is enabled). &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Type &amp;lt;code&amp;gt;/join #csc&amp;lt;/code&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Say hi! &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are a syscom member, you will need to join the #csc-syscom channel, which requires nick (nickname) registration. To do this, run the following commands in The Lounge (or any IRC client):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/nick my_nickname&lt;br /&gt;
/msg NickServ REGISTER my_password my_email@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fill in your nickname, password and email as appropriate. You will receive an email from Libera asking you to verify your email address.&lt;br /&gt;
Once you have done so, go back to The Lounge, go the Libera window, click on the three-dots button in the top right corner, and click &amp;quot;Edit this network&amp;quot;. There, you can specify the nick and password which you just created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
We self-host [https://mattermost.csclub.uwaterloo.ca/ Mattermost] now, it&#039;s easier to use if you&#039;re not familiar with IRC. If you know how to use IRC, we&#039;re #csc on libera.chat and there should be a #csc bridge that relays messages between #csc and our Mattermost instance.&lt;br /&gt;
&lt;br /&gt;
Both #csc on libera.chat ([https://web.libera.chat/#csc Libera Webchat] or via IRC clients e.g. irssi, weechat) and ~csc on Mattermost are official channels to interact with CSC members!&lt;br /&gt;
&lt;br /&gt;
= Mattermost Setup =&lt;br /&gt;
&lt;br /&gt;
[[File:Mattermost-phone-sample.jpg|alt=Mattermost android screenshot of #csc channel|200px|top|left|thumbnail|A screen capture of the #csc channel, as seen from Mattermost Android client]]&lt;br /&gt;
[[File:Mattermost-csc-sample.png|alt=Mattermost #csc screen capture, including a conversation between members of the channel|200px|top|right|thumbnail|A screen capture of the #csc channel, as seen from Mattermost desktop]]&lt;br /&gt;
&lt;br /&gt;
Make an account at [https://mattermost.csclub.uwaterloo.ca/signup_email our self-hosted Mattermost]. For username, you can put your questid (i.e. your CSC username), although you can always set your full name as it will appear in Mattermost.&lt;br /&gt;
&lt;br /&gt;
The benefit of Mattermost over Slack and family is that Slack stores all your information on Slack&#039;s servers, wherever they are in the US. They do this so they can sell your data back to you (e.g. not allowing you to see old messages), but Slack is also closed-source even though it was derived from IRC. Mattermost is open-source and hosted on CSC servers.&lt;br /&gt;
&lt;br /&gt;
For iOS users, Mattermost&#039;s mobile app is also a superior option if you wish to receive push notifications as it supports Apple&#039;s native push via iCloud/APN.&lt;br /&gt;
&lt;br /&gt;
= IRC Setup =&lt;br /&gt;
&lt;br /&gt;
[[File:Glowing-bear-screencap.png|alt=glowing-bear screen capture of #csc IRC channel|right|thumbnail|450px|A screen capture of the #csc IRC channel, as seen from glowing-bear client]]&lt;br /&gt;
&lt;br /&gt;
[[File:Weechat-Android-screenshot.png|alt=Weechat Android screen capture of #csc IRC channel|right|thumbnail|A screen capture of the #csc IRC channel, as seen from Weechat Android client]]&lt;br /&gt;
&lt;br /&gt;
This method will establish a persistent IRC session that you can connect to with different clients. A [https://weechat.org/ weechat] server program running on a CSClub server will remain connected to IRC networks at all times, and simply connecting to your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program will give you all the chat history upon connection.&lt;br /&gt;
&lt;br /&gt;
To set up your &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; server program:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to a CS Club general-use server, such as &amp;lt;code&amp;gt;taurine.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, and run &amp;lt;code&amp;gt;weechat&amp;lt;/code&amp;gt; in such a way that it will keep running after you log out.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace ctdalek with your username:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh ctdalek@taurine.csclub.uwaterloo.ca&lt;br /&gt;
$ screen -U weechat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;WeeChat&amp;quot; window should have opened up. Type the following commands into this window, replacing [yourpassword] with a password of your choice and [yourport] with a number in the range of [28100-28400]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /set relay.network.password [yourpassword]&lt;br /&gt;
  /relay add weechat [yourport]&lt;br /&gt;
  /save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have entered in all these commands, you don&#039;t need your terminal anymore. You can close your ssh window!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Your personal WeeChat server is set up. Now connect to it using a pretty client:&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.glowing-bear.org/ glowing-bear] is a free and open source web-based weechat client. It works well as a desktop client, and on iOS. To connect using glowing-bear, fill in &amp;quot;Connection Settings&amp;quot; with `neotame.csclub.uwaterloo.ca`, `[yourport]`, and `[yourpassword]`. Make sure to use the http version of the website with this guide! HTTPS only works if you set up encryption. That&#039;s not covered here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended&#039;&#039;&#039;: [https://play.google.com/store/apps/details?id=com.ubergeek42.WeechatAndroid Weechat Android] is a free and open source android weechat client. It gives notifications when your receive a direct message or your name is mentioned in one of the channels you are in. To connect using Weechat Android, fill in Settings &amp;gt; Connection with `neotame.csclub.uwaterloo.ca`, `[yourport]`, and `[yourpassword]`.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Join the #csc IRC channel&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your weechat client (e.g. glowing-bear or Weechat Android), switch to the &#039;Libera&#039; tab and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /server add libera irc.libera.chat/6697 -ssl -autoconnect&lt;br /&gt;
  /set irc.server.libera.autojoin &amp;quot;#csc&amp;quot;&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;re now connected to the main IRC network! Connected by an SSL connection, so you&#039;re super sneaky as well. Way to go.&lt;br /&gt;
&lt;br /&gt;
Now, to join the CSC channel!&lt;br /&gt;
&lt;br /&gt;
In your client, you&#039;ll now have two buffers that you can switch to. One is called &amp;quot;weechat&amp;quot; and the other is &amp;quot;libera&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Switch to the &amp;quot;libera&amp;quot; buffer and type:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt; /join #csc&lt;br /&gt;
&lt;br /&gt;
Congratulations you win!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Know some IRC commands&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Welcome to the channel! Go ahead and say something, like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Good morning ctdalek http://www.total-knowledge.com/~ilya/mips/ugt.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to privately message someone, use &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /q [nick] [optional message] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will open a new tab with that person. For example &amp;lt;code&amp;gt;/q pj2melan ping pong&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you want to join another channel, use &lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  /join [channel]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example `/join #csc`.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&#039;&#039;Note about CSClub server restarts:&#039;&#039; If `neotame` or any server you&#039;re using to run the weechat program on is restarted for any reason (we&#039;ll email you if it does), Make sure to run `screen -U weechat` again to start your server. You won&#039;t have to reconfigure weechat (step 2) though.&lt;br /&gt;
&lt;br /&gt;
== Securing Glowing Bear - SSL/TLS Setup ==&lt;br /&gt;
&lt;br /&gt;
With the default setup, when you log in to your weechat relay using a client such as glowing-bear or Weechat Android &#039;&#039;your password is sent in the clear&#039;&#039;. If you believe this to be a bad thing, follow these steps to enable SSL encryption between you and your weechat relay running on neotame.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in to `neotame.csclub.uwaterloo.ca` to generate an SSL certificate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
$ mkdir ~/.weechat/ssl&lt;br /&gt;
$ cd ~/.weechat/ssl&lt;br /&gt;
$ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out relay.pem # Fill in the fields as it asks&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell weechat to use the new certificate you generated, and add a new relay with a different password (since your old password was likely compromised):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In your weechat client (glowing-bear, or Weechat Android), run&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /set relay.network.password [newpassword]&lt;br /&gt;
&amp;gt; /relay sslcertkey&lt;br /&gt;
&amp;gt; /relay del weechat&lt;br /&gt;
&amp;gt; /relay add ssl.weechat [yourport]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Tell your client to connect to your relay using SSL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For glowing-bear, refresh and simply check the &amp;quot;Encryption. Check settings for help.&amp;quot; checkbox when logging in with your new password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For Weechat Android, in Settings &amp;gt; Connection, change Connection type to WeeChat SSL and change your Relay password.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy fully encrypted communication!&lt;br /&gt;
&lt;br /&gt;
You might have warnings about untrusted certificates, but since you made the certificate yourself you can trust yourself and add required security exceptions.&lt;br /&gt;
&lt;br /&gt;
== Quick SSH-based Setup ==&lt;br /&gt;
&lt;br /&gt;
1. Open up an IRC client, i.e. irssi. Launch irssi in a screen session, which you&lt;br /&gt;
can return to later.&lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca&lt;br /&gt;
  $ screen -U irssi&lt;br /&gt;
&lt;br /&gt;
2. In irssi, connect to the libera network and join our channel. &lt;br /&gt;
&lt;br /&gt;
  /server add -auto -net libera -ssl -ssl_verify irc.libera.chat 6697&lt;br /&gt;
  /save&lt;br /&gt;
  /connect libera&lt;br /&gt;
  /join #csc&lt;br /&gt;
&lt;br /&gt;
3. Please set your nickname to your Quest ID so we know who you are.  &lt;br /&gt;
&lt;br /&gt;
  /nick $YOUR_QUEST_ID&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
You can register your nickname on the libera network by messaging NickServ.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ REGISTER password email &lt;br /&gt;
&lt;br /&gt;
4. Close your screen session, which you can return to later.&lt;br /&gt;
&lt;br /&gt;
  CTRL-A CTRL-D&lt;br /&gt;
&lt;br /&gt;
5. Return to your screen session. You will have remained connected to the channel. &lt;br /&gt;
&lt;br /&gt;
  $ ssh neotame.csclub.uwaterloo.ca -t &amp;quot;screen -Urd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= syscom =&lt;br /&gt;
&lt;br /&gt;
To kick (and optionally ban) a user:&lt;br /&gt;
&lt;br /&gt;
 /cs op #&amp;lt;channel&amp;gt;&lt;br /&gt;
 /mode #&amp;lt;channel&amp;gt; +b &amp;lt;nick_to_ban&amp;gt;&lt;br /&gt;
 /kick &amp;lt;nick_to_kick&amp;gt;&lt;br /&gt;
 /mode -o &amp;lt;your_nick&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user need not be banned you can skip the second line. If other accounts from the same user/host should be banned, replace &amp;lt;code&amp;gt;nick_to_ban/kick&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;nick!username@host&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=ZNC&amp;diff=4845</id>
		<title>ZNC</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=ZNC&amp;diff=4845"/>
		<updated>2022-07-30T04:45:45Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: Mention the How To IRC page and make #csc monospace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes client and server setup for ZNC with LDAP authentication.&lt;br /&gt;
If you&#039;re new to IRC, see [[How to IRC]] to get started. For more info on ZNC, see [https://wiki.znc.in/ZNC].&lt;br /&gt;
&lt;br /&gt;
== ZNC setup ==&lt;br /&gt;
These instructions show how to connect to the &amp;lt;code&amp;gt;#csc&amp;lt;/code&amp;gt; channel on libera.chat via ZNC.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Visit the ZNC web portal at &amp;lt;code&amp;gt;znc.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; and login using your CSC credentials.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Go to &amp;quot;Your Settings&amp;quot;. Under &amp;quot;Networks&amp;quot;, if you do not see a network called &amp;quot;libera&amp;quot;, then click &amp;quot;Add&amp;quot;, type &amp;quot;libera&amp;quot; for the Network Name, edit your nickname if desired, and enter the following into the IRC servers table:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hostname            Port    SSL&lt;br /&gt;
irc.libera.chat     6697    [Checked]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
(Optional, but recommended): Under the settings for libera, check the box which says &amp;quot;Connect to IRC &amp;amp; automatically re-connect&amp;quot;. This will connect you to Libera as soon as you connect to ZNC.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Set your nick, alt. nick, and ident for libera. Make sure these all have the same value. By default these are set to %user% which will expand to your csc username.&lt;br /&gt;
If you are already logged in to libera with your csc username on a different IRC client, make sure to change your nick here&lt;br /&gt;
as two different connections cannot share the same nick.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under the &amp;quot;channels&amp;quot; section for libera, click &amp;quot;Add&amp;quot;, then enter &amp;lt;code&amp;gt;#csc&amp;lt;/code&amp;gt; in the &amp;quot;Channel Name&amp;quot; field, and check the boxes &amp;quot;Save to config&amp;quot;, &amp;quot;Detached&amp;quot;, and &amp;quot;Enabled&amp;quot;. Click &amp;quot;Add Channel and return&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Now you will connect to ZNC with an IRC client.&lt;br /&gt;
&lt;br /&gt;
== IRC Client setup ==&lt;br /&gt;
=== The Lounge (chat.csclub.uwaterloo.ca) ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under network settings, name can be anything you want.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Server should be set to &amp;lt;code&amp;gt;znc.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, and port &amp;lt;code&amp;gt;6697&amp;lt;/code&amp;gt;. The password is &amp;lt;code&amp;gt;&amp;lt;zncusername&amp;gt;:&amp;lt;zncpassword&amp;gt;&amp;lt;/code&amp;gt;. If you have multiple networks configured, i.e. Libera and Freenode, use &amp;lt;code&amp;gt;&amp;lt;zncusername&amp;gt;/&amp;lt;networkname&amp;gt;:&amp;lt;zncpassword&amp;gt;&amp;lt;/code&amp;gt; for the password. Also set your nick, username and real name.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under Authentication, choose &amp;lt;code&amp;gt;Username + password (SASL PLAIN)&amp;lt;/code&amp;gt;, and enter your LIBERA nick and password.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Weechat ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/server add myznc znc.csclub.uwaterloo.ca/6697 -username=&amp;lt;CSC_USERNAME&amp;gt;/libera -password=&amp;lt;CSC_PASSWORD&amp;gt; -ssl -autoconnect&lt;br /&gt;
/connect myznc&lt;br /&gt;
/join #csc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don&#039;t forget to concatenate &amp;quot;/libera&amp;quot; to the end of your username.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
If you did not check the autoconnect box, you will need to manually connect using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *status connect&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To verify that you are connected to Libera, run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *status ListNetworks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;IRC&amp;quot; column should have the value &amp;quot;Yes&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
A modified version of the backlog module [https://wiki.znc.in/Backlog] is enabled globally. To use this, first enable the &amp;lt;kbd&amp;gt;log&amp;lt;/kbd&amp;gt; module for your user via the web UI. You will then be able to request older logs for a channel from your IRC client, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *backlog #csc 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; need to specify the log path.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Server setup ==&lt;br /&gt;
Note that the following instructions are about setting up a ZNC instance with support for LDAP authentication, similar to the CSC ZNC, and it is &#039;&#039;not&#039;&#039; about configuring an IRC client to connect to ZNC. For that, see the [[ZNC#Client_setup|Client setup]] section above.&lt;br /&gt;
&lt;br /&gt;
=== saslauthd setup ===&lt;br /&gt;
For LDAP authentication, we use the Cyrusauth module [https://wiki.znc.in/Cyrusauth], which needs to communicate with the SASL authentication daemon (saslauthd).&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
On the server, install the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install sasl2-bin ca-certificates&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open /etc/default/saslauthd, and change the following lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
START=yes&lt;br /&gt;
MECHANISM=&amp;quot;ldap&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Paste the following into /etc/saslauthd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldap_servers: ldaps://auth1.csclub.uwaterloo.ca ldaps://auth2.csclub.uwaterloo.ca&lt;br /&gt;
ldap_search_base: ou=People,dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
ldap_filter: (uid=%u)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Start saslauthd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# service saslauthd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Test saslauthd to make sure it&#039;s working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ testsaslauthd -u &amp;quot;your_csc_username&amp;quot; -p &amp;quot;your_csc_password&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see a response like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: OK &amp;quot;Success.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
=== ZNC setup ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install ZNC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt install znc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Add a user for ZNC and create an initial configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -s /bin/bash -m znc&lt;br /&gt;
# usermod -a -G sasl znc&lt;br /&gt;
# su - znc&lt;br /&gt;
$ znc --makeconf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the znc user &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be part of the sasl group to communicate with saslauthd.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Visit the web interface at &amp;lt;SERVER_IP&amp;gt;:&amp;lt;PORT&amp;gt;. Note that you may need to modify your browser settings so that you can visit a website at port 6667 or 6697.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Log in using your admin credentials, then go to &amp;quot;Global Settings&amp;quot;. Check the &amp;quot;cyrusauth&amp;quot; box, type &amp;quot;saslauthd&amp;quot; in the arguments input field, then scroll to the bottom and click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You will now need to connect to ZNC with an IRC client. The commands below assume Weechat is being used, but other clients should be similar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/server add myznc &amp;lt;SERVER_IP&amp;gt;/&amp;lt;PORT&amp;gt; -username=&amp;lt;ADMIN_USERNAME&amp;gt; -password=&amp;lt;ADMIN_PASSWORD&amp;gt;&lt;br /&gt;
/connect myznc&lt;br /&gt;
/msg *Cyrusauth CreateUsers yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will tell ZNC to create a new user on their first login.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You may optionally wish to create users from a template (i.e. dummy) user to share some common per-user settings, such as MaxNetworks. To do this, login to the ZNC web interface as admin and click on &amp;quot;Manage Users&amp;quot;. Add a new user called &amp;quot;dummy&amp;quot; with the desired settings, then click &amp;quot;save&amp;quot;.&lt;br /&gt;
Now open Weechat, login to ZNC as admin, and run the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *Cyrusauth CreateUsers clone dummy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will tell ZNC to clone new users using &amp;quot;dummy&amp;quot; as the template.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You may wish to optionally enable the adminlog module [https://wiki.znc.in/Adminlog] so that you can see who has logged in from where at what time. By default, these logs will be written to a file. To prevent this file from growing too long, install logrotate and paste the following into /etc/logrotate.d/znc:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/znc/.znc/moddata/adminlog/znc.log {&lt;br /&gt;
        rotate 4&lt;br /&gt;
        weekly&lt;br /&gt;
        compress&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will keep rotate logs every week, discarding logs after they have been rotated 4 times.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
=== NGINX tuning ===&lt;br /&gt;
If you are running ZNC behind NGINX as a reverse proxy, keep in mind that by default, NGINX will run one worker process per CPU core. To reduce this, change the following in &amp;lt;kbd&amp;gt;/etc/nginx/nginx.conf&amp;lt;/kbd&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker_processes 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=ZNC&amp;diff=4844</id>
		<title>ZNC</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=ZNC&amp;diff=4844"/>
		<updated>2022-07-30T04:41:58Z</updated>

		<summary type="html">&lt;p&gt;Lbahodi: specify the url of the ZNC web portal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes client and server setup for ZNC with LDAP authentication.&lt;br /&gt;
For more info on ZNC, see [https://wiki.znc.in/ZNC].&lt;br /&gt;
&lt;br /&gt;
== ZNC setup ==&lt;br /&gt;
These instructions show how to connect to the #csc channel on libera.chat via ZNC.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Visit the ZNC web portal at &amp;lt;code&amp;gt;znc.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; and login using your CSC credentials.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Go to &amp;quot;Your Settings&amp;quot;. Under &amp;quot;Networks&amp;quot;, if you do not see a network called &amp;quot;libera&amp;quot;, then click &amp;quot;Add&amp;quot;, type &amp;quot;libera&amp;quot; for the Network Name, edit your nickname if desired, and enter the following into the IRC servers table:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hostname            Port    SSL&lt;br /&gt;
irc.libera.chat     6697    [Checked]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
(Optional, but recommended): Under the settings for libera, check the box which says &amp;quot;Connect to IRC &amp;amp; automatically re-connect&amp;quot;. This will connect you to Libera as soon as you connect to ZNC.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Set your nick, alt. nick, and ident for libera. Make sure these all have the same value. By default these are set to %user% which will expand to your csc username.&lt;br /&gt;
If you are already logged in to libera with your csc username on a different IRC client, make sure to change your nick here&lt;br /&gt;
as two different connections cannot share the same nick.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under the &amp;quot;channels&amp;quot; section for libera, click &amp;quot;Add&amp;quot;, then enter &amp;quot;#csc&amp;quot; in the &amp;quot;Channel Name&amp;quot; field, and check the boxes &amp;quot;Save to config&amp;quot;, &amp;quot;Detached&amp;quot;, and &amp;quot;Enabled&amp;quot;. Click &amp;quot;Add Channel and return&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Now you will connect to ZNC with an IRC client.&lt;br /&gt;
&lt;br /&gt;
== IRC Client setup ==&lt;br /&gt;
=== The Lounge (chat.csclub.uwaterloo.ca) ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under network settings, name can be anything you want.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Server should be set to &amp;lt;code&amp;gt;znc.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;, and port &amp;lt;code&amp;gt;6697&amp;lt;/code&amp;gt;. The password is &amp;lt;code&amp;gt;&amp;lt;zncusername&amp;gt;:&amp;lt;zncpassword&amp;gt;&amp;lt;/code&amp;gt;. If you have multiple networks configured, i.e. Libera and Freenode, use &amp;lt;code&amp;gt;&amp;lt;zncusername&amp;gt;/&amp;lt;networkname&amp;gt;:&amp;lt;zncpassword&amp;gt;&amp;lt;/code&amp;gt; for the password. Also set your nick, username and real name.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Under Authentication, choose &amp;lt;code&amp;gt;Username + password (SASL PLAIN)&amp;lt;/code&amp;gt;, and enter your LIBERA nick and password.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Weechat ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/server add myznc znc.csclub.uwaterloo.ca/6697 -username=&amp;lt;CSC_USERNAME&amp;gt;/libera -password=&amp;lt;CSC_PASSWORD&amp;gt; -ssl -autoconnect&lt;br /&gt;
/connect myznc&lt;br /&gt;
/join #csc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don&#039;t forget to concatenate &amp;quot;/libera&amp;quot; to the end of your username.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
If you did not check the autoconnect box, you will need to manually connect using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *status connect&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To verify that you are connected to Libera, run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *status ListNetworks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The &amp;quot;IRC&amp;quot; column should have the value &amp;quot;Yes&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
A modified version of the backlog module [https://wiki.znc.in/Backlog] is enabled globally. To use this, first enable the &amp;lt;kbd&amp;gt;log&amp;lt;/kbd&amp;gt; module for your user via the web UI. You will then be able to request older logs for a channel from your IRC client, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *backlog #csc 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; need to specify the log path.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Server setup ==&lt;br /&gt;
Note that the following instructions are about setting up a ZNC instance with support for LDAP authentication, similar to the CSC ZNC, and it is &#039;&#039;not&#039;&#039; about configuring an IRC client to connect to ZNC. For that, see the [[ZNC#Client_setup|Client setup]] section above.&lt;br /&gt;
&lt;br /&gt;
=== saslauthd setup ===&lt;br /&gt;
For LDAP authentication, we use the Cyrusauth module [https://wiki.znc.in/Cyrusauth], which needs to communicate with the SASL authentication daemon (saslauthd).&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
On the server, install the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install sasl2-bin ca-certificates&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open /etc/default/saslauthd, and change the following lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
START=yes&lt;br /&gt;
MECHANISM=&amp;quot;ldap&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Paste the following into /etc/saslauthd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldap_servers: ldaps://auth1.csclub.uwaterloo.ca ldaps://auth2.csclub.uwaterloo.ca&lt;br /&gt;
ldap_search_base: ou=People,dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
ldap_filter: (uid=%u)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Start saslauthd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# service saslauthd start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Test saslauthd to make sure it&#039;s working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ testsaslauthd -u &amp;quot;your_csc_username&amp;quot; -p &amp;quot;your_csc_password&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see a response like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: OK &amp;quot;Success.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
=== ZNC setup ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Install ZNC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt install znc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Add a user for ZNC and create an initial configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -s /bin/bash -m znc&lt;br /&gt;
# usermod -a -G sasl znc&lt;br /&gt;
# su - znc&lt;br /&gt;
$ znc --makeconf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the znc user &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be part of the sasl group to communicate with saslauthd.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Visit the web interface at &amp;lt;SERVER_IP&amp;gt;:&amp;lt;PORT&amp;gt;. Note that you may need to modify your browser settings so that you can visit a website at port 6667 or 6697.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Log in using your admin credentials, then go to &amp;quot;Global Settings&amp;quot;. Check the &amp;quot;cyrusauth&amp;quot; box, type &amp;quot;saslauthd&amp;quot; in the arguments input field, then scroll to the bottom and click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You will now need to connect to ZNC with an IRC client. The commands below assume Weechat is being used, but other clients should be similar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/server add myznc &amp;lt;SERVER_IP&amp;gt;/&amp;lt;PORT&amp;gt; -username=&amp;lt;ADMIN_USERNAME&amp;gt; -password=&amp;lt;ADMIN_PASSWORD&amp;gt;&lt;br /&gt;
/connect myznc&lt;br /&gt;
/msg *Cyrusauth CreateUsers yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will tell ZNC to create a new user on their first login.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You may optionally wish to create users from a template (i.e. dummy) user to share some common per-user settings, such as MaxNetworks. To do this, login to the ZNC web interface as admin and click on &amp;quot;Manage Users&amp;quot;. Add a new user called &amp;quot;dummy&amp;quot; with the desired settings, then click &amp;quot;save&amp;quot;.&lt;br /&gt;
Now open Weechat, login to ZNC as admin, and run the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/msg *Cyrusauth CreateUsers clone dummy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will tell ZNC to clone new users using &amp;quot;dummy&amp;quot; as the template.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You may wish to optionally enable the adminlog module [https://wiki.znc.in/Adminlog] so that you can see who has logged in from where at what time. By default, these logs will be written to a file. To prevent this file from growing too long, install logrotate and paste the following into /etc/logrotate.d/znc:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/znc/.znc/moddata/adminlog/znc.log {&lt;br /&gt;
        rotate 4&lt;br /&gt;
        weekly&lt;br /&gt;
        compress&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will keep rotate logs every week, discarding logs after they have been rotated 4 times.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
=== NGINX tuning ===&lt;br /&gt;
If you are running ZNC behind NGINX as a reverse proxy, keep in mind that by default, NGINX will run one worker process per CPU core. To reduce this, change the following in &amp;lt;kbd&amp;gt;/etc/nginx/nginx.conf&amp;lt;/kbd&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker_processes 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lbahodi</name></author>
	</entry>
</feed>