Inhaltsverzeichnis
Wawisy: Technische Dokumentation
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 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