"feat: Added debug server and related components for improved development experience"

This commit is contained in:
2025-05-23 07:24:51 +02:00
parent d457a8d86b
commit 9f6219832c
189 changed files with 35730 additions and 133 deletions

View File

@@ -0,0 +1,93 @@
# **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:
```bash
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:
```bash
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
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
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:
```bash
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:
```bash
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:
```bash
pnpm install
```
2. Starten Sie den Entwicklungsserver:
```bash
pnpm dev
```
Die Anwendung ist dann unter `http://localhost:3000` verfügbar.
Nächster Schritt: [=> Nutzung](./Nutzung.md)