From 6feff1c7e6e4aa9f3f6c7a823f84868ce87c091d Mon Sep 17 00:00:00 2001 From: mguschin Date: Wed, 29 Apr 2026 20:09:17 +0300 Subject: [PATCH] Tg bridge. --- .gitignore | 1 + data/prosody/configuration/prosody.cfg.lua | 23 ++++++++++++++++++++++ docker-compose.yml | 18 +++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/.gitignore b/.gitignore index b7c816b..a3d3635 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .env data/prosody/certs +web-sites diff --git a/data/prosody/configuration/prosody.cfg.lua b/data/prosody/configuration/prosody.cfg.lua index 4dcd56b..3a5878e 100644 --- a/data/prosody/configuration/prosody.cfg.lua +++ b/data/prosody/configuration/prosody.cfg.lua @@ -25,6 +25,10 @@ modules_enabled = { -- Admin interface "admin_adhoc"; + + -- Gateway support + "privilege"; + "http_file_share"; }; modules_disabled = { @@ -75,6 +79,17 @@ VirtualHost "guschin.info" key = "/etc/prosody/certs/guschin.info.key"; certificate = "/etc/prosody/certs/guschin.info.crt"; } + privileged_entities = { + ["telegram.guschin.info"] = { + roster = "both"; -- auto add/remove Telegram contacts from roster + message = "outgoing"; -- reflect messages sent via official Telegram apps + iq = { + ["http://jabber.org/protocol/pubsub"] = "both"; -- PEP bookmarks + ["http://jabber.org/protocol/pubsub#owner"] = "set"; -- message display sync + ["urn:xmpp:http:upload:0"] = "get"; -- upload on behalf of users + }; + }; + } -- Secondary virtual host (user@xmpp.guschin.info) VirtualHost "xmpp.guschin.info" @@ -87,3 +102,11 @@ VirtualHost "xmpp.guschin.info" Component "muc.guschin.info" "muc" modules_enabled = { "muc_mam" } storage = "sql" + +-- HTTP file upload (XEP-0363) — used by slidgram for Telegram→XMPP attachments +Component "upload.guschin.info" "http_file_share" + http_file_share_access = { "telegram.guschin.info" } + +-- Telegram gateway (slidgram) +Component "telegram.guschin.info" + component_secret = os.getenv("SLIDGRAM_COMPONENT_SECRET") diff --git a/docker-compose.yml b/docker-compose.yml index 99d02ed..edcf68f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,24 @@ services: networks: - prosody + slidgram: + image: git.sr.ht/~nicoco/slidgram:latest + container_name: slidgram + environment: + SLIDGE_JID: telegram.guschin.info + SLIDGE_SECRET: ${SLIDGRAM_COMPONENT_SECRET} + SLIDGE_SERVER: prosody-xmpp + SLIDGE_PORT: 5347 + SLIDGE_UPLOAD_SERVICE: upload.guschin.info + volumes: + - ./data/slidgram:/var/lib/slidge + restart: unless-stopped + depends_on: + prosody: + condition: service_healthy + networks: + - prosody + networks: prosody: driver: bridge