Go to file
Gernot Schulz a1e65e8a47 Docker: Rename proxy-related variables
HAProxy was replaced by Caddy, so obviously variables should not longer
carry HAPROXY in their names to avoid confusion.

To hopefully make future changes less likely to break configurations,
we'll keep variable and image names generic (proxy instead of caddy).
2021-02-08 14:53:45 +01:00
.github update client 2021-02-05 12:54:09 +01:00
autoupdate@020bb29d99 Caddy: Do not use TLS for autoupdate connection 2021-02-05 17:59:36 +01:00
caddy Use https in dev mode 2021-02-06 11:47:38 +01:00
client Merge pull request #5851 from ostcar/caddy 2021-02-05 18:17:51 +01:00
docker Docker: Rename proxy-related variables 2021-02-08 14:53:45 +01:00
logo Updated improved OpenSlides logo. 2019-09-13 13:25:41 +02:00
server Added information to poll start and stop. 2021-02-05 15:28:37 +01:00
.gitignore OpenSlides3+: External Autoupdate Service 2021-01-14 07:55:41 +01:00
.gitmodules OpenSlides3+: External Autoupdate Service 2021-01-14 07:55:41 +01:00
ADVANCED.rst Updated README 2021-02-05 12:01:48 +01:00
AUTHORS Fix server stop working because of changed python package (#5582) 2020-09-29 16:06:28 +02:00
CHANGELOG.rst Updated Changelog for 3.3 release 2020-12-17 23:22:46 +01:00
dc-dev.sh OpenSlides3+: External Autoupdate Service 2021-01-14 07:55:41 +01:00
DEVELOPMENT.rst Updated README 2021-02-05 12:01:48 +01:00
LICENSE Updated README 2021-02-05 12:01:48 +01:00
Makefile OpenSlides3+: External Autoupdate Service 2021-01-14 07:55:41 +01:00
README.rst Updated README 2021-02-05 12:01:48 +01:00
SECURITY.md Docs and security email 2021-01-17 21:18:52 +01:00

============
 OpenSlides
============

What is OpenSlides?
===================

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 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 <DEVELOPMENT.rst>`_.

Get OpenSlides
--------------

First, you have to clone this repository::

    git clone https://github.com/OpenSlides/OpenSlides.git --recurse-submodules
    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
``settings.py``. If you have an old checkout you need to check out the current master
first and initialize all submodules::

    git submodule update --init

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

You must define a Django secret key in ``secrets/django.env``, for example::

    printf "DJANGO_SECRET_KEY='%s'\n" \
      "$(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::

    cp secrets/adminsecret.env.example secrets/adminsecret.env
    vi secrets/adminsecret.env

Afterwards, generate the configuration file::

    m4 docker-compose.yml.m4 > docker-compose.yml

Finally, you can start the instance using ``docker-compose``::

    docker-compose up

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 in the `settings documentation
<server/SETTINGS.rst>`_. To generate the ``docker-compose.yml`` use this command::

    cd docker
    ( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml

For an advanced database setup refer to the `advanced configuration 
<ADVANCED.rst>`_.


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
a general overview of the development setup refer the `development instructions
<DEVELOPMENT.rst>`_.

For security relevant issues **do not** create public issues and refer to
our `security policy <SECURITY.md>`_.


Used software
=============

OpenSlides uses the following projects or parts of them:

* several Python packages (see ``server/requirements/production.txt`` and
  ``server/requirements/big_mode.txt``)

* several JavaScript packages (see ``client/package.json``)


License and authors
===================

OpenSlides is Free/Libre Open Source Software (FLOSS), and distributed
under the MIT License, see ``LICENSE`` file. The authors of OpenSlides are
mentioned in the ``AUTHORS`` file.