"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

80
config/README.md Normal file
View File

@@ -0,0 +1,80 @@
# MYP-Projekt Service-Installation
Diese Anleitung beschreibt, wie der MYP-Projektservice als systemd-Dienst eingerichtet wird, damit das System beim Booten automatisch startet.
## Voraussetzungen
- Docker und Docker Compose sind installiert
- sudo-Rechte auf dem System
## Installation des Services
1. Bearbeiten Sie die Datei `myp-service.service` und passen Sie die Pfade an:
- Ersetzen Sie `/path/to/Projektarbeit-MYP` mit dem tatsächlichen Pfad zum Projektverzeichnis
2. Kopieren Sie die Service-Datei in das systemd-Verzeichnis:
```bash
sudo cp myp-service.service /etc/systemd/system/
```
3. Aktualisieren Sie die systemd-Konfiguration:
```bash
sudo systemctl daemon-reload
```
4. Aktivieren Sie den Service, damit er beim Booten startet:
```bash
sudo systemctl enable myp-service
```
5. Starten Sie den Service:
```bash
sudo systemctl start myp-service
```
## Überprüfen des Service-Status
Um den Status des Services zu überprüfen:
```bash
sudo systemctl status myp-service
```
## Stoppen des Services
Um den Service zu stoppen:
```bash
sudo systemctl stop myp-service
```
## Deaktivieren des Autostart
Um den automatischen Start zu deaktivieren:
```bash
sudo systemctl disable myp-service
```
## Fehlerbehebung
Überprüfen Sie die Logs bei Problemen:
```bash
journalctl -u myp-service
```
## Hinweis für Windows-Systeme
Für Windows-Systeme empfehlen wir die Verwendung des Task-Schedulers:
1. Öffnen Sie den Task-Scheduler (taskschd.msc)
2. Erstellen Sie eine neue Aufgabe:
- Trigger: "Bei Start"
- Aktion: "Programm starten"
- Programm/Skript: `powershell.exe`
- Argumente: `-ExecutionPolicy Bypass -File "C:\Pfad\zu\Projektarbeit-MYP\start.ps1"`
- "Mit höchsten Privilegien ausführen" aktivieren
Dadurch wird das MYP-Projekt automatisch beim Systemstart gestartet.

View File

@@ -0,0 +1,58 @@
#!/bin/bash
# MYP-Projekt systemd-Service Installationsskript
# Überprüfen, ob das Skript mit Root-Rechten ausgeführt wird
if [ "$EUID" -ne 0 ]; then
echo "Bitte führen Sie dieses Skript mit Root-Rechten aus (sudo)."
exit 1
fi
# Ermitteln des Projektpfads
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
echo "MYP-Projekt Service-Installation"
echo "================================"
echo "Projektpfad: $PROJECT_DIR"
# Kopieren der Service-Datei mit angepasstem Pfad
echo "Erstelle systemd-Service-Datei..."
cp "$SCRIPT_DIR/myp-service.service" /tmp/myp-service.service
sed -i "s|/path/to/Projektarbeit-MYP|$PROJECT_DIR|g" /tmp/myp-service.service
# Kopieren der Service-Datei in das systemd-Verzeichnis
echo "Installiere systemd-Service..."
cp /tmp/myp-service.service /etc/systemd/system/
rm /tmp/myp-service.service
# Setze Ausführungsrechte für das Start-Skript
chmod +x "$PROJECT_DIR/start.sh"
# Systemd aktualisieren
echo "Aktualisiere systemd..."
systemctl daemon-reload
# Service aktivieren
echo "Aktiviere Service für Autostart..."
systemctl enable myp-service
echo
echo "Installation abgeschlossen."
echo "Möchten Sie den Service jetzt starten? (j/n)"
read -r ANTWORT
if [[ "$ANTWORT" =~ ^[Jj]$ ]]; then
echo "Starte MYP-Projekt Service..."
systemctl start myp-service
# Status anzeigen
echo
echo "Service-Status:"
systemctl status myp-service --no-pager
fi
echo
echo "Sie können den Service-Status jederzeit mit folgendem Befehl überprüfen:"
echo " sudo systemctl status myp-service"
echo
echo "Der MYP-Projekt Service wird nun bei jedem Systemstart automatisch gestartet."

View File

@@ -0,0 +1,66 @@
@echo off
echo MYP-Projekt Autostart-Einrichtung
echo =================================
REM Erfordert Admin-Rechte
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Bitte führen Sie dieses Skript mit Administratorrechten aus.
echo Klicken Sie mit der rechten Maustaste und wählen Sie "Als Administrator ausführen".
pause
exit /b 1
)
REM Pfad zum Projektverzeichnis ermitteln
set SCRIPT_DIR=%~dp0
set PROJECT_DIR=%SCRIPT_DIR%..
cd %PROJECT_DIR%
set PROJECT_PATH=%CD%
echo.
echo Projektpfad: %PROJECT_PATH%
REM Erstellung der PowerShell-Skriptdatei für den Task
echo Erstelle PowerShell-Skriptdatei für den Windows Task...
set PS_SCRIPT=%PROJECT_PATH%\config\secure\myp-autostart.ps1
if not exist "%PROJECT_PATH%\config\secure" mkdir "%PROJECT_PATH%\config\secure"
echo $ErrorActionPreference = "Stop" > "%PS_SCRIPT%"
echo try { >> "%PS_SCRIPT%"
echo Write-Host "Starte MYP-Projekt..." >> "%PS_SCRIPT%"
echo Set-Location -Path "%PROJECT_PATH%" >> "%PS_SCRIPT%"
echo Start-Process -FilePath "powershell.exe" -ArgumentList "-ExecutionPolicy Bypass -File '%PROJECT_PATH%\start.ps1'" >> "%PS_SCRIPT%"
echo Write-Host "MYP-Projekt erfolgreich gestartet" >> "%PS_SCRIPT%"
echo } catch { >> "%PS_SCRIPT%"
echo $ErrorMessage = $_.Exception.Message >> "%PS_SCRIPT%"
echo Write-Host "Fehler beim Starten des MYP-Projekts: $ErrorMessage" >> "%PS_SCRIPT%"
echo Add-Content -Path "%PROJECT_PATH%\logs\autostart_error.log" -Value "$(Get-Date) - Fehler: $ErrorMessage" >> "%PS_SCRIPT%"
echo exit 1 >> "%PS_SCRIPT%"
echo } >> "%PS_SCRIPT%"
REM Erstellung des geplanten Tasks
echo Erstelle geplanten Windows Task...
schtasks /create /tn "MYP-Projekt Autostart" /sc onstart /delay 0000:30 /ru "System" /rl highest /tr "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File \"%PS_SCRIPT%\"" /f
if %ERRORLEVEL% NEQ 0 (
echo Fehler bei der Erstellung des geplanten Tasks.
pause
exit /b 1
)
echo.
echo Der MYP-Projekt Autostart wurde erfolgreich eingerichtet.
echo Das System wird nun bei jedem Systemstart automatisch das MYP-Projekt starten.
echo.
echo Möchten Sie das Projekt jetzt starten?
choice /c JN /m "Projekt jetzt starten (J/N)?"
if %ERRORLEVEL% EQU 1 (
echo Starte MYP-Projekt...
powershell.exe -ExecutionPolicy Bypass -File "%PROJECT_PATH%\start.ps1"
)
echo.
echo Installation abgeschlossen.
pause

View File

@@ -0,0 +1,14 @@
[Unit]
Description=MYP Projektarbeit Service
After=docker.service network.target
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/path/to/Projektarbeit-MYP
ExecStart=/path/to/Projektarbeit-MYP/start.sh
ExecStop=/usr/bin/docker-compose -f /path/to/Projektarbeit-MYP/docker-compose.yml down
[Install]
WantedBy=multi-user.target