Der Quelltext von https://satzgenerator.de/.
Es ist in Python programmiert, benutzt das Bottle Webframework, den Gunicorn WSGI HTTP-Server, den Datenbank ORM SQLAlchemy mit PyMySQL MySQL-Client sowie PyZufall zum generieren der zufälligen Sätze. Das Frontend ist mit Bootstrap und jQuery gebaut.
Generell wird auch SQLite unterstützt, z.B. für Testzwecke. Aktuell funktioniert es nicht. #2
pip install -r requirements.txt
cp config.ini.dist config.ini
vim config.ini
gunicorn -w 2 --bind='0.0.0.0:8081' satzgenerator:app
Ein Cronjob löscht jede Nacht Sätze aus der Datenbank, die weder bewertet noch geteilt wurden.
crontab -e
20 4 * * * cd code/satzgenerator.de/; /usr/bin/python -c 'from satzgenerator import cron; cron()'
Eine Entwicklungsumgebung, die alle Abhängigkeiten enthält, kann mit Nix erstellt werden.
Es kann der integrierte Webserver gestartet werden, um lokal zu entwickeln.
$ nix-shell -p python35Packages.{bottle,gunicorn,sqlalchemy,pymysql,pyzufall} sqlite
$ python satzgenerator/__init__.py
Bottle v0.12.11 server starting up (using WSGIRefServer())...
Listening on http://127.0.0.1:8081/
Hit Ctrl-C to quit.
Bei Änderungen am Code wird er automatisch neu gestartet.
Getestet wurde es mit Python 3.5.