IRC Network

Documentation for irc.f-hub.org

Introduction to our IRC network

fhub-logo.png

Our IRC network can be accessed with an IRC client on irc.f-hub.org via port 6697 (SSL only). It runs on the modern IRCv3 capable IRCd Ergo.chat. It therefore comes with built in history and multi-client connections out of the box and no additional bouncer is required. We also fully integrate with XMPP and Matrix via our own gateways that allow federated access to any IRC channel.

Registering accounts

Accounts from F-hub.org are automatically registered on our IRC network can can be used to authenticate via SASL login. In addition it is possible to register independent accounts through NICKSERV like on other IRC networks. Please contact us in those rare cases where there is a conflict with an existing user account name.

Channel history

Channel history is automatically logged by the network itself (via IRCv3 history standard) and stored for 30 days. It can be easily accessed by history capable IRC clients or alternatively via /history #channel 6h or similar, pleae see the full guide here.

IRC tutorial

If you are new to IRC, please refer to our IRC tutorial that explains basic features and commands.

IRCv3 capable clients are strongly recommended for accessing our network. For Android, Goguma is well supported and recommended.

We also recommend using XMPP to connect via our XMPP gateway. The best cross-platform desktop client for this is probably Gajim.

Webclients

We offer access via an easy to use Kiwi-IRC webclient that supports IRCv3 history and file-uploads (todo). You can also connect with our XMPP Movim instance (details to follow) or ConverseJS XMPP web-client.

Helper bot

We run a helpful little bot that can be invited to any channel via /invite bitbot. Type !help to ask the bot for instructions. You can learn more about it on our dedicated wiki page here.

Gateways

Our IRC network also offers gateway access from federated XMPP and Matrix accounts. Please note that due to the federated nature of these systems chat-logs may be stored for a longer period on connected third party servers and the gateways themselves.

Common IRC commands

Ergo IRCd

Our IRC network runs on the modern IRCv3 capable IRCd Ergo.chat. It therefore comes with additional built in features and network services that can be accessed via in client commands.

Quick cheat sheet

Register an account (for multi-client use): /msg NickServ register mySecretPassword validEmailAddress@example.com

Note: Only SASL auth is supported and you can not change nickname.

Delete an account with (follow instructions): /msg NickServ unregister *yournick*

Turn on persistent connection mode (bouncer): /msg NickServ set always-on true

Play back channel history on legacy clients: /history #channel 12h (time duration or message count)

Or set it to autoreply the latest messages: /msg NickServ set autoreplay-lines 25

Register a channel: /msg ChanServ register #myChannel

Set channel mode: /mode #channel +/-attribute

+p - Sets the channel as invisible in /list.

+m - Mute users who are not opped/hopped/voiced.

+R - Only registered nicks are allowed in.

+M - Only registered nicks are allowed to talk.

Kick user from channel: kick #channel nickname [reason]

Set user mode in current channel: /mode #channel +/-attributes nickname

+o - User is an operator (prefix @).

+h - User is a half-op (prefix %).

+v - User has is unmuted (prefix +).

Help messages for service:

/msg NickServ HELP

/msg ChanServ HELP

You can use /NS or /CS instead.

Other useful commands:

/join #channel - Joins the specified channel.

/part #channel - Leave the specified channel.

/nick nickname - Changes your nick (unless SASL authed).

/names #channel - Shows the nicks of all users on #channel.

/msg nickname message - Sends a private message to a user.

/me action - Prints "yourname action"

Channel bot

We provide an advanced IRCv3 channel bot that provides many small usability improvements for IRC users and channel admins. The bot is based on Bitbot and supports a wide range of modules, but documentation of them is a bit lacking.

Basic commands

(this is a stub, check back later for more details)

The bot responds if its name is added to the front of a message like this bitbot: or to certain commands starting with "!" like !help. You can also /msg the bot privately for registering your IRC nick with the bot (more on this further below).

The bot will join a channel by inviting it via /invite bitbot. Once it joined the channel, basic commands are available to all users.

!modules list (extended by a !more)will show a list of available addons. You can get a short explanation by sending !help <module name> or a list of available command via !commands <module name>.

You can try out most of the commands on our #botplayground channel. Please do not spam other channels with this :)

The !in command will for example set a user-specific reminder with a message like this !in 3h don't forget to stretch which will cause the bot to send a message 3 hours later that notifies your nick and repeats the message.

Another useful feature are votes. Send !votes to see a list of currently open polls. !commands vote will show you the possible options for this module. A poll can be responded to with !vote <id> [choice].

Commands for channel operators

(this is a stub, check back later for more details) 

Bitbot also offers a range of features to channel operators such as link previews, auto-moderation and spam block-lists.

It is also possible to add automated RSS feed checks for news and project updates to a channel. Currently our bot polls the remote RSS feeds every 10 minutes. The command to add a feed is: !rss add <feed url>. list and remove are other options.

The format of the feed can be adapted with this command: !config c rss-format $longtitle: $title by $author - $link

The bot also allows monitoring Mumble voice channels for activity and usage statistics. If you need bridging of the chat, this can be done with our Matterbridge.

Git forge integration

(this is a stub, check back later for more details. Probably broken right now!) 

Bitbot can also be integrated with git-forge webhooks for automatically posting about new issues and PRs on your projects Github, Gitlab or Gitea/Forgejo instance.

First you need to generate a bitbot API key like this: /msg bitbot apikey add git-yournick /api/github /api/gitea /api/gitlab You can remove the api endpoints that you don't need. This key generation probably needs additional permissions.

Afterwards you can enabled the webhook in an IRC channel for a single repository: !webhook add <organisation>/<repository> or an whole organisation !webhook add <organisation>.

The webhook URL needs to follow this example: https://bitbot.f-hub.org/api/github?key=<apikey> . Replace github with gitea (also for Forgejo) or gitlab respectively. This needs to be configured in the git-forge.

Fediverse integration

(this is a stub, check back later for more details)

Bitbot allows interacting with ActivityPub  compatible social media websites.

Authentication

(this is a stub, check back later for more details)

For some of the more advanced features you need to first register your IRC nick with the bot like this:  /msg bitbot register <password here> (the password is a new one for the bot, not your SASL password).

Once you are registered with the bot you can ask one of our network operators to get elevated permissions for further bot configuration.

Gateways for XMPP and Matrix

Built-in gateways

The main IRC network on F-hub.org provides gateways (sometimes called portals) to allow connections from XMPP and Matrix accounts. For this we host our own instances of Biboumi (XMPP) and Appservice-IRC (Matrix). All IRC channels are automatically available via these gateways and should work almost like native XMPP or Matrix channels.

How to connect from XMPP

IRC Channels can be acessed like regular XMPP MUCs via #channel@irc.f-hub.org. It is possible to connect both with internal and external XMPP accounts. Please be assured that despite the warning in your XMPP client, our IRC network does not expose your JID on public channels. It is possible to authenitcate via this bridge with your IRC SASL account, learn more about the gateway usage here. You can easily share invite-links for XMPP here.

How to connect from Matrix

Room addresses syntax is something like #irc_#channel:matrix.f-hub.org. This makes it possible to connect with external Matrix accounts. We do not plan to provide internal Matrix accounts. It is possible to authenitcate via this bridge with your IRC SASL account, learn more about the portal usage here. You can easily share invite-links for Matrix here.

Privacy notice

Please be aware that due to the federated nature of these services chat-logs and user names will become available to 3rd party services and may be retained indefinitly by them. No sensitive internal user-data from F-hub.org is shared however.

If you require higher levels of privacy we recommend switching to end-to-end encrypted private chats available via our XMPP service.

Bridges to other chat systems

We provide chat bridges/gateways to other networks, but please be aware that they are often in breach of those services' terms and various privacy caveats apply.

Matterbridge bot bridge

We run a Matterbridge instance that allows linking channels though a single bot account. Due to the RELAYMSG support of our IRC network, user-names are displayed nicely on the IRC side, but overall the bridging quality is not comparable to other options below. The bridge needs to be set up manually, so please get in contact with us if you want a specific channel bridged to an external service this way. Due to the complexity involved, we can not offer all options theoretically provided by Matterbridge, but services such as Discord, Telegram, Mattermost, Rocket-Chat and many others should work. Depending on the external network this can sometimes require admin permissions on the remote channel.

Mumble chat bridge

Matterbridge allows linking the chat of a Mumble channel to our IRC network. Please let us know if you would like to add a voice channel to your IRC channel and link it via Matterbridge and our channel helper bot. There might also be an option in the future for automatic transscriptions and TTS via the doty bridge.

Matrix double-bridging

Due to certain technical considerations it is against the ToS of some other IRC networks like libera.chat to directly plumb Matrix rooms that are already bridged with our appservice-irc bridge/gateway (see further below). As a work-around we can bridge such rooms with Matterbridge, but the usability will be somewhat degraded. Please get in contact with us if you need such bridging and we can discuss the details.

Advanced Discord bridge

While we do not recommend using Discord, we are aware that many FOSS communities have channels there. Luckily there is a very nice bridge available to link Discord channels to IRC called Dibridge. We have been running several instances of this bridge for a while now and the usablility is quite nice from both sides of the bridge. Please get in contact with us if you want a Discord channel bridged this way. You will need to have admin rights for the Discord server to configure the bridge with us. Please note that Discord bots and other Discord bridges are currently not relayed to IRC by this bridge.

External XMPP channels

We are still investigating how to best bridge external XMPP channels, although basic bot bridging via Matterbridge is already possible. Please get in contact with us if you have recommendation or would like such a channel bridged.

Room plumbing with Matrix bridge

If you have an existing Matrix room you would like to plumb to an IRC channel on our network, please get in contact with us. Usually it is sufficient to invite the bridge-bot (appservice-irc:matrix.f-hub.org) to the channel and then we can plumb it to our IRC network.

Built-in gateways for XMPP and Matrix

The main IRC network on F-hub.org also provides gateways (sometimes called portals) to allow connections from XMPP and Matrix accounts. All our IRC channels are automatically available via these gateways and should work almost like native XMPP or Matrix channels. Learn more about this here.