Libre alternative to Doodle
Project description
What is jawanndenn?
jawanndenn is a simple web application to schedule meetings and run polls, a libre alternative to Doodle. It is written in Python and JavaScript using
Django (with django-probes)
Gunicorn (with gunicorn-color-logger)
Materialize Material Design CSS/JS
jawanndenn is libre software developed by Sebastian Pipping. The server code is licensed under the GNU Affero GPL license version 3 or later whereas the client code is licensed under the GNU GPL license version 3 or later.
Please report bugs and let me know if you like it.
Installation
To install the latest release without cloning the Git repository:
# pip3 install jawanndenn --user
To install from a Git clone:
# ./setup.py install --user
Deployment with docker-compose
Create a simple file .env like this one:
JAWANNDENN_POSTGRES_NAME=jawanndenn JAWANNDENN_POSTGRES_USER=jawanndenn JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b
Make sure to use your own values!
You can then build and run a docker image using docker-compose up --build.
PostgreSQL data is saved to ~/.jawanndenn-docker-pgdata/ on the host system. The app is served on localhost:54080.
Deployment with Apache mod_wsgi
Deployment with mod_wsgi is possible but not recommended, e.g. because it is difficult to pass environment variables to Django using mod_wsgi. To make it work, the SetEnv directive, file jawanndenn/wsgi.py, and this StackOverflow answer may be of use. jawanndenn needs these variables:
JAWANNDENN_POSTGRES_NAME
JAWANNDENN_POSTGRES_USER
JAWANNDENN_POSTGRES_PASSWORD
JAWANNDENN_SECRET_KEY
Please check the the related documentation of Django, too.
Feel free to file a support ticket or drop me a mail, if you cannot get it to work.
Command line usage
When installed, invocation is as simple as
# jawanndenn
During development, you may want to run jawanndenn from the Git clone using
# PYTHONPATH=. python3 -m jawanndenn --debug
Currently supported arguments are:
# jawanndenn --help usage: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix PATH] [--database-sqlite3 FILE] [--django-secret-key-file FILE] [--max-polls COUNT] [--max-votes-per-poll COUNT] [--dumpdata] [--loaddata FILE.json] optional arguments: -h, --help show this help message and exit --debug Enable debug mode (default: disabled) --host HOST Hostname or IP address to listen at (default: 127.0.0.1) --port PORT Port to listen at (default: 8080) --url-prefix PATH Path to prepend to URLs (default: "") --database-sqlite3 FILE File to write the database to (default: ~/jawanndenn.sqlite3) --django-secret-key-file FILE File to use for Django secret key data (default: ~/jawanndenn.secret_key) limit configuration: --max-polls COUNT Maximum number of polls total (default: 1000) --max-votes-per-poll COUNT Maximum number of votes per poll (default: 40) data import/export arguments: --dumpdata Dump a JSON export of the database to standard output, then quit. --loaddata FILE.json Load a JSON export of the database from FILE.json, then quit.
Migrating data from jawanndenn 1.x to 2.x
Migration takes four steps:
Update to the latest version of jawanndenn 1.x, e.g. by running: pip2 install --upgrade 'jawanndenn<2'; the JSON data export was first introduced with release 1.6.3.
Export existing polls:
If you’re using the commend line app: python2 -m jawanndenn --dumpdata > dump.json
If you’re using docker-compose: docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
Deploy latest jawanndenn 2.x somewhere (as described above) or just pip3 install 'jawanndenn>=2' it somewhere
Import the JSON dump created in step (2):
If you’re using the commend line app: python3 -m jawanndenn --loaddata dump.json
If you’re using docker-compose: docker-compose run -T jawanndenn sh -c 'cat > /tmp/dump.json && DJANGO_SETTINGS_MODULE=jawanndenn.settings python3 -m django loaddata /tmp/dump.json' < dump.json
Goals
Libre software to host yourself, unlike Doodle
More simple, sexy and/or fun than libre alternatives, in alphabetic order:
(Foodle (discontinued; on GitHub, ex. DFN scheduler, ex. DFN Terminplaner+))
Framadata (Sources, ex. OpenSondage, ex. STUdS)
Keep things simple, usable, maintainable
Support invocation from the command line, e.g. for spontaneous polls in a LAN
Have security in mind
Please check out the list of upcoming features.
Non-goals
Use of heavy frameworks: building blocks only
Read availability from calendars
Thanks
Special thanks to Arne Maier (@KordonDev) for reporting an XSS vulnerability, responsibly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for jawanndenn-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e275d2be120d6f8147970369c2b68752c719c1c45a67071f910a3f9efc7c0d0c |
|
MD5 | 0764b8e9adec54cee143db32340d817f |
|
BLAKE2b-256 | d4c28771c8a3f37acf668deec7dd7422e5b8ef665ed2f2e5cf71f1805d18953e |