Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adsr/irslackd
self-hosted IRC gateway to Slack
https://github.com/adsr/irslackd
hacktoberfest irc irc-client irc-gateway ircd slack slack-gateway
Last synced: 2 days ago
JSON representation
self-hosted IRC gateway to Slack
- Host: GitHub
- URL: https://github.com/adsr/irslackd
- Owner: adsr
- License: apache-2.0
- Created: 2018-04-14T23:25:20.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-12-20T18:08:48.000Z (about 1 month ago)
- Last Synced: 2025-01-14T13:10:03.269Z (9 days ago)
- Topics: hacktoberfest, irc, irc-client, irc-gateway, ircd, slack, slack-gateway
- Language: JavaScript
- Homepage:
- Size: 525 KB
- Stars: 162
- Watchers: 10
- Forks: 21
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# irslackd
[Slack ended IRC support][0] on May 15, 2018. So, we built our own Slack-IRC
gateway.irslackd is actively developed and used daily on a 1000+ user Slack workspace.
[![Build Status](https://travis-ci.org/adsr/irslackd.svg?branch=master)](https://travis-ci.org/adsr/irslackd)
### Features
* TLS-encrypted IRCd
* Multiple Slack accounts/workspaces
* Channels, private channels, DMs, group DMs, threads
* Receive reactions, message edits, message deletes, attachments
* Proper en/decoding of @user, #channel, @team tags### Setup
#### Using docker-compose
1. Clone irslackd and run docker-compose:
```
$ git clone https://github.com/adsr/irslackd.git
$ docker-compose up
```_Recommendation: Watch docker-compose build output for the generated certificate's fingerprint (used later for verification)._
1. Connect your IRC client to irslackd which listens on `127.0.0.1:6697`. See: [Configure your Slack account and IRC client](#configure-your-slack-account-and-irc-client)
#### Manual
1. [Install Node >=8.x][1] and npm. You can check your version of Node by
running `node --version`.2. Clone irslackd:
```
$ git clone https://github.com/adsr/irslackd.git
$ cd irslackd
$ npm install # Fetch dependencies into local `node_modules/` directory
```3. Run `./bin/create_tls_key.sh` to create a TLS key and cert. This will put
a private key and cert in `~/.irslackd`. Note the fingerprint.4. Run irslackd:
```
$ ./irslackd
```By default irslackd listens on `127.0.0.1:6697`. Set the command line
` to change the listen address.
options `-p ` and/or `-a### Configure your Slack account and IRC client
1. Follow the link below to obtain an irslackd token for your Slack workspace:
[![Authorize irslackd](https://platform.slack-edge.com/img/add_to_slack.png)][2]
Select the desired workspace in the dropdown in the upper right corner. Click
'Authorize', and copy the access token. It will look something like this:`xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef`
2. Connect to irslackd via your IRC client, e.g., WeeChat:
```
/server add irslackd_workspace localhost/6697
/set irc.server.irslackd_workspace.ssl on
/set irc.server.irslackd_workspace.ssl_fingerprint fingerprint-from-step-3
/set irc.server.irslackd_workspace.password access-token-from-step-5
/connect irslackd_workspace
```
Check the wiki for more [client configuration notes][5].3. Repeat steps 1 and 2 for each Slack workspace you'd like to connect to.
4. Enjoy a fresh IRC gateway experience.
### Contribute
* Add more [client configuration notes][5].
* File bug reports and feature requests via [Github issues][3].
* Feel free to submit PRs. Make sure to include tests.### Tests
* To run all tests: `npm test`
* To run a single test, e.g.: `npm test test_join`### Related projects
* https://github.com/ltworf/localslackirc (another gateway, Python)
* https://github.com/insomniacslk/irc-slack (another gateway, Go)
* https://github.com/wee-slack/wee-slack (a terminal client, WeeChat-based)
* https://github.com/erroneousboat/slack-term (a terminal client, Go)
* https://github.com/42wim/matterircd (an IRCd for Mattermost and Slack)
* https://github.com/dylex/slack-libpurple (Slack plugin for libpurple)### irslackd Slack workspace
* Feel free to join the [irslackd Slack workspace][4] for testing your
irslackd setup.[0]: https://my.slack.com/account/gateways
[1]: https://nodejs.org/
[2]: https://slack.com/oauth/authorize?client_id=2151705565.329118621748&scope=client
[3]: https://github.com/adsr/irslackd/issues
[4]: https://join.slack.com/t/irslackd/shared_invite/zt-5s6tvir7-Gp71YBznUVT5_z608xFQRg
[5]: https://github.com/adsr/irslackd/wiki/IRC-Client-Config