Ircstream

Ircstream is an IRC service for broadcasting recent changes events from Wikimedia wikis. It was created in 2024 as new backend for irc.wikimedia.org and is developed by Faidon at https://github.com/paravoid/ircstream
== Service ==
The service is currently hosted on irc1003.wikimedia.org and irc2003.wikimedia.org. Events are broadcasted from Wikikube pods (and a handful of remaining baremetal MediaWiki appservers) via UDP packets sent to port 9390. The ircstream.wikimedia.org CNAME points to the currently active server.
== Administration ==
=== Adding/removing hosts ===
Two steps are needed to add/remove ircstream servers in the Mediawiki Wikikube config:
# The network policies for wikikube need to be updated to, e.g. https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/1076730
# The mediawiki-config needs to be updated to reference the nodes, e.g. https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/1050261
=== Updating the Debian package ===
The upstream repository includes a debian/ directory, so it's a simple rebuild of what's shipped there.
== Use ==
We now have a a vastly superior EventStreams service providing machine-readable push notifications over HTTP in JSON format at https://stream.wikimedia.org/v2/stream/recentchange, but until the key consumers of the IRC recent changes feed have migrated, this old service remains vital. No new services should use this service.
== Bots still using the legacy setup ==
Overview of legacy setup bots
Bot name 	Description 	Homepage 	Confirmed to actively consume the IRC feed 	If so, bug for eventstream port
ClueBot 	ClueBot NG is an anti-vandalism bot that tries to detect and revert vandalism quickly and automatically 	https://github.com/cluebotng/bot/ and https://github.com/cluebotng/bot/	 	
COIBot 	COIBot is a bot that tries to track edits that are made by users who may have a conflict of interest 	https://meta.wikimedia.org/wiki/User:COIBot/COIBot 	 	
CVNBot 	CVNBot (previously known as SWMTBot) is the main IRC bot software used by the Countervandalism Network to interpret recent changes streams and provide a feed on IRC for patrollers to work from 	m:CVNBot (gerrit) (phab) 	Yes, ~30 bots with some number of active users 	Part of phab:T327136, unlikely to be done anytime soon given that it requires a complete rewrite.
EarwigBot 	EarwigBot is a Python bot that edits Wikipedia and interacts over IRC 	https://github.com/earwig/earwigbot 	 	
EstadoEdita 	Bot which publishes Wikipedia edits from the State of Chile to Twitter, apparently defunct since no posts after May 2023 	https://github.com/jsajuria/estadoedita/ 	seems defunct 	n/a
EyeInTheSkyBot	This is a stalk bot for edits on Wikipedia. It uses the RC IRC feed on irc.wikimedia.org to look for edits, and reports stalked edits in ##eyeinthesky on irc.libera.chat 	https://github.com/stwalkerster/eyeinthesky 	yes 	https://github.com/stwalkerster/eyeinthesky/issues/61
FinlandEdit 	Bot which publishes Wikipedia edits from different Finnish Government IPs to Twitter (defunct since July 2023) and Mastodon 	https://github.com/duukkis/finlandedits 	 	https://github.com/edsu/anon/issues/144
KrdBot 	The bot is written in Perl and based on the MediaWiki::Bot-Module. It runs continuously automatically or manually assisted at specified intervals, depending on tasks (see below). It normally does not more than one edit per minute on the same task 	https://commons.wikimedia.org/wiki/User:Krdbot 	 	
OverheidsEdits	This Twitter bot warns you when the Dutch government anonymously edits Wikipedia articles. Seems defunct, no posts to Twitter since July 2023 and the listed Mastodon URL is dead too 	 	seems defunct 	
Huggle 	Huggle is a diff browser intended for dealing with vandalism and other unconstructive edits on Wikimedia projects, written in C++ using the Qt framework. Huggle is a desktop tool, not a bot, but it uses IRC as one of three RC sources (alongside the often-unreliable XmlRcs and RecentChanges polling). IRC has been recently preferred by users due to its reliability (compared to XmlRcs) and speed (compared to the polling API).	m:Huggle (GitHub) (Phab) 	yes 	none
WikiMon 	Watch the RecentChanges IRC feed with Python. Support for various WikiMedia projects and languages. At the moment, WikiMon's primary usage pattern is broadcasting changes over WebSocket 	https://github.com/hatnote/wikimon 	Yes, actively used by http://listen.hatnote.com/	none
Pastilles 	Watch the RecentChanges IRC feed with 	https://fr.wikipedia.org/wiki/Utilisateur:PastilleBot 	yes 	none
== See also ==
* https://github.com/paravoid/ircstream (Upstream homepage)
* m:IRC/Bots
Category:IRC
Category:SRE Infrastructure Foundations