# **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 cd ``` ### **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 ``` ### **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 :/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 = ; ``` --- ## **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)