From 822d0e552037784c3183bdc928dca9e2705367c6 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 4 Sep 2014 01:51:01 +0100 Subject: [PATCH 1/4] update README to know about synctl --- README.rst | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index 98af91ea42..9ae870e4c7 100644 --- a/README.rst +++ b/README.rst @@ -5,7 +5,7 @@ Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP. The basics you need to know to get up and running are: - Chatrooms are distributed and do not exist on any single server. Rooms - can be found using names like ``#matrix:matrix.org`` or + can be found using aliases like ``#matrix:matrix.org`` or ``#test:localhost:8008`` or they can be ephemeral. - Matrix user IDs look like ``@matthew:matrix.org`` (although in the future @@ -15,27 +15,31 @@ VoIP. The basics you need to know to get up and running are: The overall architecture is:: client <----> homeserver <=====================> homeserver <----> client - https://matrix.org/_matrix https://mydomain.net/_matrix + https://somewhere.org/_matrix https://elsewhere.net/_matrix Quick Start =========== +System requirements: + - POSIX-compliant system (tested on Linux & OSX) + - Python 2.7 + To get up and running: - To simply play with an **existing** homeserver you can just go straight to http://matrix.org/alpha. - - To run your own **private** homeserver on localhost:8008, install synapse - with ``python setup.py develop --user`` and then run one with - ``python synapse/app/homeserver.py`` - you will find a webclient running - at http://localhost:8008 (use a recent Chrome, Safari or Firefox for now, - please...) + - To run your own **private** homeserver on localhost:8008, install synapse with + ``python setup.py develop --user`` and then run ``./synctl start`` twice (once to + generate a config; once to actually run) - you will find a webclient running at + http://localhost:8008. Please use a recent Chrome, Safari or Firefox for now... - - To make the homeserver **public** and let it exchange messages with - other homeservers and participate in the overall Matrix federation, open - up port 8448 and run ``python synapse/app/homeserver.py --host - machine.my.domain.name``. Then come join ``#matrix:matrix.org`` and - say hi! :) + - To run a **public** homeserver and let it exchange messages with other homeservers + and participate in the global Matrix federation, you must expose port 8448 to the + internet and edit homeserver.yaml to specify server_name (the public DNS entry for + this server) and then run ``synctl start``. If you changed the server_name, you may + need to move the old database (homeserver.db) out of the way first. Then come join + ``#matrix:matrix.org`` and say hi! :) For more detailed setup instructions, please see further down this document. @@ -100,7 +104,6 @@ Homeserver Installation First, the dependencies need to be installed. Start by installing 'python2.7-dev' and the various tools of the compiler toolchain. -N.B. synapse requires python 2.x where x >= 7 Installing prerequisites on ubuntu:: @@ -131,6 +134,9 @@ you can check PyNaCl out of git directly (https://github.com/pyca/pynacl) and installing it. Installing PyNaCl using pip may also work (remember to remove any other versions installed by setuputils in, for example, ~/.local/lib). +On OSX, if you encounter ``clang: error: unknown argument: '-mno-fused-madd'`` you will +need to ``export CFLAGS=-Qunused-arguments``. + This will run a process of downloading and installing into your user's .local/lib directory all of the required dependencies that are missing. @@ -179,6 +185,10 @@ For the first form, simply pass the required hostname (of the machine) as the --config-path homeserver.config \ --generate-config $ python synapse/app/homeserver.py --config-path homeserver.config + +Alternatively, you can run synapse via synctl - running ``synctl start`` to generate a +homeserver.yaml config file, where you can then edit server-name to specify +machine.my.domain.name, and then set the actual server running again with synctl start. For the second form, first create your SRV record and publish it in DNS. This needs to be named _matrix._tcp.YOURDOMAIN, and point at at least one hostname @@ -266,7 +276,7 @@ track 3PID logins and publish end-user public keys. It's currently early days for identity servers as Matrix is not yet using 3PIDs as the primary means of identity and E2E encryption is not complete. As such, -we're not yet running an identity server in public. +we are running a single identity server (http://matrix.org:8090) at the current time. Where's the spec?! From 77e628e840e7ffc893dad76c7de3cd140f454540 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 4 Sep 2014 01:57:27 +0100 Subject: [PATCH 2/4] changelog for v0.2.1 --- CHANGES.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 292f7eee62..c6fab8fb72 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,19 @@ +Changes in synapse 0.2.1 (2014-09-03) +===================================== +Webclient: + * Implement 3PID login via email address + * Support for user management via IRC-style /kick, /ban/, /op + style slash commands + * Display user power levels in room member list as a red bar + +Homeserver: + * Add synctl init.d style control script + * Implement identity server integration for 3PID signup + * Implement rate limiting + * Implement content upload size limiting + * Bug fixes to power_levels + + Changes in synapse 0.2.0 (2014-09-02) ===================================== This update changes many configuration options, updates the From a751a80a0578f8e6b64df6a97565548e9958c19c Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 4 Sep 2014 02:02:06 +0100 Subject: [PATCH 3/4] target live site --- scripts/gendoc.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/gendoc.sh b/scripts/gendoc.sh index 3c849e52e1..64aff3155e 100755 --- a/scripts/gendoc.sh +++ b/scripts/gendoc.sh @@ -7,8 +7,8 @@ rst2html-2.7.py --stylesheet=basic.css,nature.css ../docs/client-server/howto.rs perl -pi -e 's###' $MATRIXDOTORG/docs/spec/index.html $MATRIXDOTORG/docs/howtos/client-server.html -perl -pi -e 's##
[matrix]
#' $MATRIXDOTORG/docs/spec/index.html $MATRIXDOTORG/docs/howtos/client-server.html +perl -pi -e 's##
[matrix]
#' $MATRIXDOTORG/docs/spec/index.html $MATRIXDOTORG/docs/howtos/client-server.html perl -pi -e 's##
#' $MATRIXDOTORG/docs/spec/index.html $MATRIXDOTORG/docs/howtos/client-server.html -scp -r $MATRIXDOTORG/docs matrix@ldc-prd-matrix-001:/sites/matrix-beta \ No newline at end of file +scp -r $MATRIXDOTORG/docs matrix@ldc-prd-matrix-001:/sites/matrix \ No newline at end of file From 3b38d2f50789fc69bdd6249683ca5922c3c342b9 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 4 Sep 2014 02:35:18 +0100 Subject: [PATCH 4/4] big warning --- README.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.rst b/README.rst index 9ae870e4c7..6791e686b7 100644 --- a/README.rst +++ b/README.rst @@ -17,6 +17,23 @@ The overall architecture is:: client <----> homeserver <=====================> homeserver <----> client https://somewhere.org/_matrix https://elsewhere.net/_matrix +WARNING +======= + +**Synapse is currently in a state of rapid development, and not all features are yet functional. +Critically, some security features are still in development, which means Synapse can *not* +be considered secure or reliable at this point.** For instance: + +- **SSL Certificates used by server-server federation are not yet validated.** +- **Room permissions are not yet enforced on traffic received via federation.** +- **Homeservers do not yet cryptographically sign their events to avoid tampering** +- Default configuration provides open signup to the service from the internet + +Despite this, we believe Synapse is more than useful as a way for experimenting and +exploring Synapse, and the missing features will land shortly. **Until then, please do *NOT* +use Synapse for any remotely important or secure communication.** + + Quick Start ===========