diff --git a/demo/start.sh b/demo/start.sh
index 4701872926..1e591aabb8 100755
--- a/demo/start.sh
+++ b/demo/start.sh
@@ -6,7 +6,7 @@ CWD=$(pwd)
cd "$DIR/.."
-for port in "8080" "8081" "8082"; do
+for port in 8080 8081 8082; do
echo "Starting server on port $port... "
python -m synapse.app.homeserver \
@@ -15,7 +15,8 @@ for port in "8080" "8081" "8082"; do
-f "$DIR/$port.log" \
-d "$DIR/$port.db" \
-vv \
- -D --pid-file "$DIR/$port.pid"
+ -D --pid-file "$DIR/$port.pid" \
+ --manhole $((port + 1000))
done
echo "Starting webclient on port 8000..."
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 40e3561ee5..f210d26629 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -31,6 +31,7 @@ from synapse.api.urls import (
)
from daemonize import Daemonize
+import twisted.manhole.telnet
import argparse
import logging
@@ -238,6 +239,8 @@ def setup():
default="hs.pid")
parser.add_argument("-W", "--webclient", dest="webclient", default=True,
action="store_false", help="Don't host a web client.")
+ parser.add_argument("--manhole", dest="manhole", type=int, default=None,
+ help="Turn on the twisted telnet manhole service.")
args = parser.parse_args()
verbosity = int(args.verbose) if args.verbose else None
@@ -281,6 +284,13 @@ def setup():
hs.build_db_pool()
+ if args.manhole:
+ f = twisted.manhole.telnet.ShellFactory()
+ f.username = "matrix"
+ f.password = "rabbithole"
+ f.namespace['hs'] = hs
+ reactor.listenTCP(args.manhole, f, interface='127.0.0.1')
+
if args.daemonize:
daemon = Daemonize(
app="synapse-homeserver",
|