diff options
Diffstat (limited to '')
-rw-r--r-- | README.md | 161 |
1 files changed, 105 insertions, 56 deletions
@@ -1,72 +1,121 @@ # docker-bitlbee-libpurple -This docker image includes bitlbee with a bunch of useful plugins: - - [facebook](https://github.com/jgeboski/bitlbee-facebook) - - [steam](https://github.com/jgeboski/bitlbee-steam) - - [skypeweb](https://github.com/EionRobb/skype4pidgin) - - [telegram](https://github.com/majn/telegram-purple) - - [hangouts](https://bitbucket.org/EionRobb/purple-hangouts) - - [slack](https://github.com/dylex/slack-libpurple) - - [sipe](https://github.com/tieto/sipe) - - [discord](https://github.com/sm00th/bitlbee-discord) - - [rocket.chat](https://bitbucket.org/EionRobb/purple-rocketchat) - - [mastodon](https://github.com/kensanata/bitlbee-mastodon) - - [matrix](https://github.com/matrix-org/purple-matrix) - - [signal](https://github.com/hoehermann/libpurple-signald) - - [icyque](https://github.com/EionRobb/icyque) - - [whatsapp](https://github.com/hoehermann/purple-gowhatsapp) (only in debian based images) - -The most significant being the [libpurple Slack plugin](https://github.com/dylex/slack-libpurple). As Slack is turning off its IRC gateway on May 15 2018, now is the time to spin up your own docker image and start using bitlbee instead. - -## Building and running the image -Build the image and tag it: -```bash -docker build -t bitlbee:latest . -``` +This repo is a [fork](https://github.com/ezkrg/docker-bitlbee-libpurple) -Then run it: -```bash -docker run -p 6667:6667 --name bitlbee -v /local/path/to/configurations:/var/lib/bitlbee \ - --restart=always --detach bitlbee:latest -``` +**NOTE**: the alpine image is currently unmaintained. -The local path to the configurations will contain the configuration as saved by -bitlbee. It is advisable to do so, as your configuration will be gone when -the docker image gets deleted. +The images are built and pushed to [dockerhub](https://hub.docker.com/r/terminaldweller/bitlbee_purple) automatically via github workflows. -## Setting up a Slack account -Connect with your IRC client to the host running the image. Then register with a password in the &bitlbee channel: -``` -/join &bitlbee -register <your password> -``` +Included plugins: -Then, go to [the Slack legacy token site](https://api.slack.com/custom-integrations/legacy-tokens) to acquire -an API token, which is necessary in order to log in. +- telegram via [tdlib-purple](https://github.com/BenWiederhake/tdlib-purple/) +- hangouts via [purple-hangouts](https://bitbucket.org/EionRobb/purple-hangouts) +- slack via dylex's fork of [slack-libpurple](https://github.com/dylex/slack-libpurple) +- discord via [purple-discord](https://github.com/EionRobb/purple-discord) +- rocket.chat via [purple-rocketchat](https://bitbucket.org/EionRobb/purple-rocketchat) +- mastodon via [bitlbee-mastodon](https://github.com/kensanata/bitlbee-mastodon) +- signal via [purple-presage](https://github.com/hoehermann/purple-presage) +- whatsapp via [purple-gowhatsmeow](https://github.com/hoehermann/purple-gowhatsapp.git) +- microsoft teams via [purple-teams](https://github.com/EionRobb/purple-teams) +- [icyque](https://github.com/EionRobb/icyque) +- [facebook](https://github.com/jgeboski/bitlbee-facebook) +- [steam](https://github.com/jgeboski/bitlbee-steam) +- [sipe](https://github.com/tieto/sipe) -Copy the token, register your slack account in bitlbee and enable the account: -``` -account add slack yourusername@whatever.slack.com thetoken -account on +for mattermost, use [matterircd](https://github.com/42wim/matterircd). + +for matrix, use [matrix2051](https://github.com/progval/matrix2051). + +## Building and Running + +```sh +docker build -f ./Dockerfile.debian -t bitlbee-purple . ``` -This should log your account in right away: +```sh +docker run -p 6667:6667 --name bitlbee -v /local/path/to/configurations:/var/lib/bitlbee --restart=always --detach bitlbee-purple ``` -<@root> Trying to get all accounts connected... -<@root> slack - Logging in: Requesting RTM -<@root> slack - Logging in: Connecting to RTM -<@root> slack - Logging in: RTM Connected -<@root> slack - Logging in: Loading Users -<@root> slack - Logging in: Loading conversations -<@root> slack - Logging in: Logged in + +An example compose file: + +```yaml +services: + bitlbee: + image: bitlbee-purple + deploy: + resources: + limits: + memory: 384M + logging: + driver: "json-file" + options: + max-size: "100m" + networks: + - bitlbeenet + ports: + - "127.0.0.1:8667:6667" + - "172.17.0.1:8667:6667" + restart: unless-stopped + user: "bitlbee:bitlbee" + command: + [ + "/usr/sbin/bitlbee", + "-F", + "-n", + "-u", + "bitlbee", + "-c", + "/var/lib/bitlbee/bitlbee.conf", + "-d", + "/var/lib/bitlbee", + ] + volumes: + - ./conf/bitlbee.conf:/var/lib/bitlbee/bitlbee.conf:ro + - userdata:/var/lib/bitlbee +networks: + bitlbeenet: +volumes: + userdata: ``` -By default, none of the channels you normally reside in will be joined. To join them, you first need to add them: +You can use [grype](https://github.com/anchore/grype) to check for CVEs affecting the image: + +```sh +grype bitlbee-purple --scope all-layers ``` -<@you> chat add slack general -<@root> Chatroom successfully added. + +## Debugging + +For debugging, you can use the docker compose file provided in the repo. Enable the plugin you want, and run. + +This command will run until we crash, after which it will print the backtrace and exit: + +```yaml +command: + [ + "gdb", + "-ex", + "'handle SIGPIPE nostop noprint pass'", + "-ex", + "run", + "-ex", + "bt", + "--args", + "/usr/sbin/bitlbee", + "-Dnv", + "-d", + "/var/lib/bitlbee", + ] ``` -Don't add the leading #. Adding private channels works the same way as public channels, both without the leading #. -Now, join the channel with /join #channnelname and you'll be good to go. +This command prints debug information for bitlbee: +```yaml +command: + [ + "/usr/sbin/bitlbee", + "-Dnv", + "-d", + "/var/lib/bitlbee", + ] +``` |