diff options
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/README.rst b/README.rst index 6a22399e19..21bd63fd64 100644 --- a/README.rst +++ b/README.rst @@ -88,7 +88,12 @@ System requirements: - Python 2.7 - At least 1GB of free RAM if you want to join large public rooms like #matrix:matrix.org -Synapse is written in python but some of the libraries is uses are written in +Installing from source +---------------------- +(Prebuilt packages are available for some platforms - see `Platform-Specific +Instructions`_.) + +Synapse is written in python but some of the libraries it 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. @@ -131,6 +136,10 @@ Installing prerequisites on openSUSE:: sudo zypper in python-pip python-setuptools sqlite3 python-virtualenv \ python-devel libffi-devel libopenssl-devel libjpeg62-devel +Installing prerequisites on OpenBSD:: + doas pkg_add python libffi py-pip py-setuptools sqlite3 py-virtualenv \ + libxslt + To install the synapse homeserver run:: virtualenv -p python2.7 ~/.synapse @@ -302,7 +311,7 @@ See https://github.com/vector-im/vector-web/issues/1977 and https://developer.github.com/changes/2014-04-25-user-content-security for more details. -Platform Specific Instructions +Platform-Specific Instructions ============================== Debian @@ -364,6 +373,32 @@ Synapse can be installed via FreeBSD Ports or Packages contributed by Brendan Mo - Ports: ``cd /usr/ports/net/py-matrix-synapse && make install clean`` - Packages: ``pkg install py27-matrix-synapse`` + +OpenBSD +------- + +There is currently no port for OpenBSD. Additionally, OpenBSD's security +settings require a slightly more difficult installation process. + +1) Create a new directory in ``/usr/local`` called ``_synapse``. Also, create a + new user called ``_synapse`` and set that directory as the new user's home. + This is required because, by default, OpenBSD only allows binaries which need + write and execute permissions on the same memory space to be run from + ``/usr/local``. +2) ``su`` to the new ``_synapse`` user and change to their home directory. +3) Create a new virtualenv: ``virtualenv -p python2.7 ~/.synapse`` +4) Source the virtualenv configuration located at + ``/usr/local/_synapse/.synapse/bin/activate``. This is done in ``ksh`` by + using the ``.`` command, rather than ``bash``'s ``source``. +5) Optionally, use ``pip`` to install ``lxml``, which Synapse needs to parse + webpages for their titles. +6) Use ``pip`` to install this repository: ``pip install + https://github.com/matrix-org/synapse/tarball/master`` +7) Optionally, change ``_synapse``'s shell to ``/bin/false`` to reduce the + chance of a compromised Synapse server being used to take over your box. + +After this, you may proceed with the rest of the install directions. + NixOS ----- @@ -759,6 +794,10 @@ Then update the `users` table in the database:: Synapse Development =================== +Before setting up a development environment for synapse, make sure you have the +system dependencies (such as the python header files) installed - see +`Installing from source`_. + To check out a synapse for development, clone the git repo into a working directory of your choice:: @@ -770,8 +809,8 @@ to install using pip and a virtualenv:: virtualenv env source env/bin/activate - python synapse/python_dependencies.py | xargs -n1 pip install - pip install setuptools_trial mock + python synapse/python_dependencies.py | xargs pip install + pip install lxml mock This will run a process of downloading and installing all the needed dependencies into a virtual env. @@ -779,7 +818,7 @@ dependencies into a virtual env. Once this is done, you may wish to run Synapse's unit tests, to check that everything is installed as it should be:: - python setup.py test + PYTHONPATH="." trial tests This should end with a 'PASSED' result:: |