matrixssbook/README.md
2023-05-24 22:04:06 -04:00

82 lines
3.2 KiB
Markdown

# xssbook to matrix bridge
references:
- [matrix-appservice-bridge howto](https://github.com/matrix-org/matrix-appservice-bridge/blob/develop/HOWTO.md)
- [the slack bridge](https://github.com/matrix-org/matrix-appservice-slack)
## usage
```sh
mkdir data # if it doesn't already exist
node . -r -u "http://url-to-appservice:8000" # the url here is how the homeserver will try to access the appservice, the port is your choice
```
this generates a registration file `data/xss-registration.yaml` that you use to register the bridge with a matrix homeserver
install the app service like [this](https://docs.mau.fi/bridges/general/registering-appservices.html)
then make a `data/xss.yaml` file:
```yaml
xssbook:
url: http://localhost:8080 # url to xssbook instance
bridge_username: bridge # name of the bridge user (used to poll for new posts)
room: "!roomid:localhost" # matrix room to post to
matrix:
homeserver_url: http://localhost:8008 # http(s) url to your homeserver
homeserver: localhost # what appears in the second half of matrix IDs
```
and run
```sh
node . -p 8000 -c data/xss.yaml
# the port needs to be the same one from the previous node command, if bridging to matrix
```
that should be it.
## if you want to use docker instead
be aware of networking shenanigans, especially if you're running this on the same machine as the homeserver.
```sh
docker build -t matrixssbook . # make sure the image is built
mkdir data # you *may* need to chmod a+w data to allow the node user inside the container to write to the folder
docker run --rm -v $PWD/data:/appservice/data matrixssbook -r -u "http://url-to-appservice:8000"
```
create the `data/xss.yaml` as before
```sh
docker run -v $PWD/data:/appservice/data matrixssbook # note: the default cmd is `-p 8000 -c data/xss.yaml`, if you used a different port you'll need to include parameters here
```
## docker-compose
if you're running [synapse through docker-compose](https://github.com/matrix-org/synapse/blob/master/contrib/docker/docker-compose.yml), you can add this appservice to your `docker-compose.yaml` file:
```sh
docker build -t matrixssbook /path/to/this/repo # make sure the image is built
# run in the same folder as your docker-compose file
mkdir data # you *may* need to chmod a+w data to allow the node user inside the container to write to the folder
docker run --rm -v $PWD/data:/appservice/data matrixssbook -r -u "http://matrixssbook:8000" # this url can be used verbatim
```
create the `data/xss.yaml` file as before, but use `homeserver_url: http://synapse:8008`
then insert this snippet into your `docker-compose.yaml`
```yaml
# in synapse's volumes section, use this (optional, you can also just copy the file into synapse's data directory manually)
- ./data/xss-registration.yaml:/data/xss-registration.yaml
# add a new service
matrixssbook:
image: matrixssbook
volumes:
- ./data:/appservice/data
```
make sure to edit synapse's config to add
```yaml
app_service_config_files:
- /data/xss-registration.yaml
```
## using with matrix
- make a new room, make sure `xss.room` in the bridge's config is set to the room's ID
- invite `@xssbook:homeserver`, it should automatically accept the invite
- start posting