|
@@ -122,12 +122,12 @@ Thanks for trying Matrix!
|
|
|
|
|
|
[2] End-to-end encryption is currently in development
|
|
|
|
|
|
-
|
|
|
Homeserver Installation
|
|
|
=======================
|
|
|
|
|
|
-First, the dependencies need to be installed. Start by installing
|
|
|
-'python2.7-dev' and the various tools of the compiler toolchain.
|
|
|
+Synapse is written in python but some of the libraries is uses are written in
|
|
|
+C. So before we can install synapse itself we need a working C compiler and the
|
|
|
+header files for python C extensions.
|
|
|
|
|
|
Installing prerequisites on Ubuntu::
|
|
|
|
|
@@ -137,29 +137,34 @@ Installing prerequisites on Mac OS X::
|
|
|
|
|
|
$ xcode-select --install
|
|
|
|
|
|
-The homeserver has a number of external dependencies, that are easiest
|
|
|
-to install by making setup.py do so, in --user mode::
|
|
|
+Synapse uses NaCl (http://nacl.cr.yp.to/) for encryption and digital
|
|
|
+signatures. Unfortunately PyNACL currently has a few issues
|
|
|
+(https://github.com/pyca/pynacl/issues/53) and
|
|
|
+(https://github.com/pyca/pynacl/issues/79) that mean it may not install
|
|
|
+correctly. To fix try re-installing from PyPI or directly from (https://github.com/pyca/pynacl)::
|
|
|
|
|
|
- $ python setup.py develop --user
|
|
|
+ $ # Install from PyPI
|
|
|
+ $ pip install --user --upgrade --force pynacl
|
|
|
+ $ # Install from github
|
|
|
+ $ pip install --user https://github.com/pyca/pynacl/tarball/master
|
|
|
|
|
|
-You'll need a version of setuptools new enough to know about git, so you
|
|
|
-may need to also run::
|
|
|
+On OSX, if you encounter ``clang: error: unknown argument: '-mno-fused-madd'``
|
|
|
+you will need to ``export CFLAGS=-Qunused-arguments``.
|
|
|
|
|
|
- $ sudo apt-get install python-pip
|
|
|
- $ sudo pip install --upgrade setuptools
|
|
|
+To install the synapse homeserver run::
|
|
|
|
|
|
-If you don't have access to github, then you may need to install ``syutil``
|
|
|
-manually by checking it out and running ``python setup.py develop --user`` on
|
|
|
-it too.
|
|
|
+ $ pip install --user --process-dependency-links https://github.com/matrix-org/synapse/tarball/master
|
|
|
|
|
|
-If you get errors about ``sodium.h`` being missing, you may also need to
|
|
|
-manually install a newer PyNaCl via pip as setuptools installs an old one. Or
|
|
|
-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).
|
|
|
+This installs synapse, along with the libraries it uses, into
|
|
|
+``$HOME/.local/lib/``.
|
|
|
|
|
|
-On OSX, if you encounter ``clang: error: unknown argument: '-mno-fused-madd'``
|
|
|
-you will need to ``export CFLAGS=-Qunused-arguments``.
|
|
|
+Homeserver Development
|
|
|
+======================
|
|
|
+
|
|
|
+The homeserver has a number of external dependencies, that are easiest
|
|
|
+to install by making setup.py do so, in --user mode::
|
|
|
+
|
|
|
+ $ python setup.py develop --user
|
|
|
|
|
|
This will run a process of downloading and installing into your
|
|
|
user's .local/lib directory all of the required dependencies that are
|
|
@@ -204,11 +209,11 @@ IDs:
|
|
|
For the first form, simply pass the required hostname (of the machine) as the
|
|
|
--host parameter::
|
|
|
|
|
|
- $ python synapse/app/homeserver.py \
|
|
|
+ $ python -m synapse.app.homeserver \
|
|
|
--server-name machine.my.domain.name \
|
|
|
--config-path homeserver.config \
|
|
|
--generate-config
|
|
|
- $ python synapse/app/homeserver.py --config-path homeserver.config
|
|
|
+ $ python -m synapse.app.homeserver --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
|
|
@@ -226,12 +231,12 @@ record would then look something like::
|
|
|
At this point, you should then run the homeserver with the hostname of this
|
|
|
SRV record, as that is the name other machines will expect it to have::
|
|
|
|
|
|
- $ python synapse/app/homeserver.py \
|
|
|
+ $ python -m synapse.app.homeserver \
|
|
|
--server-name YOURDOMAIN \
|
|
|
--bind-port 8448 \
|
|
|
--config-path homeserver.config \
|
|
|
--generate-config
|
|
|
- $ python synapse/app/homeserver.py --config-path homeserver.config
|
|
|
+ $ python -m synapse.app.homeserver --config-path homeserver.config
|
|
|
|
|
|
|
|
|
You may additionally want to pass one or more "-v" options, in order to
|