From f81e32dddd230852e157fd71b94ac85975a2a19e Mon Sep 17 00:00:00 2001
From: =
An IRCd is short for "IRC daemon", which just means an IRC server. @@ -71,7 +71,7 @@ drwxr-xr-x 2 ergo ergo 12288 Jul 1 09:01 languages TODO Mention UFW firewall ports 6667, 6697 TODO Mention config rehashing at runtime (mention use-cases like new opers, etc) -
Now that Ergo is installed, you want to configure it to fit the needs of your group.
@@ -121,7 +121,7 @@ cp ergo.motd ircd.motd
You should read over the configuration file yourself if you are curious about everything you can change.
One of the first properties in the config file is network name. You can change this to whatever you like, as it will show up as the name when you connect to the server. @@ -139,7 +139,7 @@ server: # server name name: "example.org" -
The next step is optional, depending on if you want your network password protected or not. The benefit of password protection is fairly obvious; nobody can connect to your network unless you gave them the password. @@ -159,7 +159,7 @@ server:
# password to login to the server, generated using `ergo genpasswd`:
password: "<your hashed password>"
- Change the MotD (Message of the Day) file to the one you copied earlier:
# motd filename
@@ -168,7 +168,7 @@ motd: ircd.motd
Feel free to edit ircd.motd to your heart's content. Its contents will be sent to clients when they connect to the network.
For security purposes, you might want to limit the amount of client connections per IP.
For a private network, 4 is likely the maximum amount of connections you will have per IP, so that is a safe value.
@@ -183,7 +183,7 @@ ip-limits:
# maximum concurrent connections per IP/CIDR
max-concurrent-connections: 16
-
Traditionally, IRC networks expose users' IP addresses to everyone. This is not a good practice for privacy, however.
With Ergo, IP cloaking is enable by default. You can enable or disable it if you like, and change how it looks to users.
@@ -211,7 +211,7 @@ ip-cloaking:
# you may want to use your network name here
netname: "chad"
-
Ergo offers account registration to allow users to do things like use history and bouncer features, register channels, etc.
In clients such as HexChat, server password may conflict with account passwords, so the following setting should be enable if you wish to use accounts with clients such as HexChat.
@@ -227,7 +227,7 @@ ip-cloaking:
# PASS as well, so it can be configured to authenticate with SASL only.
skip-server-password: true
-
Traditionally, IRC servers have no message history, and once you close your client, you cannot receive messages, and are not shown to be online at all. Ergo includes functionality to allow users to both receive history, and keep their clients "online" even after they have left. @@ -266,7 +266,7 @@ multiclient: # (use 0 or omit for no expiration): #always-on-expiration: 90d -
IP cloaking was mentioned previously, and somewhat related to that, Ergo includes "vhost" functionality, which allows users to set a custom IP/host string. This is mostly for cosmetic value, and does not interfere with operators being able to see actual IP addresses for banning, but if you do not want it enable for some reason, you can disable it. @@ -278,7 +278,7 @@ vhosts: # are vhosts enabled at all? enabled: true -
Channels are where everyone on an IRC network talk. By default, anyone can create a channel, and anyone with an account can register one. The difference between a normal channel and a registered one is that the registered one will preserve the operator status of the person who created, @@ -313,7 +313,7 @@ channels: # how many channels can each account register? max-channels-per-account: 15 -
The IRC term for an administrator or another privileged user is "operator", or "oper" for short.
Ergo's opers have different permissions that can be granted to them, and are defined in "classes", basically groups of permissions under a name.
@@ -402,7 +402,7 @@ opers:
Another, less privileged example of an oper is shown as a comment below the above configuration snippet.
Traditionally, IRC networks do not store, relay, or handle chat history in any way.
On a privacy standpoint, this is a good thing, since chats are entirely ephemeral and handled by clients.
@@ -490,7 +490,7 @@ retention:
# may be needed for compliance with data privacy regulations.
enable-account-indexing: true
-
Most IRC networks have measures in place to reduce chat spam. By default, "fakelag" is enabled in Ergo, and that can deal with most aggregious chat spam.
If you are running a private network where user trust is high, you can disable it so that there are no limits on the speed that messages can be sent.
@@ -515,12 +515,12 @@ fakelag:
# sending any commands:
cooldown: 2s
-
Now that Ergo is both installed and configured, you can actually start using it!
-
First thing, make sure you're still using the ergo user, and are in the ~/server directory.
If you aren't, you can run the following to get back there:
@@ -541,7 +541,7 @@ cd server
you need to run ufw enable 6697 (not as the ergo user, of course).
To use IRC, you of course need an IRC client. There are many choices available, but the most widely used for Windows and Linux is HexChat.
On Mac, you have a slightly nicer option with Textual, although you have to compile it from source if you want to use it for free.
@@ -578,7 +578,7 @@ cd server
-
In the beginning of the last section, Ergo was started by simply running ./ergo run, but this is only suitable for testing.
To have a proper server setup, you need to run it as a service. This can be achieved via a SystemD service.
@@ -632,13 +632,13 @@ systemctl start ergo
Ergo is now installed and running as a service, and will automatically start when the system boots.
-Account and channel registration were mentioned multiple times in this guide, and are indeed very important parts of the modern IRC ecosystem. You can connect to most IRC networks and talk without creating an account, but you will not be able to reserve your nickname or register channels, so it is important to register an account.
-
First, make sure you are connected to your IRC network.
Once you are, type /nickserv help to make sure NickServ (the registration system) is working propertly.
@@ -665,7 +665,7 @@ systemctl start ergo
You will now be logged into your account when you connect to your network.
-
Once you have an account registered, you can register channels with ChanServ.
To do so, join the channel you want to register, then type the following, replacing <your channel> with the name of the channel you want to register:
@@ -678,7 +678,7 @@ systemctl start ergo
When you go offline, you won't lose ownership, and you cannot be removed as the owner unless you unregister the channel later.
Like any chat, there will come a point where you need to use moderation tools to keep things under control.
Many IRC setup guides do not go over moderation, so it can be stressful when operators need to actually use moderation tools.
@@ -686,7 +686,7 @@ systemctl start ergo
Channel ban keeps a person out of channel a channel, whereas a network ban keeps a person out of the entire network.
Bans are applied "masks", which are formatted pieces of text that contain a user's nick (username), their realname value, and their IP address or host.
This is what a mask looks like: nick!~nick-dude@127.0.0.1.
@@ -695,7 +695,7 @@ systemctl start ergo
A ban on anyone with the IP address 127.0.0.1 would look like this: *!*@127.0.0.1
Even if IP cloaking is enabled on your network, you can still obtain real IP addresses/hosts if you are an operator.
See the Operators part of the configuration section of this guide on how to become an operator.
@@ -703,7 +703,7 @@ systemctl start ergo
/whois is not a command that is exclusive to operators, but it does not reveal as much information to non-operators.
Any netword-wide moderation action requires being an operator. See the Operators part of the configuration section of this guide on how to become an operator.
Banning someone from the network is achieved with the /kline command. To see more info on the command, type /helpop kline.
@@ -719,7 +719,7 @@ systemctl start ergo
To unban a mask, you can use the /unkline command with the mask you want to unban.
Channel owners, administrators, and operators can ban people from channels.
This is not the same as banning someone from the network, since it only has an effect on one channel.
@@ -737,7 +737,7 @@ systemctl start ergo
You can see who is banned in a channel by typing /banlist.
By default, anyone can speak in an IRC channel. To change this, you must be a channel owner, administrator, or operator.
Channels, along with users, have modes, which modify their behavior. There is a special mode for channels called m (moderated) which requires users to be privileged in some way to talk.
@@ -756,7 +756,7 @@ systemctl start ergo
Unvoice the user by typing the above command, but replacing the + with a -.
Assuming you a channel owner, you can appoint both administrators and operators.
If you are only an operator, you may only appoint operators.
@@ -775,7 +775,7 @@ systemctl start ergo
To remove administrator or operator status, run either of the above commands, but replace the + with a -.
A large downside to IRC as a protocol is just how old it is, and the limitations that exist because of it.
Other old protocols such as HTTP were built to be content-agnostic and versitile, but IRC was built with a very specific set of features, so it has not held up so well to contemporary chat systems.
@@ -796,7 +796,7 @@ systemctl start ergo
Written by Termer
-- cgit v1.2.3