telematrix/README.md
2016-11-15 15:26:21 +01:00

56 lines
2.0 KiB
Markdown

# telematrix
A bridge between Telegram and [Matrix](http://matrix.org/). Currently under development — this project isn't considered to be in a usable state right now.
## Installation
### Dependencies
First, create a virtualenv and activate it:
```bash
virtualenv venv -p $(which python3)
. venv/bin/activate
```
Then install the requirements using pip:
```bash
pip install -r requirements.txt
```
### Configuration
**telematrix configuration**
First, copy config.json.example to config.json. Then fill in the fields:
* `tokens.hs`: A randomly generated token
* `tokens.as`: Another randomly generated token
* `tokens.telegram`: The Telegram bot API token, as generated by @BotFather
* `tokens.google`: A Google API key, used for URL shortening. Can be left out to disable.
* `hosts.internal`: The homeserver host to connect to internally.
* `hosts.external`: The external domain of the homeserver, used for generating URLs.
* `hosts.bare`: Just the (sub)domain of the server.
* `user_id_format`: A Python `str.format`-style string to format user IDs as
* `db_url`: A SQLAlchemy URL for the database. See the [SQLAlchemy docs](http://docs.sqlalchemy.org/en/latest/core/engines.html).
**Synapse configuration**
Copy asconfig.yaml.example to asconfig.yaml, then fill in the fields:
* `url`: The host and port of telematrix. Most likely `http://localhost:5000`.
* `as_token`: `token.as` from telematrix config.
* `hs_token`: `token.hs` from telematrix config.
The rest of the config can be left as is. Finally, add a relative path to this config file in the Synapse's homeserver.yaml:
```yaml
app_service_config_files:
- "../telematrix/asconfig.yaml"
```
## Contributions
Want to help? Awesome! This bridge still needs a lot of work, so any help is welcome.
A great start is reporting bugs — if you find it doesn't work like it's supposed to, do submit an issue on Github. Or, if you're a programmer (which you probably are, considering you are on this website), feel free to try to fix it yourself. Just make sure Pylint approves of your code!