chore(cleanup): Altlasten entfernt, Webroot-Sperre und Supervisor-Route ergaenzt

Fruehjahrsputz. Alles hier ist unabhaengig von der laufenden Supervisor-
Arbeit im Arbeitsverzeichnis - die bleibt unangetastet.

Entfernt:
- Die zwoelf Symbole unter public/assets/ waren bitgleiche Dubletten der
  Dateien in public/assets/icons/. Referenziert wurde ausschliesslich der
  Pfad mit icons/. getMonitorIconUrl() setzt flach gespeicherte Altwerte
  aus der Datenbank jetzt auf icons/ um, damit bestehende Monitore ihr
  Symbol behalten.
- System.CommandLine (2.0.0-beta4) aus dem Packager. Kein using, kein
  Symbol, die Argumente werden von Hand geparst. Build bleibt fehlerfrei.

Geschlossen:
- client-php/ und mcp/ wurden weder von der .htaccess gesperrt noch vom
  Deployment ausgeschlossen. Die .mjs-Datei haette der Webserver im
  Klartext ausgeliefert. Beide gehoeren nicht ins Webroot: die PHP-Datei
  wird ins Zielprojekt kopiert, der MCP-Server laeuft lokal ueber stdio.
  Jetzt in beiden Ausschlusslisten - wie client-dotnet.
- Fuer /api/supervisor/v1/ fehlte die Rewrite-Regel. Der Datei-Fallback
  haette /api/supervisor/v1/findings auf eine nicht vorhandene Datei
  geleitet, obwohl Code und OpenAPI diese Schreibweise vorsehen.

Ergaenzt:
- __pycache__/ und *.pyc in .gitignore.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Deploymentcenter Bot
2026-08-23 12:20:33 +02:00
co-authored by Claude Opus 5
parent 687ee0cefc
commit 9d0261306c
17 changed files with 16 additions and 74 deletions
+3
View File
@@ -7,6 +7,9 @@ var/*.lock
artifacts/
*.bak
.DS_Store
# Bytecode-Cache der Deployment-Skripte
__pycache__/
*.pyc
bin/
obj/
*.user
+2 -1
View File
@@ -34,6 +34,7 @@ Options -Indexes
RewriteRule ^api/updateservice/v1(?:/(.*))?$ public/api/updateservice/v1/index.php [L,QSA]
RewriteRule ^api/tokens/v1/provision/?$ public/api/tokens/v1/provision.php [L,QSA]
RewriteRule ^api/setup/v1(?:/(.*))?$ public/api/setup/v1/index.php [L,QSA]
RewriteRule ^api/supervisor/v1(?:/(.*))?$ public/api/supervisor/v1/index.php [L,QSA]
# Fallback fuer direkt adressierte Dateien unterhalb von /api/
RewriteRule ^api/(.*)$ public/api/$1 [L,QSA]
@@ -57,7 +58,7 @@ Options -Indexes
# ------------------------------------------------------------------
# 5. Alles Uebrige sperren: Anwendungscode, Konfiguration, Skripte
# ------------------------------------------------------------------
RewriteRule ^(config|src|sql|scripts|cli|var|client-dotnet)(/|$) - [F,L]
RewriteRule ^(config|src|sql|scripts|cli|var|client-dotnet|client-php|mcp)(/|$) - [F,L]
RewriteRule ^Serverdaten\.txt$ - [F,L]
</IfModule>
@@ -11,7 +11,6 @@
<ItemGroup>
<PackageReference Include="FluentFTP" Version="54.1.2" />
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
</ItemGroup>
<ItemGroup>
-5
View File
@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="20" fill="#F2622E"/>
<path d="M50 20 L80 35 L80 65 L50 80 L20 65 L20 35 Z" fill="none" stroke="#FFF" stroke-width="6"/>
<circle cx="50" cy="50" r="10" fill="#FFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 299 B

-10
View File
@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="20" fill="#2496ED"/>
<rect x="20" y="45" width="12" height="10" rx="2" fill="#FFF"/>
<rect x="35" y="45" width="12" height="10" rx="2" fill="#FFF"/>
<rect x="50" y="45" width="12" height="10" rx="2" fill="#FFF"/>
<rect x="35" y="32" width="12" height="10" rx="2" fill="#FFF"/>
<rect x="50" y="32" width="12" height="10" rx="2" fill="#FFF"/>
<rect x="65" y="45" width="12" height="10" rx="2" fill="#FFF"/>
<path d="M15 62 Q 50 82 85 62 Q 90 70 85 75 Q 45 92 10 70 Z" fill="#FFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 624 B

-11
View File
@@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<circle cx="50" cy="50" r="48" fill="#FCC624"/>
<ellipse cx="50" cy="42" rx="22" ry="26" fill="#000000"/>
<ellipse cx="50" cy="45" rx="16" ry="20" fill="#FFFFFF"/>
<circle cx="43" cy="35" r="4" fill="#000"/>
<circle cx="57" cy="35" r="4" fill="#000"/>
<polygon points="46,40 54,40 50,48" fill="#FFA500"/>
<ellipse cx="50" cy="72" rx="24" ry="14" fill="#000000"/>
<ellipse cx="36" cy="84" rx="12" ry="6" fill="#FFA500"/>
<ellipse cx="64" cy="84" rx="12" ry="6" fill="#FFA500"/>
</svg>

Before

Width:  |  Height:  |  Size: 588 B

-6
View File
@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="20" fill="#00618A"/>
<path d="M20 75 C 20 40, 45 25, 75 35 C 80 50, 70 70, 50 75 Z" fill="#E48E00"/>
<circle cx="65" cy="40" r="4" fill="#FFF"/>
<text x="50" y="88" font-size="18" font-family="sans-serif" font-weight="bold" fill="#FFF" text-anchor="middle">MySQL</text>
</svg>

Before

Width:  |  Height:  |  Size: 406 B

-4
View File
@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<polygon points="50,5 92,28 92,72 50,95 8,72 8,28" fill="#009639"/>
<path d="M30 70 L30 30 L65 70 L65 30" stroke="#FFF" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 295 B

-4
View File
@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<polygon points="50,10 90,32 90,78 50,100 10,78 10,32" fill="#5FA04E"/>
<text x="50" y="62" font-size="24" font-family="sans-serif" font-weight="bold" fill="#FFF" text-anchor="middle">node</text>
</svg>

Before

Width:  |  Height:  |  Size: 293 B

-4
View File
@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<ellipse cx="50" cy="50" rx="46" ry="28" fill="#777BB4"/>
<text x="50" y="58" font-size="28" font-family="sans-serif" font-weight="bold" fill="#FFF" text-anchor="middle">php</text>
</svg>

Before

Width:  |  Height:  |  Size: 278 B

-4
View File
@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="20" fill="#E57000"/>
<path d="M25 25 L75 25 L75 45 L45 45 L45 55 L75 55 L75 75 L25 75 Z" fill="#FFFFFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 238 B

-6
View File
@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<path d="M48 10 C 25 10, 25 22, 25 22 L 25 34 L 50 34 L 50 38 L 20 38 C 20 38, 8 38, 8 60 C 8 82, 20 82, 20 82 L 32 82 L 32 70 C 32 70, 32 56, 48 56 L 62 56 C 62 56, 75 56, 75 42 L 75 22 C 75 22, 75 10, 48 10 Z" fill="#3776AB"/>
<circle cx="36" cy="22" r="4" fill="#FFF"/>
<path d="M52 90 C 75 90, 75 78, 75 78 L 75 66 L 50 66 L 50 62 L 80 62 C 80 62, 92 62, 92 40 C 92 18, 80 18, 80 18 L 68 18 L 68 30 C 68 30, 68 44, 52 44 L 38 44 C 38 44, 25 44, 25 58 L 25 78 C 25 78, 25 90, 52 90 Z" fill="#FFD43B"/>
<circle cx="64" cy="78" r="4" fill="#000"/>
</svg>

Before

Width:  |  Height:  |  Size: 650 B

-5
View File
@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="20" fill="#D82C20"/>
<polygon points="50,20 80,35 50,50 20,35" fill="#FFF"/>
<polygon points="50,45 80,60 50,75 20,60" fill="#FFF" opacity="0.8"/>
</svg>

Before

Width:  |  Height:  |  Size: 281 B

-9
View File
@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="24" height="24">
<rect width="100" height="100" rx="16" fill="#1E232B"/>
<rect x="15" y="15" width="70" height="30" rx="6" fill="#242A33" stroke="#F2622E" stroke-width="3"/>
<circle cx="30" cy="30" r="4" fill="#37C26B"/>
<circle cx="42" cy="30" r="4" fill="#37C26B"/>
<rect x="15" y="55" width="70" height="30" rx="6" fill="#242A33" stroke="#F2622E" stroke-width="3"/>
<circle cx="30" cy="70" r="4" fill="#37C26B"/>
<circle cx="42" cy="70" r="4" fill="#37C26B"/>
</svg>

Before

Width:  |  Height:  |  Size: 553 B

-3
View File
@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88 88" width="24" height="24">
<path fill="#00ADEF" d="M0 12.5L35.7 7.6v33.4H0V12.5zm0 32.5h35.7v33.5L0 73.8V45zm39.5-38L88 0v41H39.5V7zm0 38H88v41l-48.5-6.8V45z"/>
</svg>

Before

Width:  |  Height:  |  Size: 227 B

+7 -1
View File
@@ -1673,9 +1673,15 @@ function getMonitorIconUrl(?string $icon, ?string $source, ?string $os, ?string
if (str_starts_with($icon, 'custom/')) {
return 'assets/icons/' . $icon;
}
if (str_starts_with($icon, 'assets/')) {
if (str_starts_with($icon, 'assets/icons/')) {
return $icon;
}
// Fruehere Fassungen legten die Symbole flach unter assets/ ab und
// schrieben diesen Pfad in die Datenbank. Die Dateien liegen jetzt nur
// noch unter assets/icons/ - Altwerte werden hier umgesetzt.
if (str_starts_with($icon, 'assets/')) {
return 'assets/icons/' . substr($icon, strlen('assets/'));
}
return 'assets/icons/' . $icon;
}
+4
View File
@@ -25,6 +25,10 @@ IGNORE_PATTERNS = {
'log',
'__pycache__',
'client-dotnet',
# Bibliothek zum Mitnehmen ins Zielprojekt bzw. lokal ueber stdio
# betriebener MCP-Server - beide gehoeren nicht ins Webroot.
'client-php',
'mcp',
# Gebaute Installer-Binaries. Sie gehoeren nach /installer/ und werden
# von upload_installer.py dorthin gebracht - ueber diesen Weg landeten
# sonst ~100 MB zusaetzlich unter /artifacts/ im Webroot.