diff --git a/content/posts/0000003-une-tus-grupos-de-telegram-y-xmpp-con-matterbridge.xml b/content/posts/0000003-une-tus-grupos-de-telegram-y-xmpp-con-matterbridge.xml index 520c3b9..4194bd8 100644 --- a/content/posts/0000003-une-tus-grupos-de-telegram-y-xmpp-con-matterbridge.xml +++ b/content/posts/0000003-une-tus-grupos-de-telegram-y-xmpp-con-matterbridge.xml @@ -28,5 +28,121 @@
Ahora en el menú de Botfather seleccionaremos /mybots y pulsaremos sobre nuestro bot recien creado, tras hacer esto pulsaremos sobre "Bot Settings/Group Privacy" y seleccionaremos "Turn Off".
Este paso es necesario para que el bot de Telegram pueda leer los mensajes de los usuarios que no le mencionan directamente y enviarlos a XMPP.
+ +Ahora tendrémos que crear un usuario de XMPP para el bot, no uses el tuyo propio, crear el usuario sale del ámbito del tutorial debido a la amplia cantidad de opciones posibles en mi caso lo he creado en mi propia instancia con prosodyctl register.
+ +El siguiente paso es escoger el dominio muc que vamos a usar, en mi caso voy a hacerlo en prueba.owlcode.tech que voy a crearen mi propio servidor.
+ +Puedes escoger un dominio muc que permita abrir salas sin problemas, pero asegurate de crearlas con tu usuario personal antes de añadirlas al bridge o el owner de la sala será el bridge lo cual puede ser problemático.
+ +Voy a dejar instrucciones opcionales para crear nuestro propio dominio muc en un prosody ya configurado para favorecer la descentralización:
+ +En primer lugar abriremos en nuestro editor de texto de preferencia la configuración de prosody.
+ +sudo vim /etc/prosody/prosody.cfg.lua
+ Imaginemos que tenemos un VirtualHost como este.
+
+VirtualHost "host.postmarketos-en-espanol.freemyip.com"
+ enable = true
+ admins = { 'admin@example.com' }
+ disco_items = {
+ { 'postmarketos-en-espanol.freemyip.com', 'Canales públicos' }
+ }
+ Component "postmarketos-en-espanol.freemyip.com" "muc"
+ name = "Salas de chat de Postmarketos en Español"
+ restrict_room_creation = true
+ enforce_registered_nickname = true
+ component_admins_as_room_owners = true
+
+
+ Al final de este virtualhost tan solo tendrémos que añadir otro componente muc y actualizar los disco_items.
+ +Recuerda añadir a tu usuario de XMPP como admin.
+ +
+VirtualHost "host.postmarketos-en-espanol.freemyip.com"
+ enable = true
+ admins = { 'admin@example.com' }
+ disco_items = {
+ { 'postmarketos-en-espanol.freemyip.com', 'Canales públicos' },
+ { 'prueba.owlcode.tech', 'Canales de prueba' }
+ }
+ Component "postmarketos-en-espanol.freemyip.com" "muc"
+ name = "Salas de chat de Postmarketos en Español"
+ restrict_room_creation = true
+ enforce_registered_nickname = true
+ component_admins_as_room_owners = true
+ Component "prueba.owlcode.tech" "muc"
+ name = "Sala de prueba para tutorial."
+ restrict_room_creation = true
+ enforce_registered_nickname = true
+ component_admins_as_room_owners = true
+
+
+ Generamos un certificado TLS y un registro DNS para prueba.owlcode.tech.
+ +sudo certbot certonly
+
+ Y respondemos las preguntas.
+ +Importamos los certificados en prosody:
+ +sudo /usr/bin/prosodyctl --root cert import /etc/letsencrypt/live
+
+ Ahora cuando reiniciemos el servidor de prosody nuestro nuevo servidor de salas muc estará listo.
+ +Deberemos unirnos con nuestra cuenta de admin a la sala que queramos enlazar, en este caso prueba@prueba.owlcode.tech.
+ +Una vez hecho esto marcamos en las opciones de la sala como persistente y buscable publicamente para que se pueda buscar desde search.jabber.network y le ponemos nombre y descripción a la sala. (Opcional)
+ +Hecho esto podemos empezar a configurar Matterbridge.
+ +sudo useradd -m -d /var/lib/matterbridge matterbridge
+
+ sudo vim /var/lib/matterbridge/matterbridge.toml
+
+
+[xmpp.pruebaxmpp]
+label="prueba.owlcode.tech"
+Server="<el servidor de tu bot>"
+#Jid your userid
+Jid="<el jid de tu bot>"
+Password="<la contraseña de tu bot>"
+Muc="prueba.owlcode.tech"
+Nick="Telegram User"
+RemoteNickFormat="({PROTOCOL}) {NICK}: "
+
+[telegram.pruebatelegram]
+Token="<token de tu bot de telegram>"
+RemoteNickFormat="(XMPP) {NICK} in {CHANNEL}: "
+MessageFormat="HTMLNick"
+[[gateway]]
+name="prueba-gateway"
+enable=true
+ [[gateway.inout]]
+ account="telegram.pruebatelegram"
+ channel="-10"
+ [[gateway.inout]]
+ account="xmpp.pruebaxmpp"
+ channel="prueba"
+
+
+ Instala Matterbridge con
+
+ sudo -u matterbridge go install github.com/42wim/matterbridge@master
Ejecuta sudo -u matterbridge /var/lib/matterbridge/go/bin/matterbridge -conf /var/lib/matterbridge/matterbridge.toml
Necesitarás unir al bot de telegram que has creado al grupo que quieres unir con XMPP y ejecutar /chatId en el grupo, despues de eso tendrás el verdadero id de tu grupo de telegram para su uso en la configuración, por ejemplo:
+ +
+ [[gateway.inout]]
+ account="telegram.pruebatelegram"
+ channel="-932023"
+
+
+ Reincia el comando sudo -u matterbridge /var/lib/matterbridge/go/bin/matterbridge -conf /var/lib/matterbridge/matterbridge.toml
Prueba a enviar mensajes entre telegram y xmpp; y si lo has hecho bien deberían recibirse en las dos direcciones.
+ +Ahora puedes escoger cualquier manera que deseés de hacer persistente el bridge, ya sea un cron al encender el ordenador, un systemd unit o un init service de openrc.
diff --git a/owlcode_tech.json.example b/owlcode_tech.json.example index 0142035..9aed934 100644 --- a/owlcode_tech.json.example +++ b/owlcode_tech.json.example @@ -4,7 +4,7 @@ "db": { "database": "example" }, - "base_url": "https://owlcode.tech", - "listen": "https://localhost:3000", - "site_name": "Owlcode.tech", + "base_url": "http://localhost:3000", + "listen": "http://localhost:3000", + "site_name": "Owlcode.tech" }