ircflu is an IRC bot written in Go

ircflu

ircflu is an IRC bot written in Go with a flexible message- & command-handler. Among its advanced features are a cat-server which allows you to forward incoming messages from a TCP socket straight to an IRC channel, and an integrated HTTP server ready to process incoming JSON-API calls.

At Tomahawk (http://tomahawk-player.org) we're all pretty much addicted to IRC. We use it not only to coordinate our development efforts and communicate, but also to get alerted about source code changes on GitHub, when a ticket gets updated or a service on our servers runs into an issue. We can even use it to trigger commands being executed on our servers, e.g. to deploy the latest source code.

ircflu can do all that for us... except the communicating. It's not that kind of chatbot.

Installation

Make sure you have a working Go environment. See the install instructions.

First we need to get the required dependencies. ircflu itself is part of that list so the main executable can depend on our sub-packages:

go get -u github.com/muesli/ircflu

Now we can build ircflu:

git clone git://github.com/muesli/ircflu.git
cd ircflu
go build

To run the application you will need to specify at least a few parameters:

./ircflu -irchost="some.server:6667" -ircchannel="#ircflu"

You can control which commands you want to be enabled with the '-commands' option. Be aware that enabling the 'exec' command allows authenticated users to remotely execute arbitrary commands on your machine! To start ircflu with all currently available commands run:

./ircflu -commands="alias,auth,exec,join,part,send" -authpassword="some_password" -irchost="some.server:6667" -ircchannel="#ircflu"

Run ircflu -help to see a full list of options!

Make it talk on IRC

When started with its default options, ircflu will listen for incoming connections on TCP port 12345. You can now send messages to an IRC channel from your favorite shell script or a terminal:

echo "This will be sent to the default channel on IRC." | netcat -q0 127.0.0.1 12345
echo "#somechannel This will be sent to a specific channel on IRC." | netcat -q0 127.0.0.1 12345
echo "#* This will be sent to all joined IRC channels." | netcat -q0 127.0.0.1 12345
echo "@someuser This will be sent to a specific user on IRC." | netcat -q0 127.0.0.1 12345

Remote controlling ircflu

It comes with a simplistic authentication system (!auth), supports aliases for commands (!alias) and executing external applications (!exec), forwarding their output to IRC.

To authenticate with ircflu, use the auth command in a private query with it:

!auth [your_auth_password]

Once you're authed, you can execute a command on ircflu's host:

!exec /usr/local/bin/some_executable

You can also make it join or part IRC channels:

!join #test
!part #test

Here's how you can create and use aliases:

!alias deploy = exec ssh myserver ~/deploy.sh
!deploy

Integrated web hooks support

ircflu also runs an integrated HTTP server on port 12346, processing incoming GitHub (on /github) & GitLab (on /gitlab) web-hook calls which are triggered by a commit to your git repository.

To connect GitHub with ircflu, go to your repository's settings page, click on 'Service Hooks' and then pick 'WebHook URLs' from the list. Add a new web-hook here, e.g.: 'http://your.ircflu.host:12346/github'

Whenever you push something to your repository now, ircflu will post a nice little summary of your changes on IRC.

Development

API docs can be found here.

Continuous integration: Build Status

Owner
Christian Muehlhaeuser
Geek, Gopher, Software Developer, Maker, Opensource Advocate, Tech Enthusiast, Photographer, Board and Card Gamer
Christian Muehlhaeuser
Similar Resources

Bot-template - A simple bot template for creating a bot which includes a config, postgresql database

bot-template This is a simple bot template for creating a bot which includes a c

Sep 9, 2022

go irc client for twitch.tv

go-twitch-irc This is an irc client for connecting to twitch. It handles the annoying stuff like irc tag parsing. I highly recommend reading the docum

Dec 27, 2022

Event-based stateful IRC client framework for Go.

GoIRC Client Framework Acquiring and Building Pretty simple, really: go get github.com/fluffle/goirc/client There is some example code that demonstra

Nov 9, 2022

A reverse proxy implementing IRC-over-WebSockets

webircproxy webircproxy is a reverse proxy that accepts IRCv3-over-WebSocket connections, then forwards them to a conventional ircd that speaks the no

Dec 22, 2021

Bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API

Bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API

bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)

Jan 4, 2023

girc is a flexible IRC library for Go

girc is a flexible IRC library for Go

girc, a flexible IRC library for Go Status girc is fairly close to marking the 1.0.0 endpoint, which will be tagged as necessary, so you will be able

Dec 19, 2022

An inline buildpack for deploying a mattermost-irc bridge

Matterbridge-Heroku An inline buildpack for hosting Matterbridge on Heroku. Heroku is a platform for easily deploying applications. A buildpack provid

Nov 26, 2022

Powered by Matterbridge, MatterAMXX is a plugin for AMXX that allows simple bridging between your game servers, Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, and more.

Powered by Matterbridge, MatterAMXX is a plugin for AMXX that allows simple bridging between your game servers, Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, and more.

Powered by Matterbridge, MatterAMXX is a plugin for AMXX that allows simple bridging between your game servers, Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, and more.

Dec 27, 2022

A bot based on Telegram Bot API written in Golang allows users to download public Instagram photos, videos, and albums without receiving the user's credentials.

InstagramRobot InstagramRobot is a bot based on Telegram Bot API written in Golang that allows users to download public Instagram photos, videos, and

Dec 16, 2021

Dlercloud-telegram-bot - A Telegram bot for managing your Dler Cloud account

Dler Cloud Telegram Bot A Telegram bot for managing your Dler Cloud account. Usa

Dec 30, 2021

Quote-bot - Un bot utilisant l'API Twitter pour tweeter une citation par jour sur la programmation et les mathématiques.

Description Ceci est un simple bot programmé en Golang qui tweet une citation sur la programmation tout les jours. Ce bot est host sur le compte Twitt

Jan 1, 2022

K8s-ingress-health-bot - A K8s Ingress Health Bot is a lightweight application to check the health of the ingress endpoints for a given kubernetes namespace.

k8s-ingress-health-bot A K8s Ingress Health Bot is a lightweight application to check the health of qualified ingress endpoints for a given kubernetes

Jan 2, 2022

Discord-bot - A Discord bot with golang

JS discord bots Install Clone repo git clone https://github.com/fu-js/discord-bo

Aug 2, 2022

Bot - Telegram Music Bot in Go

Telegram Music Bot in Go An example bot using gotgcalls. Setup Install the serve

Jun 28, 2022

Pro-bot - A telegram bot to play around with the community telegram channels

pro-bot 🤖 Pro Bot A Telegram Bot to Play Around With The Community Telegram Cha

Jan 24, 2022

Slack-emoji-bot - This Slack bot will post the newly created custom Slack emojis to the channel of your choice

Slack Emoji Bot This Slack bot will post the newly created custom Slack emojis t

Oct 21, 2022

Sex-bot - The sex bot and its uncreative responses

Sex-bot - The sex bot and its uncreative responses

Sex Bot The sex bot, made with golang! The sex bot can't hear the word "sexo" he

Nov 11, 2022

Feline-bot - Feline Bot for Discord using Golang

Feline Bot for Discord Development This bot is implemented using Golang. Feature

Feb 10, 2022

Simple yet customizable bot framework written in Go.

Simple yet customizable bot framework written in Go.

Introduction Sarah is a general-purpose bot framework named after the author's firstborn daughter. This comes with a unique feature called "stateful c

Dec 12, 2022
Comments
  • Fix compilation and a crash

    Fix compilation and a crash

    Hey,

    as we debugged together I wasn't correctly building my own fork and thus didn't actually test compilation of my code. This PR fixes compilation and a crash that happens when ircflu isn't connected to a server, that's useful to debug webhooks e.g.

    BR, Domme

Event-based stateful IRC client framework for Go.

GoIRC Client Framework Acquiring and Building Pretty simple, really: go get github.com/fluffle/goirc/client There is some example code that demonstra

Nov 9, 2022
Self hosted live chat server written in Go

goch is a self-hosted live-chat server written in Go. It allows you to run a live-chat software on your own infrastructure. You can create multip

Dec 11, 2022
IRC, Slack, Telegram and RocketChat bot written in go
IRC, Slack, Telegram and RocketChat bot written in go

go-bot IRC, Slack & Telegram bot written in Go using go-ircevent for IRC connectivity, nlopes/slack for Slack and Syfaro/telegram-bot-api for Telegram

Dec 20, 2022
IRC bot written in Go

GoRobot Yet Another IRC robot. Features: Multiple servers, multiple channels, conversations, flood control Administration via a specific set of IRC ch

Sep 26, 2019
The Tenyks IRC bot.

Tenyks is a computer program designed to relay messages between connections to IRC networks and custom built services written in any number of languages.

Sep 26, 2022
This is my first IRC bot for launch ddos attack, Write on Go language.
This is my first IRC bot for launch ddos attack, Write on Go language.

This is my first IRC bot for launch ddos attack, Write on Go language. For education purpose only. Please test it on your lab, And i create this for join university in the future not for attack anyone server with out any permission!!!

Sep 23, 2022
IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port
IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port

IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port

Nov 10, 2021
IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port
IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port

This is my first IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port, This bot is write on Go language. For education purpose only. Please test it in your lab. And i create this for join university in the future not for attack anyone server with out any permission!!!

Jan 2, 2023
Jaken - A general purpose IRC bot featuring user acls and arbitrary plugins

Design principles This bot is based on the premise of a loosely coupling between

Jul 21, 2022
A modern IRC server (daemon/ircd) written in Go.
A modern IRC server (daemon/ircd) written in Go.

Oragono is a modern IRC server written in Go. Its core design principles are: Being simple to set up and use Combining the features of an ircd, a serv

Dec 31, 2022