conduit/APPSERVICES.md

3.7 KiB

Setting up Appservices

Getting help

If you run into any problems while setting up an Appservice, write an email to timo@koesters.xyz, ask us in #conduit:matrix.org or open an issue on GitLab.

Tested appservices

Here are some appservices we tested and that work with Conduit:

There are a few things you need to do, in order for the bridge (at least up to version 0.2.0) to work. Before following the bridge installation guide, you need to map apply a patch to bridges portal.py. How you do this depends upon whether you are running the bridge in Docker or virtualenv.

  • Find / create the changed file:
    • For Docker:
      • Go to portal.py at mautrix-signal (don't forget to change to the correct commit/version of the file) and copy its content, create a portal.py on your host system and paste it in
    • For virtualenv
      • Find ./lib/python3.7/site-packages/mautrix_signal/portal.py (the exact version of Python may be different on your system).
  • Once you have portal.py you now need to change two lines. Lines numbers given here are approximate, you may need to look nearby:
--- levels.users[self.main_intent.mxid] = 9001 if is_initial else 100
+++ levels.users[self.main_intent.mxid] = 100 if is_initial else 100
    "type": str(EventType.ROOM_POWER_LEVELS),
+++ "state_key": "",
    "content": power_levels.serialize(),
  • Deploy the change
    • Docker:
      • Now you just need to map the patched portal.py into the mautrix-signal container
      volumes:
        - ./<your>/<path>/<on>/<host>/portal.py:/usr/lib/python3.9/site-packages/mautrix_signal/portal.py
      
    • For virtualenv, that's all you need to do - it uses the edited file directly
  • Now continue with the bridge installation instructions and the notes below.

Set up the appservice

Follow whatever instructions are given by the appservice. This usually includes downloading, changing its config (setting domain, homeserver url, port etc.) and later starting it.

At some point the appservice guide should ask you to add a registration yaml file to the homeserver. In Synapse you would do this by adding the path to the homeserver.yaml, but in Conduit you can do this from within Matrix:

First, go into the #admins room of your homeserver. The first person that registered on the homeserver automatically joins it. Then send a message into the room like this:

@conduit:your.server.name: register_appservice
```
paste
the
contents
of
the
yaml
registration
here
```

You can confirm it worked by sending a message like this: @conduit:your.server.name: list_appservices

The @conduit bot should answer with Appservices (1): your-bridge

Then you are done. Conduit will send messages to the appservices and the appservice can send requests to the homeserver. You don't need to restart Conduit, but if it doesn't work, restarting while the appservice is running could help.