Skip to content

A web application for scheduling meetings and general polling.


Notifications You must be signed in to change notification settings


Repository files navigation


Bitpoll is a software to conduct polls about Dates, Times or general Questions.

This is a new version of the Dudel from opatut ( used on, rewritten using the Django framework as a backend.

Using Docker

The docker image is built automatically from the current master branch. You can use the following commands to set up the docker container:

Create a directory for static and config files:

mkdir -p run/{log,static,config}

Get the example settings file and adapt it according to your needs:

wget -O run/config/

It is important to change at least the database settings, secret key, and allowed hosts.

Start the docker container:

docker run -a stdout -a stderr --rm --name bitpoll -p 3008:3008 -p 3009:3009 --volume ./run/static:/opt/static --volume ./run/config:/opt/config

The container is reachable on port 3009. If you use an external web server, you can use uwsgi traffic on port 3008 and serve the static assets from run/static at /static/.

Manual Install

Get the code:

git clone

Generate a Python virtualenv and install dependencies:

virtualenv -p $(which python3) .pyenv
source .pyenv/bin/activate
pip install -r requirements.txt

Copy bitpoll/ to bitpoll/ and customize the local settings.

Initialise Database:

./ migrate

Run Testserver:

./ runserver


In production Senty is used for error reporting. django-auth-ldap is used vor login via ldap uwsgi to serve the app

Install Dependencies for Production:

sudo apt install g++ make python3-psycopg2 python3-ldap3 gettext gcc python3-dev libldap2-dev libsasl2-dev

Install Python Dependencies

pip install -r requirements-production.txt

Configure examples are in

our used uwsgi config can be found at

For Production systems it is nessesarry to run

./ compilemessages
./ collectstatic

Management of Dependencies

We use pip-tools to manage the dependencies. After modification or the requirements*.in files or for updates of packages run

pip-compile --upgrade --output-file requirements.txt
pip-compile --upgrade --output-file requirements-production.txt

to sync your enviroment with the requirements.txt just run


this will install/deinstall dependencies so that the virtualenv is matching the requirements file