A puppeting Matrix - Zulip bridge
Bumps the pip group with 1 update in the / directory: [urllib3](https://github.com/urllib3/urllib3). Updates `urllib3` from 2.2.2 to 2.5.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.2.2...2.5.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.5.0 dependency-type: indirect dependency-group: pip ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.github/workflows | ||
matrixzulipbridge | ||
tests | ||
.dockerignore | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.pylintrc | ||
Dockerfile | ||
LICENSE | ||
poetry.lock | ||
pyproject.toml | ||
README.md |
MatrixZulipBridge
A Matrix puppeting appservice bridge for Zulip
Join the Matrix room #MatrixZulipBridge:shema.lv if you have any questions or just want to chat.
Features
- Streams
- Zulip topics - Matrix threads
- Direct messages
- Formatted text* (not all of Zulip's formatting)
- Matrix puppets
- Zulip puppets
- Message Media* (only translating URIs)
- Presence
- Reactions
- Redactions* (only from Matrix in DMs)
- Replies
- Typing indicators
Installation
Prerequisites
- Python >=3.10
- Matrix homeserver with ability to add appservices
PyPI
pip install matrixzulipbridge
Docker
docker run ghcr.io/gearkite/matrixzulipbridge:{tag} ...
See packages for possible tags
From source
- Clone or download this git repository
git clone https://github.com/GearKite/MatrixZulipBridge.git
- Install Poetry
- Install dependencies
poetry install
- Enter the virtual environment
poetry shell
Running
Example
- Generate a registration file
python3 -m matrixzulipbridge --config config.yaml --generate
- Install the appservice on your homeserver
- Run the bridge
python3 -m matrixzulipbridge --config config.yaml https://homeserver.example.com
Usage
usage: python3 -m matrixzulipbridge [-h] [-v] (-c CONFIG | --version) [-l LISTEN_ADDRESS] [-p LISTEN_PORT] [-u UID] [-g GID] [--generate] [--generate-compat] [--reset] [--unsafe-mode] [-o OWNER] [homeserver]
A puppeting Matrix - Zulip appservice bridge (v0.1.1.dev2+g3ed8ed7)
positional arguments:
homeserver URL of Matrix homeserver (default: http://localhost:8008)
options:
-h, --help show this help message and exit
-v, --verbose log debug messages
-c CONFIG, --config CONFIG
registration YAML file path, must be writable if generating (default: None)
--version show bridge version
-l LISTEN_ADDRESS, --listen-address LISTEN_ADDRESS
bridge listen address (default: as specified in url in config, 127.0.0.1 otherwise) (default: None)
-p LISTEN_PORT, --listen-port LISTEN_PORT
bridge listen port (default: as specified in url in config, 28464 otherwise) (default: None)
-u UID, --uid UID user id to run as (default: None)
-g GID, --gid GID group id to run as (default: None)
--generate generate registration YAML for Matrix homeserver (Synapse)
--generate-compat generate registration YAML for Matrix homeserver (Dendrite and Conduit)
--reset reset ALL bridge configuration from homeserver and exit
--unsafe-mode allow appservice to leave rooms on error (default: False)
-o OWNER, --owner OWNER
set owner MXID (eg: @user:homeserver) or first talking local user will claim the bridge (default: None)
After registering and launching the bridge, start a chat. You can find the localpart in your registration.yaml
This bridge is mainly configurable through Matrix, send help
to get a list of commands
Bridging a stream
In your control room chat with the bridge send:
addorganization {name}
open {name}
In the organization room send:
site example.com
email my-bot@example.com
apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
connect
subscribe {zulip stream name}
Credits
This bridge is heavily based on Heisenbridge. Thank you, Heisenbridge contributors!