rocketchat2matrix/README.md
Henrik Hüttemann 889947228d
Add WIP warning
2023-06-05 14:31:21 +02:00

62 lines
1.9 KiB
Markdown

# Rocket.Chat to Matrix Migration Script
Drafts and more. **This is a work in progress!**
## Exporting RC data
Currently manually via mongodb. Run the following on the server:
```shell
mongoexport --collection=rocketchat_message --db=rocketchat --out=rocketchat_message.json
mongoexport --collection=rocketchat_room --db=rocketchat --out=rocketchat_room.json
mongoexport --collection=users --db=rocketchat --out=users.json
```
Export them to `inputs/`
## Running the Matrix Dev Server
```shell
docker-compose run --rm -e SYNAPSE_SERVER_NAME=my.matrix.host -e SYNAPSE_REPORT_STATS=no synapse generate
docker-compose up -d
# Register a admin user
docker-compose exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --admin --user verdiadmin --password verdiadmin
```
Then you can access the homeserver in [Element Web](https://app.element.io/#/login) or the [local admin interface](http://localhost:8080) as `http://localhost:8008` with the `verdiadmin` as username AND password.
You can store an access token for that user:
```shell
curl --request POST \
--url http://localhost:8008/_matrix/client/v3/login \
--header 'Content-Type: application/json' \
--data '{"type": "m.login.password","user": "verdiadmin","password": "verdiadmin","device_id": "DEV"}' \
> src/config/synapse_access_token.json
```
## Configuration
Copy over `.env.example` to `.env` and insert your values.
## Running Tests
`npm test`.
## Cleaning Up
To clean up the Synapse server and loal storage database, run (while the containers are stopped)
```shell
sudo rm files/homeserver.db
rm db.sqlite
```
Then you can restart with an empty but quite equal server, following the instructions above, excluding the `generate` command.
## Design Decisions
- Getting data from Rocket.Chat via (currently) manual mongodb export
- Room to Channel conversion:
- Read-only attributes of 2 verdigado channels not converted to power levels due to complexity