tldr: a deployment of Framadate, free and open-source software (maintained by Framasoft) for making polls and scheduling events, is now available on the Wikimedia Toolforge, under the name wudele.
What is Framadate?
Framadate started as a fork of the STuDS software developed at Strasboug University, and branded FramaX in the Framasoft fashion. Over the years, Framasoft improved and rewrote it (see here, there, or here and there) − first as “OpenSondage” and now as “Framadate”. Framadate has been a flagship service of Framasoft and their “De-google-ify Internet” campaign (launched in 2014), and based on their public statistics, is an amazing success.
Framadate and me
Digging back into the depths of my inbox, the first Framadate poll I answered was in July 2011 ; and for me like for many other Wikimedians (especially French-speaking), it became the de-facto service for planning a meeting.
Framasoft’s “De-google-ify Internet” campaign had always been two-fold: providing free and open-source alternatives to proprietary services ; and encouraging people and organisations to self-host these services. As such, I had long played with the idea of deploying a Framadate instance in the Wikimedia Cloud, but never got around doing it.
Last September, Framasoft’s announced their intention to de-frama-tify the Internet, and progressively restrict and close down some of their services. While Framadate is here to stay, this announcement was the little push I needed to sit down and get it done.
This was done in an evening ; then doing the write-up eluded me for a couple of months. With the news from the framaconfinement front, of how the Frama services are under high load, I though it was about time to do my little part (although it does not sound like Framadate is their biggest issue, but hey, one has to do something).
A short technical recap
Technically-wise, Framadate is a fairly simple PHP/MySql application. That simplicity meant that it was a good fit for the Toolforge Platform-as-a-Service environment.
Framasoft provides a step-by-step tutorial on how to deploy Framadate. My requirements were however a bit different as I wanted to, if possible:
- install the package using a dependency manager (in this case, Composer) ;
- manage the deployment using configuration management (Ansible being my personal go-to tool)
While the framadate package is not published on Packagist (nor would it necessarily make sense to do so), Composer does allow to specify the ZIP URL. I picked the last release, 1.1.10, since the more recent 1.2.0 was an alpha-release.
To get a feel for the software, its dependencies and its configuration, I iterated within a docker-compose setup. While Framadate has an interactive configuration setup, I wanted to have the necessary files under configuration management: I could figure out what values I needed, and how to set them (the config file used PHP consts, but I wanted to be able to override them via environment variables for the Docker setup). I could also customize the appearance. In the end, I significantly drew from the experimental upstream Docker setup of the 1.2 alpha version.
Once happy with my local setup, I set out to deploy the software on Toolforge. Git history serves as a somewhat idealized recap of the steps involved, with explanations in the commit messages − to which I will refer the reader interested in technical details.
I ran into several bugs in the release package. As they had been already fixed in the Git repository, I could add back the workarounds (mostly in application-patch.yml). Eventually I figured using the 1.1.10 release package was a mistake, and endeavored to use the 1.2 alpha release − this became its very own rabbit hole as I hit Exception after Exception in the database migrations, until I decided to leave it be. The interested reader may peruse the upgrade-v1.2.0-alpha.1 branch.
A note on privacy
Framadate can optionally ask for an email address when making a poll, so it can send the poll creator useful links and to be able to remind them of their polls. However, if enabled, this become strictly required. They are then stored in the database for at least as long as the poll exists.
What about the name?
Wudele is another name of the Schnappviecher (or Q20619204) a folkloristic character from the Egetmann festival which takes place in Tramin an der Weinstraße, South-Tyrol. It sounds a bit like a certain other similar service. And the wudele is cute (sort of).