1.9 KiB
1.9 KiB
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:
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
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 or the local admin interface as http://localhost:8008 with the verdiadmin as username AND password.
You can store an access token for that user:
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)
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