Merge pull request #3063 from FinnStutzenstein/dev-guide
Updateing the instructions for big mode
This commit is contained in:
commit
c8f64783bc
135
DEVELOPMENT.rst
135
DEVELOPMENT.rst
@ -15,11 +15,14 @@ Installation and start of the development version
|
|||||||
a. Check requirements
|
a. Check requirements
|
||||||
'''''''''''''''''''''
|
'''''''''''''''''''''
|
||||||
|
|
||||||
Make sure that you have installed `Python (>= 3.4)
|
Make sure that you have installed `Python (>= 3.4) <https://www.python.org/>`_,
|
||||||
<https://www.python.org/>`_, `Node.js (>=0.10) <https://nodejs.org/>`_ and
|
`Node.js (>=4.x) <https://nodejs.org/>`_, `npm - Node Package Manager (>=3.x)
|
||||||
`Git <http://git-scm.com/>`_ on your system. See also step 1. a. in the
|
<https://npmjs.org/>`_ and `Git <http://git-scm.com/>`_ on your system. You also
|
||||||
installation section in the `README.rst
|
need header files and a static library for Python.
|
||||||
<https://github.com/OpenSlides/OpenSlides/blob/master/README.rst>`_.
|
|
||||||
|
For Ubuntu 16.04 e. g. run::
|
||||||
|
|
||||||
|
$ sudo apt-get install git nodejs nodejs-legacy npm python3-dev
|
||||||
|
|
||||||
|
|
||||||
b. Get OpenSlides source code
|
b. Get OpenSlides source code
|
||||||
@ -44,7 +47,7 @@ d. Install dependencies
|
|||||||
|
|
||||||
Install all required Python packages::
|
Install all required Python packages::
|
||||||
|
|
||||||
$ pip install -r requirements.txt
|
$ pip install --requirement requirements.txt
|
||||||
|
|
||||||
Install all NPM and Bower packages and run several JavaScript build tasks::
|
Install all NPM and Bower packages and run several JavaScript build tasks::
|
||||||
|
|
||||||
@ -65,15 +68,27 @@ Use the command-line interface::
|
|||||||
See step 1. d. in the installation section in the `README.rst
|
See step 1. d. in the installation section in the `README.rst
|
||||||
<https://github.com/OpenSlides/OpenSlides/blob/master/README.rst>`_.
|
<https://github.com/OpenSlides/OpenSlides/blob/master/README.rst>`_.
|
||||||
|
|
||||||
To get help on the command-line options run::
|
To get help on the command line options run::
|
||||||
|
|
||||||
$ python manage.py --help
|
$ python manage.py --help
|
||||||
|
|
||||||
Later you might want to restart the server with the following command to
|
Later you might want to restart the server with one of the following commands.
|
||||||
avoid opening new browser windows::
|
|
||||||
|
To start OpenSlides with Daphne and one worker and to avoid opening new browser
|
||||||
|
windows run::
|
||||||
|
|
||||||
|
$ python manage.py start --no-browser
|
||||||
|
|
||||||
|
To start OpenSlides with Daphne and four workers (avoid concurrent write
|
||||||
|
requests or use PostgreSQL, see below) run::
|
||||||
|
|
||||||
$ python manage.py runserver
|
$ python manage.py runserver
|
||||||
|
|
||||||
|
To start OpenSlides with Geiss and one worker and to avoid opening new browser
|
||||||
|
windows (download Geiss and setup Redis before, see below) run::
|
||||||
|
|
||||||
|
$ python manage.py start --no-browser --use-geiss
|
||||||
|
|
||||||
Use gulp watch in a second command-line interface::
|
Use gulp watch in a second command-line interface::
|
||||||
|
|
||||||
$ node_modules/.bin/gulp watch
|
$ node_modules/.bin/gulp watch
|
||||||
@ -82,17 +97,19 @@ Use gulp watch in a second command-line interface::
|
|||||||
2. Installation on Windows
|
2. Installation on Windows
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Follow the instructions above (Installation on GNU/Linux or Mac OS X) but
|
Follow the instructions above (Installation on GNU/Linux or Mac OS X) but care
|
||||||
care of the following variations.
|
of the following variations.
|
||||||
|
|
||||||
To get Python download and run the latest `Python 3.5 32-bit (x86)
|
To get Python download and run the latest `Python 3.5 32-bit (x86) executable
|
||||||
executable installer <https://www.python.org/downloads/windows/>`_. Note
|
installer <https://www.python.org/downloads/windows/>`_. Note that the 32-bit
|
||||||
that the 32-bit installer is required even on a 64-bit Windows system. If
|
installer is required even on a 64-bit Windows system. If you use the 64-bit
|
||||||
you use the 64-bit installer, step d. of the instruction will fail unless
|
installer, step d. of the instruction might fail unless you installed some
|
||||||
you installed the package Reportlab manually.
|
packages manually.
|
||||||
|
|
||||||
You have to install MS Visual C++ 2015 build tools before you install the
|
You have to install `MS Visual C++ 2015 build tools
|
||||||
required python packages for OpenSlides (unfortunately Twisted 16.6.x needs it).
|
<https://www.microsoft.com/en-us/download/details.aspx?id=48159>`_ before you
|
||||||
|
install the required python packages for OpenSlides (unfortunately Twisted
|
||||||
|
16.6.x needs it).
|
||||||
|
|
||||||
To setup and activate the virtual environment in step c. use::
|
To setup and activate the virtual environment in step c. use::
|
||||||
|
|
||||||
@ -104,35 +121,85 @@ All other commands are the same as for GNU/Linux and Mac OS X.
|
|||||||
3. Running the test cases
|
3. Running the test cases
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
a. Running Angular.js test cases
|
a. Running server tests
|
||||||
''''''''''''''''''''''''''''''''
|
'''''''''''''''''''''''
|
||||||
|
|
||||||
|
To run some server tests see `.travis.yml
|
||||||
|
<https://github.com/OpenSlides/OpenSlides/blob/master/.travis.yml>`_.
|
||||||
|
|
||||||
|
|
||||||
|
b. Running AngularJS test cases
|
||||||
|
'''''''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
Run client tests by starting karma::
|
||||||
|
|
||||||
$ node_modules/.bin/karma start tests/karma/karma.conf.js
|
$ node_modules/.bin/karma start tests/karma/karma.conf.js
|
||||||
|
|
||||||
|
|
||||||
Installation OpenSlides in big mode
|
OpenSlides in big mode
|
||||||
===================================
|
======================
|
||||||
|
|
||||||
1. Install PostgreSQL und redis:
|
In the so called big mode you should use OpenSlides with Redis, PostgreSQL and a
|
||||||
|
webserver like Apache HTTP Server or nginx as proxy server in front of your
|
||||||
|
OpenSlides interface server. Optionally you can use `Geiss
|
||||||
|
<https://github.com/ostcar/geiss/>`_ as interface server instead of Daphne.
|
||||||
|
|
||||||
apt-get install postgresql redis-server libpg-dev
|
|
||||||
|
|
||||||
TODO: Configure postgresql
|
1. Install and configure PostgreSQL and Redis
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
2. Install python dependencies
|
Install `PostgreSQL <https://www.postgresql.org/>`_ and `Redis
|
||||||
|
<https://redis.io/>`_. For Ubuntu 16.04 e. g. run::
|
||||||
|
|
||||||
pip install django-redis asgi-redis django-redis-sessions psycopg2
|
$ sudo apt-get install postgresql libpq-dev redis-server
|
||||||
|
|
||||||
3. Change settings.py
|
Be sure that database and redis server is running. For Ubuntu 16.04 e. g. this
|
||||||
|
was done automatically if you used the package manager.
|
||||||
|
|
||||||
(See comments in the settings)
|
Then add database user and database. For Ubuntu 16.04 e. g. run::
|
||||||
|
|
||||||
The relevant settings are: DATABASES, CHANNEL_LAYERS, CACHES
|
$ sudo -u postgres createuser --pwprompt --createdb openslides
|
||||||
|
$ sudo -u postgres createdb --owner=openslides openslides
|
||||||
|
|
||||||
4. Start one or more workers:
|
|
||||||
|
|
||||||
python manage.py runworker
|
2. Install additional packages
|
||||||
|
------------------------------
|
||||||
|
|
||||||
5. Start daphne. Set the DJANGO_SETTINGS_MODULE and the PYTHONPATH
|
Install some more required Python packages::
|
||||||
|
|
||||||
DJANGO_SETTINGS_MODULE=settings PYTHONPATH=personal_data/var/ daphne openslides.asgi:channel_layer
|
$ pip install -r requirements_big_mode.txt
|
||||||
|
|
||||||
|
|
||||||
|
3. Change OpenSlides settings
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Create OpenSlides settings file if it does not exist::
|
||||||
|
|
||||||
|
$ python manage.py createsettings
|
||||||
|
|
||||||
|
Change OpenSlides settings file (usually called settings.py): Setup
|
||||||
|
`DATABASES` entry as mentioned in the settings file. Set `use_redis` to
|
||||||
|
`True`.
|
||||||
|
|
||||||
|
Populate your new database::
|
||||||
|
|
||||||
|
$ python manage.py migrate
|
||||||
|
|
||||||
|
|
||||||
|
4. Run OpenSlides
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
First start e. g. four workers::
|
||||||
|
|
||||||
|
$ python manage.py runworker --threads 4
|
||||||
|
|
||||||
|
To start Daphne as protocol server run::
|
||||||
|
|
||||||
|
$ export DJANGO_SETTINGS_MODULE=settings
|
||||||
|
$ export PYTHONPATH=personal_data/var/
|
||||||
|
$ daphne openslides.asgi:channel_layer
|
||||||
|
|
||||||
|
To use Geiss instead of Daphne, just download Geiss and start it::
|
||||||
|
|
||||||
|
$ python manage.py getgeiss
|
||||||
|
$ ./personal_data/var/geiss
|
||||||
|
37
README.rst
37
README.rst
@ -40,14 +40,19 @@ You can setup a virtual Python environment using the virtual environment
|
|||||||
*Note: For Ubuntu 14.04 you have to install the pyvenv binary package*
|
*Note: For Ubuntu 14.04 you have to install the pyvenv binary package*
|
||||||
``python3.4-venv`` *before.*
|
``python3.4-venv`` *before.*
|
||||||
|
|
||||||
Create your OpenSlides directory, change to it, setup and activate the
|
*Note: For Ubuntu 16.04 you have to install the pyvenv binary package*
|
||||||
virtual environment::
|
``python3-venv`` *before.*
|
||||||
|
|
||||||
|
Create your OpenSlides directory and change to it::
|
||||||
|
|
||||||
$ mkdir OpenSlides
|
$ mkdir OpenSlides
|
||||||
$ cd OpenSlides
|
$ cd OpenSlides
|
||||||
|
|
||||||
|
Setup and activate the virtual environment::
|
||||||
|
|
||||||
$ python3 -m venv .virtualenv
|
$ python3 -m venv .virtualenv
|
||||||
$ source .virtualenv/bin/activate
|
$ source .virtualenv/bin/activate
|
||||||
$ pip install -U setuptools
|
$ pip install --upgrade setuptools pip
|
||||||
|
|
||||||
|
|
||||||
c. Install OpenSlides
|
c. Install OpenSlides
|
||||||
@ -75,7 +80,7 @@ To start OpenSlides simply run::
|
|||||||
$ openslides
|
$ openslides
|
||||||
|
|
||||||
If you run this command the first time, a new database and the admin account
|
If you run this command the first time, a new database and the admin account
|
||||||
(Username: `admin`, Password: `admin`) will be created. Please change the
|
(Username: ``admin``, Password: ``admin``) will be created. Please change the
|
||||||
password after first login!
|
password after first login!
|
||||||
|
|
||||||
OpenSlides will start a webserver. It will also try to open the webinterface in
|
OpenSlides will start a webserver. It will also try to open the webinterface in
|
||||||
@ -119,9 +124,9 @@ If you want to contribute to OpenSlides, have a look at `OpenSlides website
|
|||||||
Installation for big assemblies
|
Installation for big assemblies
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
The installation steps described above install OpenSlides in a way that does
|
The installation steps described above install OpenSlides in a way that
|
||||||
NOT support hundreds of concurrent clients. To install OpenSlides for big
|
does NOT support hundreds of concurrent clients. To install OpenSlides for
|
||||||
assemblies some config variables have to be changed in the OpenSlides settings
|
big assemblies some variables have to be changed in the OpenSlides settings
|
||||||
file (usually called settings.py).
|
file (usually called settings.py).
|
||||||
|
|
||||||
The configuration values that have to be altered are:
|
The configuration values that have to be altered are:
|
||||||
@ -129,19 +134,23 @@ The configuration values that have to be altered are:
|
|||||||
* CACHES
|
* CACHES
|
||||||
* CHANNEL_LAYERS
|
* CHANNEL_LAYERS
|
||||||
* DATABASES
|
* DATABASES
|
||||||
|
* SESSION_ENGINE
|
||||||
|
|
||||||
Please see:
|
You should use a webserver like Apache HTTP Server or nginx to serve the
|
||||||
|
static and media files as proxy server in front of your OpenSlides
|
||||||
|
interface server. You also should use a database like PostgreSQL and Redis
|
||||||
|
as channels backend, cache backend and session engine. Finally you should
|
||||||
|
start some WSGI workers and one or more interface servers (Daphne or Geiss).
|
||||||
|
|
||||||
* http://channels.readthedocs.io/en/latest/deploying.html
|
Please see the respective section in the `DEVELOPMENT.rst
|
||||||
|
<https://github.com/OpenSlides/OpenSlides/blob/master/DEVELOPMENT.rst>`_ and:
|
||||||
|
|
||||||
|
* https://channels.readthedocs.io/en/latest/deploying.html
|
||||||
|
* https://github.com/ostcar/geiss
|
||||||
* https://docs.djangoproject.com/en/1.10/topics/cache/
|
* https://docs.djangoproject.com/en/1.10/topics/cache/
|
||||||
* https://github.com/sebleier/django-redis-cache
|
* https://github.com/sebleier/django-redis-cache
|
||||||
* https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
* https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
||||||
|
|
||||||
You should use a webserver like Apache HTTP Server or nginx to serve the static
|
|
||||||
and media files as proxy server in front of your OpenSlides server. You also
|
|
||||||
should use a database like PostgreSQL and Redis as channels backend and cache
|
|
||||||
backend.
|
|
||||||
|
|
||||||
|
|
||||||
Used software
|
Used software
|
||||||
=============
|
=============
|
||||||
|
8
requirements_big_mode.txt
Normal file
8
requirements_big_mode.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Requirements for OpenSlides in production
|
||||||
|
-r requirements_production.txt
|
||||||
|
|
||||||
|
# Requirements for Redis and PostgreSQL support
|
||||||
|
asgi-redis>=1.0.0,<1.1
|
||||||
|
django-redis>=4.7.0,<4.8
|
||||||
|
django-redis-sessions>=0.5.6,<0.6
|
||||||
|
psycopg2>=2.6.2,<2.7
|
@ -7,9 +7,3 @@ PyPDF2>=1.26,<1.27
|
|||||||
roman>=2.0,<2.1
|
roman>=2.0,<2.1
|
||||||
setuptools>=29.0,<35.0
|
setuptools>=29.0,<35.0
|
||||||
bleach>=1.5.0,<1.6
|
bleach>=1.5.0,<1.6
|
||||||
|
|
||||||
# Requirements for Redis and PostgreSQL support
|
|
||||||
asgi-redis>=1.0.0,<1.1
|
|
||||||
django-redis>=4.7.0,<4.8
|
|
||||||
django-redis-sessions>=0.5.6,<0.6
|
|
||||||
psycopg2>=2.6.2,<2.7
|
|
||||||
|
Loading…
Reference in New Issue
Block a user