# MYP Installationsanleitung

Diese Anleitung beschreibt die Schritte zur Installation und Konfiguration des Mercedes-Benz 3D-Druck-Management-Systems (MYP) für den Standort Berlin Werk 040.

## Voraussetzungen

- Windows 10/11 oder aktuelles Linux/macOS
- Docker Desktop installiert und konfiguriert
- OpenSSL installiert (für Windows: [Win64 OpenSSL v3.1.1](https://slproweb.com/products/Win32OpenSSL.html))
- Administratorrechte für die Hostnamen-Konfiguration

## Installationsschritte

### 1. Projekt herunterladen

Klonen Sie das Repository oder entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl.

### 2. Hostnamen konfigurieren

#### Windows:

1. PowerShell als Administrator starten (Rechtsklick -> "Als Administrator ausführen")
2. Zum Projektverzeichnis navigieren:
   ```powershell
   cd C:\Pfad\zum\Projektarbeit-MYP
   ```
3. Hostnamen-Konfigurationsskript ausführen:
   ```powershell
   .\setup_hosts.ps1
   ```

#### Linux/macOS:

1. Terminal öffnen
2. Zum Projektverzeichnis navigieren:
   ```bash
   cd /pfad/zum/Projektarbeit-MYP
   ```
3. Hostnamen-Konfigurationsskript ausführen:
   ```bash
   sudo ./setup_hosts.sh
   ```

### 3. SSL-Zertifikate generieren

#### Windows:

1. PowerShell als Administrator starten (falls nicht bereits offen)
2. Zum Projektverzeichnis navigieren
3. SSL-Zertifikat-Generierungsskript ausführen:
   ```powershell
   .\generate_ssl_certs.ps1
   ```

#### Linux/macOS:

1. Terminal öffnen (falls nicht bereits offen)
2. Zum Projektverzeichnis navigieren
3. SSL-Zertifikat-Generierungsskript ausführen:
   ```bash
   sudo ./generate_ssl_certs.sh
   ```

### 4. Docker-Container starten

Nachdem die Hostnamen und SSL-Zertifikate konfiguriert wurden, können Sie die Anwendung starten:

```
docker-compose up -d
```

Dies startet alle erforderlichen Container:
- Backend (Flask) auf `raspberrypi:443` mit HTTPS
- Frontend (Next.js) auf Port 3000
- Caddy Proxy auf `m040tbaraspi001.de040.corpintra.net:443` mit HTTPS

### 5. Zugriff auf die Anwendung

Nach dem Start können Sie auf die Anwendung über folgende URLs zugreifen:

- **Frontend**: https://m040tbaraspi001.de040.corpintra.net/
- **Backend API**: https://raspberrypi/

Da selbstsignierte Zertifikate verwendet werden, zeigt Ihr Browser beim ersten Zugriff eine Sicherheitswarnung an. Klicken Sie auf "Erweitert" und dann auf "Fortfahren" (oder ähnliche Option je nach Browser), um auf die Anwendung zuzugreifen.

## Fehlerbehebung

### Problem: Zertifikatsfehler im Browser

1. Überprüfen Sie, ob die SSL-Zertifikate korrekt generiert wurden
2. Führen Sie `generate_ssl_certs.ps1` (Windows) oder `generate_ssl_certs.sh` (Linux/macOS) erneut aus
3. Starten Sie die Docker-Container neu: `docker-compose restart`

### Problem: Hostnamen werden nicht aufgelöst

1. Überprüfen Sie, ob die Hosts-Einträge korrekt in der Hosts-Datei vorhanden sind:
   - Windows: `type C:\Windows\System32\drivers\etc\hosts`
   - Linux/macOS: `cat /etc/hosts`
2. Führen Sie das Hostnamen-Konfigurationsskript erneut aus
3. Stellen Sie sicher, dass die Hostnamen in den Docker-Container-Konfigurationen übereinstimmen

### Problem: Docker-Container starten nicht

1. Überprüfen Sie die Docker-Logs: `docker-compose logs`
2. Stellen Sie sicher, dass Docker Desktop läuft
3. Überprüfen Sie, ob die Ports 80 und 443 bereits verwendet werden:
   - Windows: `netstat -an | findstr "80 443"`
   - Linux/macOS: `sudo lsof -i :80,443`

## Update und Neustart

Um die Anwendung zu aktualisieren oder nach Änderungen neu zu starten:

1. Stoppen Sie die Container: `docker-compose down`
2. Aktualisieren Sie das Repository (falls erforderlich)
3. Bauen Sie die Container neu: `docker-compose build`
4. Starten Sie die Container neu: `docker-compose up -d`

## Zusätzliche Informationen

Weitere Informationen zur SSL-Konfiguration finden Sie in der Datei `SSL_KONFIGURATION.md`. 