Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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

docker build --tag <imagename>
cd <workdir>
mkdir -p run/{log,static,config}
cp <original_dir>/bitpoll/ run/config/
vim run/config/
docker run -a stdout -a stderr --rm --name bitpoll -p 3008:3008 -p 3009:3009 --volume `pwd`/run/static:/opt/static --volume `pwd`/run/config:/opt/config --volume `pwd`/run/log/:/opt/log <image_name>

The Static assets from /run/static have to be served from the Webserver at /static/. The Container listens for uwsgi traffic on Port 3008 and for HTTP traffic on Port 8009

TODO: add example nginx Config

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