From 233bd0b70089a45bb8ead8af221037315a8b6bec Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Fri, 25 Mar 2022 04:07:30 +0300 Subject: [PATCH] Telegram bridge for Matrix (#33) mautrix-telegram. Telegram bridge for Matrix. Closes #31. Reviewed-on: https://git.skobk.in/skobkin/docker-stacks/pulls/33 --- mautrix-telegram/.env.dist | 12 ++++++++++++ mautrix-telegram/README.md | 16 +++++++++++++++ mautrix-telegram/data/.gitignore | 2 ++ mautrix-telegram/docker-compose.yml | 30 +++++++++++++++++++++++++++++ synapse/README.md | 10 ++++++++-- synapse/docker-compose.yml | 10 ++++++++++ 6 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 mautrix-telegram/.env.dist create mode 100644 mautrix-telegram/README.md create mode 100644 mautrix-telegram/data/.gitignore create mode 100644 mautrix-telegram/docker-compose.yml diff --git a/mautrix-telegram/.env.dist b/mautrix-telegram/.env.dist new file mode 100644 index 0000000..46be1d1 --- /dev/null +++ b/mautrix-telegram/.env.dist @@ -0,0 +1,12 @@ +# see https://mau.dev/mautrix/telegram/ +IMAGE_VERSION=latest + +HOST_USER=1337 +HOST_GROUP=1337 + +# Do not modify unless you know what you're doing! +# It is used by 'synapse' stack. +#HOST_DATA_DIR=./data + +LOG_MAX_SIZE=5m +LOG_MAX_FILE=5 \ No newline at end of file diff --git a/mautrix-telegram/README.md b/mautrix-telegram/README.md new file mode 100644 index 0000000..6f134c8 --- /dev/null +++ b/mautrix-telegram/README.md @@ -0,0 +1,16 @@ +# Telegram Bridge for Matrix + +## Create internal network for Matrix services + +You should've created this network while setting up [synapse](../synapse/README.md). But if you didn't, then do it +before trying to run this stack: + +```shell +docker network create --internal matrix +``` + +## Bridge setup documentation + +- https://docs.mau.fi/bridges/python/setup/docker.html?bridge=telegram + - https://docs.mau.fi/bridges/general/registering-appservices.html +- https://docs.mau.fi/bridges/python/telegram/relay-bot.html (optional) diff --git a/mautrix-telegram/data/.gitignore b/mautrix-telegram/data/.gitignore new file mode 100644 index 0000000..a68d087 --- /dev/null +++ b/mautrix-telegram/data/.gitignore @@ -0,0 +1,2 @@ +/* +!/.gitignore diff --git a/mautrix-telegram/docker-compose.yml b/mautrix-telegram/docker-compose.yml new file mode 100644 index 0000000..54e4092 --- /dev/null +++ b/mautrix-telegram/docker-compose.yml @@ -0,0 +1,30 @@ +# https://mau.dev/mautrix/telegram/ +version: '3.7' + +services: + mautrix-telegram: + image: "dock.mau.dev/mautrix/telegram:${IMAGE_VERSION:-latest}" + container_name: mautrix-telegram + volumes: + # This volume is also used by 'synapse' stack. + # Do not change the path unless you know what you're doing. + - "${HOST_DATA_DIR:-./data}:/data" + env_file: .env + environment: + UID: "${HOST_USER:-1337}" + GID: "${HOST_GROUP:-1337}" + extra_hosts: + - "host.docker.internal:host-gateway" + networks: + - default + - matrix + restart: unless-stopped + logging: + driver: "json-file" + options: + max-size: "${LOG_MAX_SIZE:-5m}" + max-file: "${LOG_MAX_FILE:-5}" + +networks: + matrix: + external: true diff --git a/synapse/README.md b/synapse/README.md index fc35d89..f29f57a 100644 --- a/synapse/README.md +++ b/synapse/README.md @@ -1,6 +1,12 @@ # [Synapse](https://matrix.org/docs/projects/server/synapse) ([Matrix.org](https://matrix.org/) server) -# Generating server configuration +## Create internal network for Matrix services + +```shell +docker network create --internal matrix +``` + +## Generate server configuration Do not forget to prepare `.env` file before running this. @@ -15,7 +21,7 @@ If you want to use full-fledged PostgreSQL instead of SQLite, you can check To use PostgreSQL running on the host machine, use [this](../_docs/access_database_on_host_from_docker.md) configuration. -# Running the server +## Run the server ```shell docker-compose up -d diff --git a/synapse/docker-compose.yml b/synapse/docker-compose.yml index 124be67..1da57d3 100644 --- a/synapse/docker-compose.yml +++ b/synapse/docker-compose.yml @@ -15,10 +15,20 @@ services: - "${DATA_PATH:-./data}:/data" # SSL certs directory - "${SSL_PATH:-./ssl}:/ssl:ro" + # Bridges + # Telegram + - "../mautrix-telegram/data:/bridges/mautrix-telegram/data:ro" env_file: .env + networks: + - default + - matrix restart: unless-stopped logging: driver: "json-file" options: max-size: "${LOG_MAX_SIZE:-5m}" max-file: "${LOG_MAX_FILE:-5}" + +networks: + matrix: + external: true