Coder Social home page Coder Social logo

matterircd's Introduction

matterircd

Minimal IRC server which integrates with mattermost
Tested on Windows / Linux

Most of the work happens in mm-go-irckit (based on github.com/shazow/go-irckit)

Docker

Run the irc server on port 6667. You'll need to specify -bind 0.0.0.0:6667 otherwise it only listens on 127.0.0.1 in the container.

docker run -p 6667:6667 42wim/matterircd:latest -bind 0.0.0.0:6667

Now you can connect with your IRC client to port 6667 on your docker host.

Compatibility

  • Matterircd v0.8.1 works with mattermost 3.0.0 and higher 3.1.0 release
  • Matterircd v0.5 works with mattermost 1.4.0 until 2.2.0 release
  • Matterircd v0.2 works only on mattermost < 1.4.0

Master branch of matterircd should always work against latest STABLE mattermost release.
If you want to run matterircd with mattermost DEV builds, use the develop branch of matterircd.

Features

  • support direct messages / private channels
  • auto-join/leave to same channels as on mattermost
  • reconnects with backoff on mattermost restarts
  • support multiple users
  • support channel backlog (messages when you're disconnected from IRC/mattermost)
  • search messages (/msg mattermost search query)
  • scrollback support (/msg mattermost scrollback #channel limit)
  • restrict to specified mattermost instances
  • set default team/server
  • WHOIS, WHO, JOIN, LEAVE, NICK, LIST, ISON, PRIVMSG, MODE, TOPIC, LUSERS, AWAY support
  • support TLS (ssl)
  • support LDAP logins (mattermost enterprise) (use your ldap account/pass to login)
  • &users channel that contains members of all teams (if mattermost is so configured) for easy messaging
  • supports mattermost roles (shows admins with @ status for now)
  • gitlab auth hack by using mmtoken cookie (see 42wim#29)

Binaries

You can find the binaries here

  • For use with mattermost 3.0.0+ v0.8.1
  • For use with mattermost 1.4.0-2.2.0 v0.5
  • For use with mattermost <1.4.0 v0.2

Building

Go 1.6+ is required Make sure you have Go properly installed, including setting up your [GOPATH] (https://golang.org/doc/code.html#GOPATH)

cd $GOPATH
go get github.com/42wim/matterircd

You should now have matterircd binary in the bin directory:

$ ls bin/
matterircd

Usage

Usage of ./matterircd:
  -bind string
        interface:port to bind to. (default "127.0.0.1:6667")
  -debug
        enable debug logging
  -interface string
        interface to bind to (deprecated: use -bind)
  -mminsecure
        use http connection to mattermost
  -mmserver string
        specify default mattermost server/instance
  -mmteam string
        specify default mattermost team
  -port int
        Port to bind to (deprecated: use -bind)
  -restrict string
        only allow connection to specified mattermost server/instances. Space delimited
  -tlsbind string
        interface:port to bind to. (e.g 127.0.0.1:6697)
  -tlsdir string
        directory to look for key.pem and cert.pem. (default ".")
  -version
        show version

Matterircd will listen by default on localhost port 6667. Connect with your favorite irc-client to localhost:6667

For TLS support you'll need to generate certificates.
You can use this program generate_cert.go to generate key.pem and cert.pem

Mattermost user commands

Login

/msg mattermost login <server> <team> <username/email> <password>

Or if it is set up to only allow one host:

/msg mattermost login <username/email> <password>

Search

/msg mattermost search query

Scrollback

/msg mattermost scrollback <channel> <limit>
e.g. /msg mattermost scrollback #bugs 100 shows the last 100 messages of #bugs

Docker

A docker image for easily setting up and running matterircd on a server is available at docker hub.

Examples

  1. Login to your favorite mattermost service by sending a message to the mattermost user login

  2. You'll be auto-joined to all the channels you're a member of channel

  3. Chat away chat mmchat

Also works with windows ;-) windows

If you use chrome, you can easily test with circ

matterircd's People

Contributors

42wim avatar xyproto avatar yuvipanda avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.