I am happy to share the completion of the Google Summer of Code Program for 2023 and into this post, You will find about how you can use my project for interconnecting the Qaul and the Matrix chat applications.
I would recommend reading about the project via my previous blog posts.
- Qaul Introduction and need for Matrix Bridge : https://blog.freifunk.net/2023/05/14/gsoc23-qaul-an-internet-independent-communication-application/
- Planning the Relay Bot : https://blog.freifunk.net/2023/07/09/gsoc-qaul-matrix-bridge-relay-bot-implementation/
Requirements
You should have an account on matrix that can act as a bridge bot.
For more secure communications you can opt for running your own matrix homeserver but that is not necessary since our bridge works well on the default matrix server as well.
You should have the binary to the bridge either as code or distributed package.
We are still working on packaging the binary for end users and then in place of cargo run –bin qaul-matrix-bridge you can simply run our binary.
Initialization and Configuration
As of now, We are supporting the bridge only as a daemon process binary without any control on it via CLI or GUI. All the logics are integrated on matrix-sdk or ruma and qaul or libqaul.
On the server where you wish to start a binary between a local qaul network, You need to have one node running the binary and rest will follow along the way.
After installing the qaul project you can
cargo run --bin qaul-matrix-bridge {homeserver-url} {bot-matrix-id} {bot-account-password}
- homeserver-url : The URL for matrix homeserver. Default can be [https://matrix.org]
- bot-matrix-id : The user account of the bot on matrix. Eg : @qaul-bot:matrix.org then id is [qaul-bot]
- bot-account-password : The password for your bot account on matrix
Inviting the Bridge to Matrix Room
Once the bridge is running up. You have to go to your own matrix account and create a new room. Please make sure to turn off any encryption. Now invite the bot to your matrix room and it automatically joins the room.
1. Create a matrix room and disable end to end encryption
2. Invite the bot account into the room
Navigating through Matrix Menu
We have multiple menu options available in our Matrix Menu. You can see the list of all the possible functionalities with !help command.
!help
!qaul
!users
Here the users are displayed over a local peer network in qaul. Qaul Matrix Bridge Bot is the default bridge user unless opted for other users. Along with their name the random strings which you can see are the PeerID of a user on qaul-network.
!invite
!group-info
!remove
Not just messages 🎉 but exchange files too
Closing Notes
I am glad to share the prototype of the bridge. It was a great experience learning from different matrix specifications and their protocol design. In future, We are looking forward to incorporate Qaul Menu, distribute the binaries over various mediums, Styling the bot responses via emotes and lot more.
A special thanks to my mentor MathJud who have helped with serious problems whenever we faced it and with him I have learned very important principles when designing a chat application. He also introduced me to Matrix Camp in Chaos Communication Camp where we presented the prototype (bit buggy at that time) to people who are working on Matrix protocol.
I would also encourage people to come and contribute to the Qaul project because this project serves an important use case to allow communication during Internet break-outs. Developing a solution to stay hidden from government will help sustain the openess of speech and freedom.