Matrix is a next generation communication protocol with the end goal of being an open standard for secure, decentralized, real-time communication. Part of what makes Matrix interesting is how the protocol was designed with bridging in mind, and one of these bridges is for IRC. AfterNET has decided to stand up our own federated Matrix home server with bridging to the IRC network to expand on available ways to communicate / participate through the AfterNET community. Think of Matrix as basically Slack / Discord, only its open in both its protocol and source, it also permits federation with other servers / communities.
Matrix is in active development and items and names of components may change over time, for progress reports you can view their This Week in Matrix blog posts.
Before you can use the AfterNET home server you need to have an account with us. Currently you can do this by registering an account with our IRC services. Once you've done this your options include:
Because Matrix aims to be secure one of the first things it will do the first time you log in is to setup your security key. This will just be another password used in the event you need to restore your key should you lose it due to data loss or corruption. You can also use it to verify your login if you're doing a second login via another computer or mobile device (cross-signing).
Once you get in you'll be greeted by a message telling you to find a room or begin a room. In order to search for rooms go ahead and click on the room explorer icon: A window will open showing all publicly listed rooms on the homeserver:
By default you are seeing all rooms listed on AfterNET's homeserver. We also have our web client configured to allow you to view the rooms on Matrix's homeserver and other clients can add different servers as well. To do so click the dropdown Matrix rooms, for our hosted Element you can select matrix.org and view their rooms or you can select Add a new server and enter a server such as Mozilla's server at mozilla.org
Creating a room is pretty straightforward. You can do this from two locations, the Room Explorer (public assumed) and the + (private assumed) next to Rooms on the left-hand side.
If you create a room from the Room Explorer the following screen appears as it will assume its a public room, it allows you to set the room name, the topic, whether it will show in the explorer or not, the room address / alias, and under Advanced whether or not you want users from servers other than afternet.org to be able to join (this can only be enabled, not disabled)
If you use the + to create a new room it will assume you are attempting to make a private room so the following screen will appear. In addition to making it public or blocking remote homeserver users it will also default to enabling encryption on the room. Encryption and remote homeserver are one-time options and cannot be changed after they are set.
Matrix's core team started off using IRC, as a result getting around or running rooms is fairly similar. If you want to join a room its /join #room:homeserver.tld, to leave /part. If you wish to send a direct message to someone use /query @account:homeserver.tld
Matrix breaks users down into three categories for room members: Administrator, Moderator and User. To tell who is what level simply look at the member list and their status will be on the right side of their name in Element. The categories are also denoted by a numerical value of 0-100 called Power Levels: 0-49 - User, 50-99 - Moderator and 100 - Administrator. These power levels come into play when configuring a rooms roles and permissions.
When you create a room you are by default a room Administrator but do be careful when changing power levels especially on yourself. If you were to lower yourself from 100 to anything less you cannot get 100 again and AfterNET staff will not be able to do so for you as well due to the federated nature of Matrix. You will need someone else in the room who is an Administrator to set you back to 100.
The IRC bridge on AfterNET is currently setup so that +o - 99, +h - 50 and +v - 1. If you are concerned about unauthorized users gaining +o and being able to wreck the matrix room note that the bridge does not allow room setting changes over the bridge aside from the room topic.
In order to modify a room's setting, in Element, click on the gear icon in the top right which will open the room settings.
This tab contains all the generic room settings such as name, topic, icon, you can also add the room alias, make the room public or private on the room explorer, flair from communities (still under heavy work), enable/disable url and image previews for yourself or as a default for new members joining the room and leave the room.
The next tab, Security & Privacy, determines who can join the room, who can read the history of the room and whether or not the enable full encryption (you can only turn this on, it cannot be turned off) Do not enable encryption on rooms that are bridged to IRC as this will make the bridge in that room fail to function.
This tab is where you will define who can do what in your room or the room you are managing. This is also a way to reference who has what power levels that is non-default (0), by selecting custom level you can set a power level value different than 0, 50 and 100.
These final two tabs are more for you and advanced users. Notifications defines the notification sound you'll hear if you get one on this room. Advanced will show you the current room version, the room's ID on the server and the dev tools which will give you a deep dive into the room's current state and settings. You should avoid devtools unless you know what you are doing.
Users in Element are listed on the right-hand side for the room. Clicking on a user provides more information on that user as well as commands you can do that will affect the user, ie: kick / ban. Depending on room settings and your powerlevel you can also mute and remove recent messages from a user.
Normal users can view this as well, however the Admin Tools will not be available to them. This is also where you can set a user's power level, simply click on the edit icon next to the level.
Verify sessions allows you to confirm that this user is who they say they are.
Commands you can use to manage the room:
In order to manage your settings you can simply click on your username in the top left to bring up a menu. Notification and Security & privacy are both quick links to tabs under All settings, feedback is for the Element developers.
In this tab you can change your display name (by default your full account name is used), your avatar, change your password, attach an email / or phone number to your account so other users can use that to search for you in addition to your account or display name.
Also in this tab you can set your language and region, for advanced users specify your identity and integrations servers or you can deactivate your account. Note that deactivating your account will render it no longer usable on the AfterNET homeserver.
This tab allows you to customize the look of Element.
This tab shows you a number of security related items including:
This tab has a core button that you may need to use if Element glitches and that is the Clear cache and reload button. This does not affect your keys or your key backups.
This tab also shows you the current version of Element as what as what servers are in use.
This is the virtual control user the bridge uses to communicate with you and you with it. When you join a room that is bridged to a IRC room the bridge will make a virtual user with your name and connect it to the network. Once this is done in addition to joining the IRC room you will receive an invite from this user, accept it so you can control your IRC side. Once you accept the invite it will put you in a room named AfterNET IRC Bridge status for the AfterNET bridge.
Once in the control room you will receive status messages from the appservice user such as connection state. You can also issue commands from this room, type !help in the room to see a list of what you can do.
For AfterNET bridge users that are logged into the AfterNET homeserver you'll notice one of the commands is the !storepass for authenticating to a IRC network's Auth/NickServ. You do not need to use this as we have modified the bridge so that if you log in and you're a AfterNET user you'll automatically be logged into your AuthServ account.
As stated earlier, the name format for bridged rooms on AfterNET IRC is #channel:afternet.org. So for example #linux on AfterNET IRC goes by #linux:afternet.org on the AfterNET homeserver.
Rooms not listed in the Room Explorer can be joined by doing /join #channel:afternet.org in your Matrix client.