Host your own doodles with jawanndenn

Thursday, March 14. 2019

For a website where event dates are offered to a group of users who need to find those dates that most users can attend, doodles are a good solution. There are well known providers for that sort of thing like, or, with the latter two offering better privacy for european users (no transfer of data to servers in the USA).

Still, hosting your very own service is an attractive alternative. For this there is  which can be downloaded from It is a web application written in python by Sebastian Pipping, libre software.

Installation is easy with

pip install jawanndenn

and then run it from the command line with something like

jawanndenn --host your-domain.tld --port 23456  (the port is arbitrary).
navigate your browser to
https://your-domain.tld:23456 and create your first own poll.

You see the log entries written out on the console. This is nice for testing but to actually use jawanndenn you'll need something more stable than a manually started programm.

As my web server runs with apache this is how I did it:

- set up a subdomain dedicated for the application, like doodle.your-domain.tld

- get certificates for it from Let's Encrypt (i.e. using )

- create a folder for document root of the new subdomain and put a file app.wsgi and a favicon.ico there, the former you'll find at , the latter can be done with touch as we won't see that icon anyways but it saves 404 log entries to have a file named like it.

- make sure that apache2 has mod_wsgi enabled

- set up a virtual host for it in apache2/sites-available. Example:

#  doodle.your-domain.tld

# subdomain dedicated for running the jawanndenn web application
# don't separate .conf and .common since this will lead to errors when both :80 and :443 try to set
# a WSGIDaemonProcess with the same name.
# Don't include processes=1 into the WSGIDaemonProcess definition for this will lead to errors "Single process needed"

<VirtualHost :80>
#       include sites-available/doodle.
your-domain.tld.common ## this won't do, see above
        ServerName doodle.

        WSGIDaemonProcess doodle user=web123 group=web123 threads=5
        WSGIScriptAlias / /var/www/web123/doodle/app.wsgi

    <Directory /var/www/web123/doodle>
        WSGIProcessGroup doodle
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all

   CustomLog /var/log/apache2/doodle.
your-domain.tld.access.log combined
   ErrorLog  /var/log/apache2/doodle.your-domain.tld.error.log



ServerName doodle.your-domain.tld

    # supply a different name for the WSGIDaemonProcess on :443
    WSGIDaemonProcess doodler user=web123 group=web123 threads=5
    WSGIScriptAlias / /var/www/web123/doodle/app.wsgi

    <Directory /var/www/web123/doodle>
        WSGIProcessGroup doodler
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all

   CustomLog /var/log/apache2/doodle.your-domain.tld.access.log combined
   ErrorLog  /var/log/apache2/doodle.your-domain.tld.error.log

        SSLEngine on

        SSLCertificateFile      /etc/dehydrated/certs/
        SSLCertificateKeyFile   /etc/dehydrated/certs/
        SSLCertificateChainFile /etc/dehydrated/certs/


Now restart apache2, weed out typos and your done. You create new doodles from doodle.your-domain.tld,
make note of the handle of the new poll and embed it on a web site with an iframe like

<div class="dudel">
<iframe src="https://doodle.your-domain.tld/poll/a9108dcfa12006ce3c229d6f0110c5f976df14e963ddd9b7ffc8618013a0bd7e"
        width="100%" height="600" frameborder="0"
        allowfullscreen >
  <p> <a href="">
    Fallback link for browsers that don't support iframes
  </a> </p>


I had no luck trying to use sandbox with the iframe, YMMV


Now, is that secure?

Do a little exploration with the 'View Web Source' feature of your browser to see all the relevant URIs and handles visible in plain text. Who ever gets to that page with the doodles can do shyte like

  • create 'unofficial' doddle polls
  • post spam as the name of a doodle
  • what the heck

Thus, we do have the security feature of 'data never leave my own site'. Which is cool.
All the rest of your desired security you will have to provide on your own.

Now, can I edit a vote? As it comes jawanndenn does not support any editing of votes which is regarded a security feature but makes doodles pretty useless in real life cause people do change opinion all the time. You cannot manually edit the stored votes cause they are stored in a binary format that's hard to access.

What you can do is add that functionality by yoursel like modify the vote() method of the _Poll object to replace the prior vote with the new vote if the name is exactly the same. 


Was und wo speichert KDE4 eigentlich alles?

Tuesday, November 22. 2011

 Und wie putze ich?

Also zuerst mal den Trash, wo der liegt, hatte ich in einem früheren Beitrag mal notiert. Dolphin hat den Mülleimer in der linken Spalte und nach Rechtsklick/Empty Trash ist das Verzeichnis auch wirklich leer. Was nicht heisst, das die Sachen da wirklich weg sind, wer low level die Festplatte untersucht, wird fast alles wiederfinden können.)

Ich hatte schon mal ein Programm KSweeper entdeckt und aus den debian-repositories installiert und laufen lassen, der Doku des Programmes entnahm ich einen Hinweis, der mich zu /var/tmp/kdecache-user führte. Ok, da gibt es div. Dateien und Unterordner, etwa http/. Sweeper laufen lassen (im Abschnitt Browser war alles angehakt), im Subdir http/ nachgeschaut und die tausende von Dateien dort sind weiter vorhanden. Hm, da ist wohl noch Platz für Verbesserungen...

Immerhin, mit dem Pfad an der Hand zu Google und zu einem längeren und recht gut strukturierten Dokument gelangt, aus Ubuntu - Sicht aber das tut ihm keinen Abbruch: Privacy Cleanup 101 Das ist eine Menge Lesestoff. Einem der Links dort folgend finde ich KScrubber. Das kann man als .deb herunterladen und mit sudo dpkg -i kscrubber_1.2.8-1_all.deb installieren, bei mir monierte es unerfuellt Abhaengigkeiten, die ein apt-get install -f dann loeste. KScrubber laeuft von der command line.

Da das Ziel zunaechst Forschung war, habe ich KScrubber mit  sudo kscrubber --verbose --sim --clean|less im schwatzhaften Simulationsmodus gestartet, less hilft, die umfangreichen Ausgaben zu lesen.

(wird fortgesetzt)

(Page 1 of 1, totaling 2 entries)