diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-05-23 16:24:58 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-05-23 16:24:58 +0100 |
commit | 043f05a078a6909f468925ba827e287c151b9711 (patch) | |
tree | 658deb0657b8f2d276fc5b6c14e5322e0f7204b7 /docs/manhole.md | |
parent | Merge pull request #3271 from matrix-org/rav/consent_uri_in_messages (diff) | |
parent | consent_tracking.md: clarify link (diff) | |
download | synapse-043f05a078a6909f468925ba827e287c151b9711.tar.xz |
Merge docs on consent bits from PR #3268 into release branch
Diffstat (limited to 'docs/manhole.md')
-rw-r--r-- | docs/manhole.md | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/manhole.md b/docs/manhole.md new file mode 100644 index 0000000000..7375f5ad46 --- /dev/null +++ b/docs/manhole.md @@ -0,0 +1,43 @@ +Using the synapse manhole +========================= + +The "manhole" allows server administrators to access a Python shell on a running +Synapse installation. This is a very powerful mechanism for administration and +debugging. + +To enable it, first uncomment the `manhole` listener configuration in +`homeserver.yaml`: + +```yaml +listeners: + - port: 9000 + bind_addresses: ['::1', '127.0.0.1'] + type: manhole +``` + +(`bind_addresses` in the above is important: it ensures that access to the +manhole is only possible for local users). + +Note that this will give administrative access to synapse to **all users** with +shell access to the server. It should therefore **not** be enabled in +environments where untrusted users have shell access. + +Then restart synapse, and point an ssh client at port 9000 on localhost, using +the username `matrix`: + +```bash +ssh -p9000 matrix@localhost +``` + +The password is `rabbithole`. + +This gives a Python REPL in which `hs` gives access to the +`synapse.server.HomeServer` object - which in turn gives access to many other +parts of the process. + +As a simple example, retrieving an event from the database: + +``` +>>> hs.get_datastore().get_event('$1416420717069yeQaw:matrix.org') +<Deferred at 0x7ff253fc6998 current result: <FrozenEvent event_id='$1416420717069yeQaw:matrix.org', type='m.room.create', state_key=''>> +``` |