Most of the work happens in mm-go-irckit (based on github.com/shazow/go-irckit)
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.
- Matterircd v0.15.0 works with slack (initial support) and mattermost 3.8.x - 3.10.0, 4.x
Master branch of matterircd should always work against latest STABLE mattermost release.
- support direct messages / private channels / edited messages
- 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, KICK, INVITE 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 https://github.com/42wim/matterircd/issues/29)
You can find the binaries here
- For use with mattermost 3.8.0 and higher v0.15.0
cd $GOPATH go get github.com/42wim/matterircd
You should now have matterircd binary in the bin directory:
$ ls bin/ matterircd
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 -mmskiptlsverify skip verification of mattermost certificate chain and hostname -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
/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>
/msg mattermost search query
/msg mattermost scrollback <channel> <limit> e.g. /msg mattermost scrollback #bugs 100 shows the last 100 messages of #bugs
Slack user commands
Get a slack token on https://api.slack.com/custom-integrations/legacy-tokens
/msg slack login <token>
A docker image for easily setting up and running matterircd on a server is available at docker hub.
Login to your favorite mattermost service by sending a message to the mattermost user
You'll be auto-joined to all the channels you're a member of
Also works with windows ;-)
If you use chrome, you can easily test with circ