by kellerben

kellerben / dudle

Online event coordination and survey application

225 Stars 47 Forks Last release: almost 3 years ago (v1.2) GNU Affero General Public License v3.0 769 Commits 4 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


  • Benjamin Kellermann
  • a lot of contributors of small code pieces


GNU AGPL v3 or higher (see file License)


  • ruby >=1.9
  • git >=1.6.5
  • ruby-gettext (for localization)
  • gettext, potool, make (optional, if you want to generate localization files)


  1. Place this application into a directory where cgi-scripts are evaluated.
  2. If you want to change some configuration, state it in the file
    for help) to start with a default configuration.
  3. The webserver needs the permission to write into the directory
  4. You need

    files in order to use localisation. You have 2 possibilities:
    1. Run this small script to fetch the files from the main server:
       for i in locale/??; do
        wget -O $i/dudle.mo https://dudle.inf.tu-dresden.de/locale/`basename $i`/dudle.mo
    1. Build them on your own. This requires gettext, ruby-gettext, potool, and make to be installed.
       sudo aptitude install gettext potool make
  5. In order to let access control work correctly, the webserver needs auth_digest support. It therefore may help to type:

    sudo a2enmod auth_digest
  6. In order to get atom-feed support you need ruby-ratom to be installed. E.g.:

    sudo aptitude install ruby-dev libxml2-dev zlib1g-dev
    sudo gem install ratom
  7. To make titles with umlauts working you need to check the encoding in .htaccess, e.g.

    SetEnv LC_ALL "en_US.UTF-8"
  8. It might be the case, that you have to set some additional Variables in your .htaccess:

    SetEnv GIT_AUTHOR_NAME="http user"
    SetEnv [email protected]
  9. If you installed dudle to a subdirectory (i.e. http://$YOUR_SERVER/$SOMEDIR/...), than you want to adopt the ErrorDocument directives in your .htaccess. (You need an absolute path here!)

  10. Try to open http://$YOUR_SERVER/check.cgi to check if your config seems to work.

  11. You may want to install a cronjob to cleanup dudle polls. See dudle_cleanup.sh for an example.

  12. You can enable a maintenance mode if you need to change something with your installation. Using this mode, all users will see a static message and are not able to change anything. In order to enable this mode, create a file named

    which may include a custom message. E.g.:
    echo "
    We are updating the servers and expect to be online on 0 am, January 1st, 1970 (UTC).
    " > $DUDLE_INSTALLATION_PATH/maintenance.html

Docker image

There are two docker image available * https://hub.docker.com/r/fonk/dudle/ with the code from here https://github.com/fonk/docker-dudle * https://github.com/jpkorva/dudle-docker

Pimp your Installation

  • If you want to create your own Stylesheet, you just have to put it in the folder
    . Afterwards you may config this one to be the default Stylesheet. Examples can be found here:
    • https://dudle.inf.tu-dresden.de/css/ You can fetch the whole repo from https://github.com/kellerben/dudle-css
  • If you want to extend the functionality you might want to place a file
    Examples can be found here: https://dudle.inf.tu-dresden.de/extensions/ You can clone the whole sourcecode here:
    • https://github.com/kellerben/dudle-extensions-participate
    • https://github.com/kellerben/dudle-extensions-symcrypt
    • https://github.com/kellerben/dudle-extensions-asymcrypt
    • https://github.com/kellerben/dudle-extensions-gpgauth
    • https://github.com/kellerben/dudle-extensions-anonymous Note, that extensions are loaded in alphabetic order! The symcrypt extension e.g. needs the participate extension and therefore you need to name it “10-participate” in order to get executed first.


If you set

to your lang, poedit will launch automatically when building the application. E.g.:
git pull
make # will launch poedit if new french strings are to be translated
  • To add a new translation
    • first add a new folder for your language under $DUDLEHOMEFOLDER/locale,
    • copy the dudle.pot file into your folder and name it dudle.po
    • translate sentences and phrases in your dudle.po file
    • add an entry for your language in dudle/dudle.rb at line 245

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.