commit b07d2fa6a4e29e50de5730cb6c08affc457a2c41 Author: Stanislav N. aka pztrn Date: Mon Oct 7 14:00:07 2019 +0500 Initial commit. diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..73bcd9f --- /dev/null +++ b/.drone.yml @@ -0,0 +1,15 @@ +--- +kind: pipeline +type: docker +name: build + +steps: +- name: docker + image: plugins/docker + settings: + username: + from_secret: dockerhub_user + password: + from_secret: dockerhub_password + repo: pztrn/bitlbee + auto_tag: true \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..46fb5f7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,216 @@ +FROM alpine:latest + +ENV BITLBEE_COMMIT=bef5d78031b01c2d443c7c949727c7baca298c9c \ + DISCORD_COMMIT=aa0bbf2df851b1fd1b27164713121d20c610b7c5 \ + MATTERMOST_COMMIT=e21f18c4d868bf6db4e3d436eddcaca5da5effe0 \ + PUSHBULLET_COMMIT=8a7837c13a3ff445325aa20cf1fb556dbf4a76f0 \ + ROCKETCHAT_COMMIT=826990b48f41d77e1280f5fa51082ed2f5115ddf \ + SKYPE_COMMIT=2f5a3e2413c9c69722d26fb4432190cf1f6458d9 \ + SLACK_COMMIT=be97802c7fd0b611722d2f551756e2a2672f6084 \ + TELEGRAM_COMMIT=44a1349bf4c57e8b648dae113ec7cf3bdbde0789 \ + VK_COMMIT=51a91c83561741996a07af46cba512b9c86b8e98 \ + RUNTIME_DEPS=" \ + cyrus-sasl \ + cyrus-sasl-crammd5 \ + cyrus-sasl-digestmd5 \ + cyrus-sasl-scram \ + cyrus-sasl-plain \ + glib \ + gnutls \ + json-glib \ + libevent \ + libgcrypt \ + libotr \ + libpurple \ + libpurple-bonjour \ + libpurple-oscar \ + libpurple-xmpp \ + libsasl \ + openldap \ + protobuf-c" + +# bitlbee +RUN apk add --update --no-cache --virtual build-dependencies \ + build-base \ + git \ + gnutls-dev \ + libevent-dev \ + libotr-dev \ + pidgin-dev \ + openldap-dev; \ + apk add --no-cache --virtual runtime-dependencies ${RUNTIME_DEPS}; \ + cd /root; \ + git clone -n https://github.com/bitlbee/bitlbee; \ + cd bitlbee; \ + git checkout ${BITLBEE_COMMIT}; \ + cp bitlbee.conf /bitlbee.conf; \ + mkdir /bitlbee-data; \ + ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --debug=0 --events=libevent --ldap=1 --otr=plugin --purple=1 --config=/bitlbee-data; \ + make; \ + make install; \ + make install-dev; \ + make install-etc; \ + adduser -u 1000 -S bitlbee; \ + addgroup -g 1000 -S bitlbee; \ + chown -R bitlbee:bitlbee /bitlbee-data; \ + touch /var/run/bitlbee.pid; \ + chown bitlbee:bitlbee /var/run/bitlbee.pid; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# discord +RUN apk add --no-cache --virtual build-dependencies \ + autoconf \ + automake \ + build-base \ + git \ + glib-dev \ + libtool; \ + cd /root; \ + git clone -n https://github.com/sm00th/bitlbee-discord; \ + cd bitlbee-discord; \ + git checkout ${DISCORD_COMMIT}; \ + ./autogen.sh; \ + ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl; \ + make; \ + make install; \ + strip /usr/local/lib/bitlbee/discord.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# mattermost +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + discount-dev \ + git \ + json-glib-dev \ + pidgin-dev; \ + cd /root; \ + git clone -n https://github.com/EionRobb/purple-mattermost; \ + cd purple-mattermost; \ + git checkout ${MATTERMOST_COMMIT}; \ + make; \ + make install; \ + strip /usr/lib/purple-2/libmattermost.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# pushbullet +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + git \ + json-glib-dev \ + pidgin-dev; \ + cd /root; \ + git clone -n https://github.com/EionRobb/pidgin-pushbullet; \ + cd pidgin-pushbullet; \ + git checkout ${PUSHBULLET_COMMIT}; \ + make; \ + make install; \ + strip /usr/lib/purple-2/libpushbullet.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# rocket.chat +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + discount-dev \ + json-glib-dev \ + mercurial \ + pidgin-dev; \ + cd /root; \ + hg clone -U https://bitbucket.org/EionRobb/purple-rocketchat; \ + cd purple-rocketchat; \ + hg update ${ROCKETCHAT_COMMIT}; \ + make; \ + make install; \ + strip /usr/lib/purple-2/librocketchat.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# skype +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + git \ + json-glib-dev \ + pidgin-dev; \ + cd /root; \ + git clone -n https://github.com/EionRobb/skype4pidgin; \ + cd skype4pidgin; \ + git checkout ${SKYPE_COMMIT}; \ + cd skypeweb; \ + make; \ + make install; \ + strip /usr/lib/purple-2/libskypeweb.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# slack +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + git \ + pidgin-dev; \ + cd /root; \ + git clone -n https://github.com/dylex/slack-libpurple; \ + cd slack-libpurple; \ + git checkout ${SLACK_COMMIT}; \ + make; \ + make install; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# telegram +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + git \ + libgcrypt-dev \ + pidgin-dev; \ + cd /root; \ + git clone -n https://github.com/majn/telegram-purple; \ + cd telegram-purple; \ + git checkout ${TELEGRAM_COMMIT}; \ + git submodule update --init --recursive; \ + ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --disable-libwebp; \ + make; \ + make install; \ + strip /usr/lib/purple-2/telegram-purple.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# vkontakte +RUN apk add --no-cache --virtual build-dependencies \ + build-base \ + cmake \ + libtool \ + libxml2-dev \ + mercurial \ + pidgin-dev; \ + cd /root; \ + hg clone -U https://bitbucket.org/olegoandreev/purple-vk-plugin; \ + cd purple-vk-plugin; \ + hg update ${VK_COMMIT}; \ + cd build; \ + cmake ..; \ + make; \ + make install; \ + strip /usr/lib/purple-2/libpurple-vk-plugin.so; \ + rm -rf /root; \ + mkdir /root; \ + apk del --purge build-dependencies + +# Install runtime dependencies +RUN apk add --no-cache ${RUNTIME_DEPS} + +EXPOSE 6667 +VOLUME /bitlbee-data + +USER bitlbee +ENTRYPOINT ["/usr/local/sbin/bitlbee", "-F", "-n", "-d", "/bitlbee-data", "-c", "/bitlbee.conf"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..8e18720 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Bitlbee + +Container for Bitlbee based on Alpine Linux. It is running latest bitlbee built with libpurple support from git as well as plugins. + +Currently available plugins: + +* [Discord](https://github.com/sm00th/bitlbee-discord) +* [Mattermost](https://github.com/EionRobb/purple-mattermost) +* [Pushbullet](https://github.com/EionRobb/pidgin-pushbullet) +* [Rocket.Chat](https://bitbucket.org/EionRobb/purple-rocketchat) +* [Skype](https://github.com/EionRobb/skype4pidgin) +* [Slack](https://github.com/dylex/slack-libpurple) +* [Telegram](https://github.com/majn/telegram-purple) +* [VK](https://bitbucket.org/olegoandreev/purple-vk-plugin) + +## ToDos (maybe or not) + +* http://sipe.sourceforge.net/