Projektarbeit-MYP/frontend/docs/Installation.md

3.0 KiB

Installation und Einrichtung

In diesem Abschnitt wird beschrieben, wie die MYP-Anwendung installiert und eingerichtet wird. Diese Schritte umfassen die Vorbereitung der Umgebung, das Konfigurieren der notwendigen Dienste und die Bereitstellung des Projekts.


Voraussetzungen

Hardware und Software

  • Raspberry Pi: Die Anwendung ist für den Einsatz auf einem Raspberry Pi optimiert, auf dem Raspbian Lite installiert sein sollte.
  • Docker: Docker und Docker Compose müssen installiert sein.
  • Netzwerkzugriff: Der Raspberry Pi muss im Netzwerk erreichbar sein.

Abhängigkeiten

  • Node.js (mindestens Version 20)
  • PNPM (Paketmanager)
  • SQLite (für lokale Datenbankverwaltung)

Schritte zur Einrichtung

1. Repository klonen

Klonen Sie das Repository auf Ihr System:

git clone <repository-url>
cd <repository-ordner>

2. Konfiguration der Umgebungsvariablen

Passen Sie die Datei .env.example an und benennen Sie sie in .env um:

cp .env.example .env

Erforderliche Variablen:

  • OAUTH_CLIENT_ID: Client-ID für die OAuth-Authentifizierung
  • OAUTH_CLIENT_SECRET: Geheimnis für die OAuth-Authentifizierung

3. Docker-Container erstellen

Führen Sie das Skript build.sh aus, um Docker-Images zu erstellen:

bash docker/build.sh

Dies erstellt die notwendigen Docker-Images, einschließlich der Anwendung und eines Caddy-Webservers.

4. Docker-Images speichern

Speichern Sie die Images in komprimierter Form, um sie auf anderen Geräten bereitzustellen:

bash docker/save.sh <image-name>

5. Bereitstellung

Kopieren Sie die Docker-Images auf den Zielserver (z. B. Raspberry Pi) und führen Sie deploy.sh aus:

scp docker/images/*.tar.xz <ziel-server>:/path/to/deployment/
bash docker/deploy.sh

Das Skript führt die Docker Compose-Konfiguration aus und startet die Anwendung.

(Optional: 6. Admin-User anlegen)

Um einen Admin-User anzulegen, muss zuerst das Container-Image gestartet werden. Anschließend meldet man sich mittels der GitHub-Authentifizierung bei der Anwendung an.

Der nun in der Datenbank angelegte User hat die Rolle guest. Über das CLI muss man nun in die SQLite-Datenbank (die Datenbank sollte außerhalb des Container-Images liegen) wechseln und den User updaten.

SQL-Befehl, um den User zu updaten:

sqlite3 db.sqlite3
UPDATE users SET role = 'admin' WHERE id = <user-id>;

Start der Anwendung

Sobald die Docker-Container laufen, ist die Anwendung unter der angegebenen Domain oder IP-Adresse erreichbar. Standardmäßig verwendet der Caddy-Webserver Port 80 (HTTP) und 443 (HTTPS).


Optional: Entwicklungsmodus

Für lokale Tests können Sie die Anwendung ohne Docker starten:

  1. Installieren Sie Abhängigkeiten:
    pnpm install
    
  2. Starten Sie den Entwicklungsserver:
    pnpm dev
    
    Die Anwendung ist dann unter http://localhost:3000 verfügbar.

Nächster Schritt: => Nutzung