From 6de2d219456800a71e97c19ad8636249d62cf07b Mon Sep 17 00:00:00 2001
From: Bernhard Heinloth <heinloth@cs.fau.de>
Date: Wed, 6 Apr 2022 14:01:20 +0200
Subject: [PATCH] Installationshinweise zum Webfrontend

---
 .gitignore |  2 +-
 INSTALL.md | 44 ++++++++++++++++++++++++++++++++++++++++++++
 README.md  |  2 +-
 3 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index aa9c465..63dd15e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,5 @@ firmware/build/
 firmware/esp-idf/
 firmware/xtensa-esp32-elf/
 firmware/main/config.h
-server/config.php
+server/www/config.php
 sketch_timecube/config.h
diff --git a/INSTALL.md b/INSTALL.md
index 0f7e2b5..c556afc 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -109,3 +109,47 @@ Auch hier muss zuerst eine Konfiguration (im Beispiel `config.h` im aktuellen Ve
 wozu die Vorlage im Repo unter `firmware/main/example-config.h` verwendet werden kann.
 
     docker run --rm -it -v $(pwd)/config.h:/timecube/firmware/main/config.h --device=/dev/ttyUSB0 inf4/timecube
+
+
+
+Webfrontend
+===========
+
+Der Zeitwürfel läd die Daten regelmäßig über das WLAN an das Frontend.
+Dafür wird ein Webserver mit PHP und einer PostgreSQL Datenbank benötigt (kann aber leicht zu einer anderen Datenbank geändert werden, siehe `server/www/index.php:18`).
+Die Zugangsdaten werden in `server/www/config.php` konfiguriert, ein Beispiel ist unter `server/example-config.php` zu finden.
+
+
+Lokal
+-----
+
+Das Frontend des Zeitwürfels kann einfach in eine bestehende Serverinfrastruktur integriert werden.
+
+### Webserver
+
+Es muss sichergestellt werden, dass die Submodule im Repo geladen sind:
+
+    git submodule init
+    git submodule update
+
+Danach muss lediglich noch das Verzeichnis `server/www/` über die Webserverkonfiguration zugänglich gemacht werden.
+
+
+### Datenbank
+
+Eine neue Datenbank muss erstellt werden, das Schema ist unter `server/database.sql` zu finden.
+Um neue Benutzer anzulegen, wird die MAC Adresse des Würfels benötigt (kann z.B. über eine serielle Konsole beim verbundenen Zeitwürfel ausgelesen werden), die Datei `server/insert_new_user.sql` zeigt den dafür notwendigen SQL Query.
+
+
+Docker
+------
+
+Alternativ kann das ganze Webfrontend (Webserver und Datenbank) auch in Docker gestartet werden, dazu gibt es mit `server/docker_compose.yml` eine vorgegeben Spezifikation, welche einfach gestartet werden kann:
+
+    cd server
+    docker-compose up -d
+
+und schon kann über http://localhost/ zugegriffen werden
+(für den Beispielbenutzer `chris` einfach http://localhost/chris/ aufrufen)
+
+Dieser Dienst muss nun noch über das Netzwerk erreichbar sein, die Würfelkonfiguration muss den dazu passenden Host haben.
diff --git a/README.md b/README.md
index d9cab9a..ac0f941 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Anleitung
 ---------
 
   * [Detaillierte und bebilderte Montageanleitung](MONTAGE.md)
-  * [Anleitung zum Bauen der Firmware für den Würfel](INSTALL.md)
+  * [Anleitung zum Bauen der Firmware für den Würfel und die Einrichtung des Webfrontends](INSTALL.md)
 
 
 Lizenz
-- 
GitLab