diff --git a/ADVANCED.rst b/ADVANCED.rst
index e94bae53a..c1c7f7289 100644
--- a/ADVANCED.rst
+++ b/ADVANCED.rst
@@ -4,10 +4,10 @@ Advanced configuration
Docker Swarm Mode
-----------------
-OpenSlides may also be deployed in Swarm mode. Distributing instances over
+OpenSlides may also be deployed in Swarm mode. Distributing instances over
multiple nodes may increase performance and offer failure resistance.
-An example configuration file, ``docker-stack.yml.m4``, is provided. Unlike
+An example configuration file, ``docker-stack.yml.m4``, is provided. Unlike
the Docker Compose setup, this configuration will most likely need to be
customized, especially its placement constraints and database-related
preferences.
@@ -37,14 +37,14 @@ please familiarize yourself with `repmgr `_.
Backups
-------
-All important data is stored in the database. Additionally, the project
+All important data is stored in the database. Additionally, the project
directory should be included in backups to ensure a smooth recovery.
The primary database usually runs in the ``pgnode1`` service (but see `Database
Configuration`_ above).
In some cases, it may be sufficient to generate SQL dumps with ``pg_dump``
-through ``docker exec`` to create backups. However, for proper incremental
+through ``docker exec`` to create backups. However, for proper incremental
backups, the host system can backup the cluster's data directory and WAL
archives.
diff --git a/DEVELOPMENT.rst b/DEVELOPMENT.rst
index 547cafe40..a3a939623 100644
--- a/DEVELOPMENT.rst
+++ b/DEVELOPMENT.rst
@@ -3,21 +3,21 @@
========================
Check requirements
-'''''''''''''''''''''
+''''''''''''''''''
- ``docker``
- ``docker-compose``
- ``git``
- ``make``
-**Note about migrating from development
-setups before version 3.4**: You must set the ``OPENSLIDES_USER_DATA_DIR`` variable in
-your ``server/personal_data/var/settings.py`` to ``'/app/personal_data/var'``. Another
-way is to just delete this file. It is recreated with the right paths afterwards.
+**Note about migrating from development setups before version 3.4**: You must set the
+``OPENSLIDES_USER_DATA_DIR`` variable in your ``server/personal_data/var/settings.py``
+to ``'/app/personal_data/var'``. Another way is to just delete this file. It is
+recreated with the right paths afterwards.
Get OpenSlides source code
-'''''''''''''''''''''''''''''
+''''''''''''''''''''''''''
Clone current master version from `OpenSlides GitHub repository
`_::
@@ -30,7 +30,8 @@ When updating the repository, submodules must be updated explicitly, too::
git submodule update
Start the development setup
-''''''''''''''''''''''''''''''
+'''''''''''''''''''''''''''
+
Use `make` to start the setup::
make run-dev
@@ -41,11 +42,14 @@ To stop the setup press Ctrl+C. To clean up the docker containers run::
make stop-dev
Running the test cases
-'''''''''''''''''''''''
+''''''''''''''''''''''
+
For all services in submodules check out the documentation there.
+
Server tests and scripts
--------------------------
+------------------------
+
You need to have python (>=3.8) and python-venv installed. Change your workdirectory to the server::
cd server
@@ -69,7 +73,8 @@ To deactivate it type ``deactivate``. Running all tests and linters::
pytest tests/
Client tests
--------------
+------------
+
You need `node` and `npm` installed. Change to the client's directory. For the first time, install all dependencies::
cd client/
diff --git a/LICENSE b/LICENSE
index 8213f33c7..75c547bde 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2011-2019 Authors of OpenSlides, see AUTHORS
+Copyright (c) 2011-2021 Authors of OpenSlides, see AUTHORS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.rst b/README.rst
index 6c56ca192..3aac2f9e4 100644
--- a/README.rst
+++ b/README.rst
@@ -9,19 +9,22 @@ OpenSlides is a free, web-based presentation and assembly system for
managing and projecting agenda, motions, and elections of assemblies. See
https://openslides.com for more information.
+
Installation
============
-The main deployment method is using Docker and Docker Compose. You only need to
-have these tools installed and no further dependencies. If you want a simpler
+The main deployment method is using Git, Docker and Docker Compose. You only need
+to have these tools installed and no further dependencies. If you want a simpler
setup or are interested in developing, please refer to `development
-instructions
-`_.
+instructions `_.
+
+Get OpenSlides
+--------------
First, you have to clone this repository::
git clone https://github.com/OpenSlides/OpenSlides.git --recurse-submodules
- cd OpenSlides/docker/
+ cd OpenSlides/
**Note about migrating from version 3.3 or earlier**: With OpenSlides 3.4 submodules
and a Docker setup were introduced. If you ran into problems try to delete your
@@ -30,8 +33,17 @@ first and initialize all submodules::
git submodule update --init
-You need to build the Docker images for the client and server with this
-script::
+Setup Docker images
+-------------------
+
+You need to build the Docker images for the client and server and have to setup some
+configuration.
+
+First go to ``docker`` subdirectory::
+
+ cd docker
+
+Then build all images with this script::
./build.sh all
@@ -41,50 +53,56 @@ You must define a Django secret key in ``secrets/django.env``, for example::
"$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 64)" > secrets/django.env
We also strongly recommend that you set a secure admin password but it is not
-strictly required. If you do not set an admin password, the default login
-credentials will be displayed on the login page. Setting the admin password::
+strictly required. If you do not set an admin password, the default login
+credentials will be displayed on the login page. Setting the admin password::
cp secrets/adminsecret.env.example secrets/adminsecret.env
vi secrets/adminsecret.env
Afterwards, generate the configuration file::
- EXTERNAL_HTTP_PORT=8000 m4 docker-compose.yml.m4 > docker-compose.yml
+ m4 docker-compose.yml.m4 > docker-compose.yml
Finally, you can start the instance using ``docker-compose``::
docker-compose up
- # or:
+
+OpenSlides runs on https://localhost:8000/.
+
+Use can also use daemonized instance::
+
docker-compose up -d
docker-compose logs
- # ...
docker-compose down
+
More settings
-------------
When generating the ``docker-compose.yml``, more settings can be adjusted in the
``docker/.env`` file. All changes for the backend are passed into djangos ``settings.py``.
-You can find more information about most settings `here
-`_. To generate
-the ``docker-compose.yml`` use this command::
+You can find more information about most settings in the `settings documentation
+`_. To generate the ``docker-compose.yml`` use this command::
- ( set -a; source .env; m4 docker-stack.yml.m4 ) > docker-stack.yml
+ cd docker
+ ( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml
For an advanced database setup refer to the `advanced configuration
`_.
+
Bugs, features and development
================================
Feel free to open issues here on GitHub! Please use the right templates for
-bugs and features, and use them correctly. Pull requests are also welcome; for
+bugs and features, and use them correctly. Pull requests are also welcome. For
a general overview of the development setup refer the `development instructions
`_.
For security relevant issues **do not** create public issues and refer to
our `security policy `_.
+
Used software
=============
@@ -95,6 +113,7 @@ OpenSlides uses the following projects or parts of them:
* several JavaScript packages (see ``client/package.json``)
+
License and authors
===================
diff --git a/docker/.env b/docker/.env
index f56a7978e..ef96ea053 100644
--- a/docker/.env
+++ b/docker/.env
@@ -63,6 +63,7 @@ POSTFIX_RELAYHOST=
ENABLE_SAML=
ENABLE_ELECTRONIC_VOTING=
DEMO_USERS=
+
# Connections
AUTOUPDATE_DELAY=
CONNECTION_POOL_LIMIT=
@@ -87,6 +88,7 @@ REDIS_PORT=
REDIS_SLAVE_HOST=
REDIS_SLAVE_PORT=
REDIS_SLAVE_WAIT_TIMEOUT=
+
# Logging
DJANGO_LOG_LEVEL=
OPENSLIDES_LOG_LEVEL=