260 lines
5.2 KiB
Markdown
260 lines
5.2 KiB
Markdown
# MYP (Mercedes-Benz Yard Printing) Platform
|
|
|
|
Eine vollständige 3D-Drucker-Management-Plattform für Mercedes-Benz Werk 040 Berlin.
|
|
|
|
## Schnellstart
|
|
|
|
### Windows (PowerShell)
|
|
|
|
```powershell
|
|
# Als Administrator für vollständige Funktionalität
|
|
.\myp_installer.ps1
|
|
```
|
|
|
|
### Linux/Unix/macOS (Bash)
|
|
|
|
```bash
|
|
# Ausführbar machen und als Root für vollständige Funktionalität
|
|
chmod +x myp_installer.sh
|
|
sudo ./myp_installer.sh
|
|
```
|
|
|
|
Die konsolidierten Installer bieten folgende Funktionen:
|
|
|
|
- Systemvoraussetzungen prüfen
|
|
- Host-Konfiguration einrichten
|
|
- SSL-Zertifikate erstellen und verwalten
|
|
- Backend-Verbindung testen
|
|
- Frontend-/Backend-URL konfigurieren
|
|
- Debug-Server starten
|
|
- Vollständige MYP-Installation
|
|
- Umgebungs-Setup (Abhängigkeiten installieren)
|
|
- Anwendung starten (verschiedene Modi)
|
|
- Alte Dateien bereinigen
|
|
|
|
## Übersicht
|
|
|
|
Die MYP-Plattform ist eine moderne, webbasierte Lösung zur Verwaltung von 3D-Druckern in einer Unternehmensumgebung. Sie bietet:
|
|
|
|
- **Drucker-Management**: Überwachung und Steuerung von 3D-Druckern
|
|
- **Auftragsverwaltung**: Verwaltung von Druckaufträgen und Warteschlangen
|
|
- **Benutzerauthentifizierung**: GitHub OAuth und lokale Benutzerkonten
|
|
- **Smart-Plug-Integration**: Automatische Stromsteuerung über TP-Link Tapo-Steckdosen
|
|
- **SSL/HTTPS-Unterstützung**: Sichere Kommunikation mit selbstsignierten Zertifikaten
|
|
|
|
## Architektur
|
|
|
|
### Backend
|
|
|
|
- **Framework**: Flask (Python)
|
|
- **Datenbank**: SQLite
|
|
- **API**: RESTful API mit JSON
|
|
- **Authentifizierung**: Session-basiert mit Flask-Login
|
|
- **SSL**: Selbstsignierte Zertifikate
|
|
|
|
### Frontend
|
|
|
|
- **Framework**: Next.js (React)
|
|
- **Styling**: Tailwind CSS
|
|
- **Authentifizierung**: GitHub OAuth
|
|
- **API-Kommunikation**: Fetch API
|
|
|
|
## Installation
|
|
|
|
### Automatische Installation
|
|
|
|
Die einfachste Methode ist die Verwendung der konsolidierten Installer-Skripte:
|
|
|
|
#### Windows (PowerShell)
|
|
|
|
```powershell
|
|
# Als Administrator ausführen für vollständige Funktionalität
|
|
.\myp_installer.ps1
|
|
```
|
|
|
|
#### Linux/Unix/macOS (Bash)
|
|
|
|
```bash
|
|
# Ausführbar machen
|
|
chmod +x myp_installer.sh
|
|
|
|
# Als Root für vollständige Funktionalität
|
|
sudo ./myp_installer.sh
|
|
```
|
|
|
|
### Manuelle Installation
|
|
|
|
#### Voraussetzungen
|
|
|
|
- Python 3.6+ mit pip
|
|
- Node.js 16+ mit npm
|
|
- Docker und Docker Compose (optional)
|
|
- Git
|
|
|
|
#### Backend-Setup
|
|
|
|
```bash
|
|
cd backend
|
|
pip install -r requirements.txt
|
|
python app/app.py
|
|
```
|
|
|
|
#### Frontend-Setup
|
|
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
### Standard-Zugangsdaten
|
|
|
|
- **Admin E-Mail**: admin@mercedes-benz.com
|
|
- **Admin Passwort**: 744563017196A
|
|
|
|
### Umgebungsvariablen
|
|
|
|
#### Backend (.env)
|
|
|
|
```
|
|
SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
|
DATABASE_PATH=database/myp.db
|
|
TAPO_USERNAME=till.tomczak@mercedes-benz.com
|
|
TAPO_PASSWORD=744563017196A
|
|
SSL_ENABLED=True
|
|
```
|
|
|
|
#### Frontend (.env.local)
|
|
|
|
```
|
|
NEXT_PUBLIC_API_URL=https://localhost:443
|
|
NEXT_PUBLIC_BACKEND_HOST=localhost
|
|
NEXT_PUBLIC_BACKEND_PROTOCOL=https
|
|
GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc
|
|
GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd
|
|
```
|
|
|
|
## SSL-Zertifikate
|
|
|
|
Die Plattform verwendet selbstsignierte SSL-Zertifikate für sichere Kommunikation. Diese werden automatisch von den Installer-Skripten erstellt.
|
|
|
|
### Manuelle Zertifikatserstellung
|
|
|
|
```bash
|
|
cd backend
|
|
python app/create_ssl_cert.py -c instance/ssl/myp.crt -k instance/ssl/myp.key -n localhost
|
|
```
|
|
|
|
## Docker-Deployment
|
|
|
|
```bash
|
|
# Entwicklung
|
|
docker-compose up -d
|
|
|
|
# Produktion
|
|
docker-compose -f docker-compose.prod.yml up -d
|
|
```
|
|
|
|
## Entwicklung
|
|
|
|
### Backend-Entwicklung
|
|
|
|
```bash
|
|
cd backend
|
|
python app/app.py --debug
|
|
```
|
|
|
|
### Frontend-Entwicklung
|
|
|
|
```bash
|
|
cd frontend
|
|
npm run dev
|
|
```
|
|
|
|
### Tests ausführen
|
|
|
|
```bash
|
|
# Backend-Tests
|
|
cd backend
|
|
python -m pytest
|
|
|
|
# Frontend-Tests
|
|
cd frontend
|
|
npm test
|
|
```
|
|
|
|
## API-Dokumentation
|
|
|
|
Die REST API ist unter `/api/docs` verfügbar, wenn der Backend-Server läuft.
|
|
|
|
### Wichtige Endpunkte
|
|
|
|
- `GET /api/printers` - Liste aller Drucker
|
|
- `POST /api/jobs` - Neuen Druckauftrag erstellen
|
|
- `GET /api/jobs/{id}` - Auftragsstatus abrufen
|
|
- `POST /api/auth/login` - Benutzeranmeldung
|
|
|
|
## Fehlerbehebung
|
|
|
|
### Häufige Probleme
|
|
|
|
#### SSL-Zertifikatsfehler
|
|
|
|
```bash
|
|
# Zertifikate neu erstellen
|
|
python backend/app/create_ssl_cert.py -c backend/instance/ssl/myp.crt -k backend/instance/ssl/myp.key -n localhost
|
|
```
|
|
|
|
#### Port bereits in Verwendung
|
|
|
|
```bash
|
|
# Prozesse auf Port 443 beenden
|
|
sudo lsof -ti:443 | xargs kill -9
|
|
```
|
|
|
|
#### Datenbankfehler
|
|
|
|
```bash
|
|
# Datenbank zurücksetzen
|
|
rm backend/database/myp.db
|
|
python backend/app/models.py
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- Alle Passwörter sind in `CREDENTIALS.md` dokumentiert
|
|
- SSL/TLS-Verschlüsselung für alle Verbindungen
|
|
- Session-basierte Authentifizierung
|
|
- Rate Limiting für API-Endpunkte
|
|
|
|
## Lizenz
|
|
|
|
Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz AG bestimmt.
|
|
|
|
## Support
|
|
|
|
Bei Problemen oder Fragen wenden Sie sich an das Entwicklungsteam oder erstellen Sie ein Issue im Repository.
|
|
|
|
## Changelog
|
|
|
|
### Version 3.0
|
|
|
|
- Konsolidierte Installer-Skripte
|
|
- Verbesserte SSL-Unterstützung
|
|
- GitHub OAuth-Integration
|
|
- Erweiterte Drucker-Management-Funktionen
|
|
|
|
### Version 2.0
|
|
|
|
- Frontend-Neugestaltung mit Next.js
|
|
- REST API-Implementierung
|
|
- Docker-Unterstützung
|
|
|
|
### Version 1.0
|
|
|
|
- Grundlegende Drucker-Management-Funktionen
|
|
- Flask-Backend
|
|
- SQLite-Datenbank
|