pnut-matrix/README.md
Morgan McMillian 5638805481 Code uplift to replace old libraries and support asyncio
matrix-client was replaced with mautrix, issues #56 #59
websocket-client was replaced with websockets
flask updated to support async
early support for global timeline, issue #71
2024-12-15 15:04:17 -08:00

2.2 KiB

The Matrix <--> Pnut bridge

This is a pnut.io channel bridge for Matrix using the Application Services (AS) API.

This bridge will pass pnut.io channel messages through to Matrix, and Matrix messages through to pnut.io channels.

Usage

The public bridge is not yet online pending uplift of this code base. Stay tuned!

Installation

Warning! This code is extremely unstable and not yet ready for use on your matrix server.

Currently pnut-matrix has been only tested with and confirmed to work with synapse. Please refer to the synapse installation instructions for details on how to setup your homeserver.

To install the latest version of pnut-matrix from source:

git clone https://git.dreamfall.space/spacenerdmo/pnut-matrix.git
cd pnut-matrix
python3 -m venv env
source env/bin/activate
pip3 install -r requirements.txt

Configuration

Copy config.yaml-sample to config.yaml and edit for your setup. Likewise copy appservice.yaml-sample to appservice.yaml and edit to match the tokens, prefix, and port listed in config.yaml. This is the configuration that synapse will need to reference so that it can connect the bridge. Make sure you modify your syanpse configuration accordingly.

Tweaks

There exists a bug in synapse which prevents the bridge user from accepting DM invites from users on other homeservers. To work around the issue you can create a profile for the bot user.1

curl --data '{"type": "m.login.application_service", "username": "your_sender_localpart"}' 'http://yourhomeserver/_matrix/client/r0/register?access_token=your_as_token'

Contributing and support

Please submit bugs, feature requests, and patches to morgan@mcmillian.dev.

Join my public chat room on pnut.io for development discussion.

License

GPLv3, see LICENSE.