Dieses Repository enthält die Backend-Software für das Unity-Projekt, der Universität Wuppertal.
- Verwaltung von Nutzerprofilen und -daten
- Rollen und Rechteverwaltung
- Datei-Upload
- Bespielung von Game Objects
Bitte Email und Passwort nach der Installation ändern. Email: admin@admin.de Passwort: admin
- Anlegen neuer Nutzer
- Benutzer Freischalten
- Passwort oder Email ändern
- Neues Whiteboard Anlegen
- Versionnummerupdaten
- Rechte ändern
- Profil bearbeiten
- Voraussetzungen
- Voraussetzungen
- Installation
- Anwendung einrichten
- Datenbank mit Docker
- Datenbank ohne Docker
- Backup System Starten
Schritte:
- Navigieren Sie im Adminbereich zum Menüpunkt "Benutzer".
- Wählen Sie die Option "Benutzer erstellen".
- Füllen Sie das Formular mit den benötigten Informationen aus, wie Benutzername, E-Mail, Passwort, Rolle und ob der Benutzer freigeschaltet werden soll.
- Überprüfen Sie die eingegebenen Informationen und klicken Sie auf "Erstellen", um den neuen Nutzer anzulegen.
Schritte:
- Navigieren Sie im Adminbereich zum Menüpunkt "Benutzer".
- Suchen Sie den zu aktivierenden Benutzer in der Liste.
- Klicken Sie auf die drei Punkte, um den Benutzer zu bearbeiten.
- Aktivieren Sie die Checkbox "Aktiv".
- Überprüfen Sie die eingegebenen Informationen und klicken Sie auf "Speichern", um die Einstellung zu speichern.
Schritte:
- Navigieren Sie im Adminbereich zum Menüpunkt "Benutzer".
- Suchen Sie den zu bearbeitenden Benutzer in der Liste.
- Klicken Sie auf die drei Punkte, um den Benutzer zu bearbeiten.
- Hier können Sie die E-Mail-Adresse des Nutzers ändern oder das Passwort zurücksetzen.
- Überprüfen Sie die eingegebenen Informationen und klicken Sie auf "Speichern", um die Einstellung zu speichern.
Schritte:
- Navigieren Sie im Adminbereich zum Menüpunkt "Benutzer".
- Suchen Sie den zu bearbeitenden Benutzer in der Liste.
- Klicken Sie auf die drei Punkte, um den Benutzer zu bearbeiten.
- Wählen Sie im Auswahlmenü "Rollen" die gewünschte Rolle des Nutzers.
- Überprüfen Sie die eingegebenen Informationen und klicken Sie auf "Speichern", um die Einstellung zu speichern.
Schritte:
- Navigieren Sie im Adminbereich zum Menüpunkt "Dateien".
- Dort sind alle bestehenden Whiteboard-Dateien aufgelistet. Die Spalte "Id" ist die relevanteste und wird in der Unity-Anwendung als Wert zur Verknüpfung verwendet.
- Klicken Sie auf "Datei erstellen".
- Hier können Sie nun eine beliebige Datei hochladen.
- Überprüfen Sie die eingegebenen Informationen und klicken Sie auf "Speichern", um die Einstellung zu speichern.
- Den erstellten Eintrag können Sie nun in Unity verwenden.
Schritte: Die Versionnummer wird im Normalfall von der Unity Applikation selbständig geupdatet sollte dies nicht passieren. Können sie das wie folgt ändern.
- Im Adminbereich zum Menüpunkt "Server Config" navigieren.
- Aktuelle Versionnummer eingeben.
- Auf "Speichern" klicken, um die Einstellung zu speichern.
- Im Adminbereich zum Menüpunkt "Profil" navigieren.
- Änderungen am eigenen Profil vornehmen.
- Auf "Speichern" klicken, um die Einstellung zu speichern.
- PHP (Version 8.2)
- Composer (Installations Link)
- Docker (Installations Link)
- Symfony CLI (Installations Link)
- Linux Webserver (Apache oder Nginx)
Laden sie das Backend auf ihren Webserver hoch. Zu dem Pfad Worauf ihre Domain verweist. Beispielsweise: "/var/www/html/qf-colab-backend"
Hierfür gibt es Zwei Optionen:
- Option Git:
Installieren sie Git auf ihren Webserver und clonen sie das Repository in das gewünschte Verzeichnis.
git clone <Gitlab-Repository-URL>- Option Manueller Fileupload
Laden sie per FTP das gesamte GIT Verzeichnis hoch in das gewünschte Verzeichnis.
Damit das Backend einwandfrei läuft müssen die für das Backend benötigte Libarys installiert werden.
Wechseln sie dazu in der Hauptverzeichnis der Anwendung.
- Installiere die Composer-Abhängigkeiten: Sollte es bei der installation zu Fehlern kommen bitte vorher die Datenbank einrichten.
composer install- Bereiten sie das Eviroment vor:
php bin/console cache:clear - Zum nutzen der API müssen nun Keys erstellt werden:
php bin/console lexik:jwt:generate-keypair Um die Datenbank mit hilfe von Docker aufzusetzen führen sie folgende Installationsanleitung durch.
Zuerst Docker allgemein Installieren mit folgende Anleitungen: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
Danach das Docker Compose Repository: https://docs.docker.com/compose/install/linux/#install-using-the-repository
- Datenbank Image erstellen:
docker compose up --build- Starten der Datenbank im Hintergrund:
docker compose up -d- Installiere die Composer-Abhängigkeiten (Zum sicherstellen das alle packages da sind):
composer install- Migration durchführen Anlegen der Benötigten Tabellen auf der Datenbank:
symfony console doctrine:migrations:migrate- Führe Data Fixtures aus, um Initialdaten zu laden:
symfony console --env=dev doctrine:fixtures:load Probleme mit dem Port bei der Verbindung zur Datenbank. Portauslesung durchführen mit dem Befehl:
symfony var:export --multilineUm da Colab Backend zu verwenden ohne Docker müssen sie eine Datei anpassen, dies erkläre ich im folgenden.
Im Hauptverzeichnis der Anwendung befinden sich die ".env" die muss wie folgt bearbeitet werden.
- Öffnen sie die ".env" Datei und bearbeiten sie die folgende Konstante, setzen sie die IP und den PORT ihrer Datenbank ein:
DATABASE_URL="mysql://root:Xr6ONXN4ng^4@<IP>:<PORT>/colab?sslmode=disable&charset=utf8mb4"- Migration durchführen Anlegen der Benötigten Tabellen auf der Datenbank:
symfony console doctrine:migrations:migrate- Führe Data Fixtures aus, um Initialdaten zu laden:
symfony console --env=dev doctrine:fixtures:load Probleme mit dem Port bei der Verbindung zur Datenbank. Portauslesung durchführen mit dem Befehl:
symfony var:export --multilineDiese Anleitung erklärt, wie du das automatische tägliche Backup der Datenbank aktivierst
und wie du im Notfall ein gespeichertes Backup wiederherstellen kannst.
Der Cronjob erstellt jeden Tag automatisch ein Backup der MySQL-Datenbank
aus dem Docker-Container qf-colab-backend-database-1
und speichert es im Projektordner unter backup/.
-
Auf dem Server anmelden
-
Cronjob öffnen
crontab -e
-
Folgende Zeile am Ende hinzufügen
0 3 * * * cd /var/www/html/qf-colab-backend && /usr/bin/php bin/console app:backup:db --env=prod >> var/log/db_backup.log 2>&1
💡 Erklärung:
0 3 * * *→ führt das Backup täglich um 03:00 Uhr nachts aus/var/www/html/qf-colab-backend→ Pfad zum Projekt (anpassen, falls anders)>> var/log/db_backup.log 2>&1→ schreibt Ausgaben in eine Logdatei
-
Datei speichern und schließen
- Wenn du den
nanoEditor nutzt:
→CTRL + O, dannENTER, dannCTRL + X
- Wenn du den
-
Überprüfen, ob Cron läuft
systemctl status cron
Wenn dort steht:
active (running)→ alles korrekt ✅
INFO: Alles weiter ab jetzt dient nur zum Testen, ob es klappt und Wiederherstellen der Datenbank muss nicht ausgeführt werden.
Die Ausgaben und eventuelle Fehlermeldungen findest du hier:
cat var/log/db_backup.logDu kannst das Backup jederzeit auch manuell ausführen:
php bin/console app:backup:dbDie Sicherungsdateien liegen anschließend im Ordner:
backup/
Wenn du ein Backup einspielen möchtest, nutze diesen Befehl:
cat backup/colab-2025-10-06_12-10-00.sql | docker exec -i -e MYSQL_PWD=(`MYSQL_PWD`) qf-colab-backend-database-1 mysql -u root colab💡 Wichtig:
- "colab-2025-10-06_12-10-00.sql ist" nur ein beispiel, schau im Backup Ordner welche genommen werden soll.
- Die Datenbank
colabwird dabei überschrieben. - Ersetze den Dateinamen durch dein gewünschtes Backup.
- Das Passwort (
MYSQL_PWD) steht in deiner.env-Datei alsDB_PASSWORD. - Im Projekt Verzeichnis ausführen
Datenbank prüfen:
docker exec -it qf-colab-backend-database-1 mysql -u root -pDann im MySQL-Fenster:
SHOW DATABASES;
USE colab;
SHOW TABLES;| Zweck | Pfad / Befehl |
|---|---|
| Cronjob anzeigen | crontab -l |
| Cron deaktivieren | crontab -r |
| Backup manuell starten | php bin/console app:backup:db |
-
Der Cronjob läuft auf Ubuntu-Servern standardmäßig.
Prüfen kannst du das mit:systemctl status cron
-
Alte Backups werden automatisch gelöscht (Rotation, Standard: 14 Tage).
-
Wenn du Docker oder PHP auf einem anderen Pfad installiert hast,
passe den Cronjob-Befehl entsprechend an.
Es kann hilfreich sein die Symfony CLI zu installieren, dieses kann schon bei der Installation Fehler beheben: https://symfony.com/download
Probleme bei der Docker installation hier sind zwei hilfreiche Seiten: https://github.com/dunglas/symfony-docker https://symfony.com/doc/current/setup/docker.html
Sollte es bei der Laufzeit zu dem Problem kommen das die Anwendung die Datenbank nicht findet. Führen folgenden befehl aus, dies startet das Docker image neu:
docker-compose up -d