====== Wawisy: Technische Dokumentation ====== [[softwareanleitungen:Wawisy|Zurück zur Wawisy-Übersicht]] Das Programm ist in Python geschrieben, es verwendet das Django-framework für das Backend und JavaScript, HTML5, CSS und jQuery für das Frontend. ===== Wawisy starten ===== Der Quellcode von Wawisy befindet sich im [[https://git.computerwerkorg/computerwerk/wawisy|gitlab]]. Wenn du Wawisy testen oder es weiterentwickeln möchtest, kannst du es lokal ausführen. An deinem System werden dadurch keine Änderungen vorgenommen. Wie die meisten Django-Projekte lässt sich Wawisy mit dem Kommando ./manage.py runserver testweise ausführen. ===== Wawisy im System installieren ===== Wawisy wird auf einem Arch Linux System durch den systemd-Service ''/usr/lib/systemd/system/wawisy.service'' gestartet: [Unit] Description=Wawisy [Service] Type=forking KillMode=none ExecStart=/home/wawisy/start-wawisy.sh ExecStop=/home/wawisy/stop-wawisy.sh WorkingDirectory=/home/wawisy [Install] WantedBy=multi-user.target Das Target //multi-user// startet u.a. den Wawisy-Service und weitere Units, die für den Betrieb von Wawisy nötig sind. Daher setzen wir dieses Target als Standard: systemctl set-default multi-user.target Wir gehen davon aus, dass ein Benutzer mit dem Namen //wawisy// und dem Homeverzeichnis ''/home/wawisy'' existiert. Unter Arch Linux wird der Benutzer mit dem Kommando useradd -m -s /usr/bin/bash wawisy erstellt. Im Homeverzeichnis liegt Wawisy im Ordner ''/home/wawisy/produktiv-wawisy''. Die Skripte ''start-wawisy.sh'' und ''stop-wawisy.sh'' sehen so aus: ///home/wawisy/start-wawisy.sh// #!/bin/bash # Configuration ## user name of wawisy WAWISY_USER="wawisy" ## path of wawisy installation (directory where manage.py is in) WAWISY_PATH="/home/wawisy/produktiv-wawisy" if [ $(whoami) != root ] ; then echo "this script must be run as root" && exit 1 ; fi tmux new-session -s wawisy -d tmux send-keys -t wawisy "su $WAWISY_USER" C-m #tmux send-keys -t wawisy "source activate wawisy" C-m tmux send-keys -t wawisy "cd $WAWISY_PATH && ./manage.py runserver 0.0.0.0:8000" C-m echo -e "Wawisy started. You may now attach to the session using \ntmux a -t wawisy \n(detach using crtl+b and then press d)" ///home/wawisy/stop-wawisy.sh// #!/bin/bash tmux send-keys -t wawisy C-c && while ps aux | grep "manage.py runserver" | grep -v "grep" --silent; do sleep 1; echo waiting for wawisy to exit...; done && tmux send-keys -t wawisy C-d && echo exited