Need help with dudle?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

246 Stars 50 Forks GNU Affero General Public License v3.0 781 Commits 67 Opened issues


Online event coordination and survey application

Services available


Need anything else?

Contributors list


  • 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/`basename $i`/
    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 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


There is a docker image available *

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:
    • You can fetch the whole repo from
  • If you want to extend the functionality you might want to place a file
    Examples can be found here: You can clone the whole sourcecode here:
    • 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.