From 51aa526f35807d8666f2b60917e42229bbd1fc0f Mon Sep 17 00:00:00 2001 From: Deploymentcenter Bot Date: Mon, 31 Aug 2026 10:49:52 +0200 Subject: [PATCH] fix(deploy): interne Anleitungen bleiben aus dem Webroot docs/TESTUMGEBUNG.md und docs/TESTINSTANZ.md gingen bei jedem Deployment mit hoch. Erreichbar waren sie dort nicht - aber nur, weil die Rewrite-Regel ^docs/(.+)$ auf public/docs/ umleitet und dort nichts Gleichnamiges liegt. Das ist das Zufallsergebnis einer Regel, die fuer etwas anderes da ist: Faellt mod_rewrite aus oder aendert jemand ihre Reihenfolge, liegen interne Adresse, Benutzername und der Weg zur sudo-Freischaltung offen. Beide Dateien sagen in ihrem eigenen Kopf, dass sie da nicht hingehoeren. Pfadgenau statt ueber IGNORE_PATTERNS: Ein Eintrag "docs" haette auch public/docs/ ausgeschlossen. docs/ selbst bleibt drin - cli/roadmap.php liest DC_ROOT/docs/ROADMAP.md, und die Integrationsanleitungen sind aus dem WebUI verlinkt. Co-Authored-By: Claude Opus 5 --- scripts/deploy.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scripts/deploy.py b/scripts/deploy.py index f29f260..8898a25 100644 --- a/scripts/deploy.py +++ b/scripts/deploy.py @@ -57,6 +57,26 @@ IGNORE_PATTERNS = { 'tests', } +# Einzelne Dateien, pfadgenau. Anders als IGNORE_PATTERNS, das jeden Pfadteil +# vergleicht: Ein Eintrag "docs" schloesse auch public/docs/ aus, und ein +# Eintrag "ROADMAP.md" jede gleichnamige Datei irgendwo im Baum. +# +# Warum ueberhaupt: Diese beiden Anleitungen nennen die interne Adresse der +# Test-VM, einen Benutzernamen und den Weg, dort sudo freizuschalten - beide +# sagen das in ihrem eigenen Kopf ("Bewusst nicht unter public/"). Erreichbar +# waren sie im Webroot bisher nicht, weil die Rewrite-Regel ^docs/ auf +# public/docs/ umleitet und dort nichts Gleichnamiges liegt. Das ist ein +# Zufallsergebnis einer Regel, die fuer etwas anderes da ist: Faellt +# mod_rewrite aus oder aendert jemand die Reihenfolge, liegen sie offen. Was +# nicht hochgeladen wird, kann auch nicht ausgeliefert werden. +# +# docs/ selbst bleibt drin: cli/roadmap.php liest DC_ROOT/docs/ROADMAP.md, und +# die Integrationsanleitungen werden aus dem WebUI verlinkt. +IGNORE_PATHS = { + 'docs/TESTUMGEBUNG.md', + 'docs/TESTINSTANZ.md', +} + def load_config(): if not CONFIG_FILE.exists(): print(f"Error: Config file {CONFIG_FILE} does not exist.") @@ -102,6 +122,8 @@ def should_ignore(rel_path): parts = Path(rel_path).parts if not parts: return False + if Path(rel_path).as_posix() in IGNORE_PATHS: + return True for part in parts: if part in IGNORE_PATTERNS: return True