Generate app ports in catalog and gateway

This commit is contained in:
2026-06-03 10:49:34 +02:00
parent 41cec599fc
commit 11a2d08e4c
2 changed files with 63 additions and 12 deletions
+35 -9
View File
@@ -29,16 +29,42 @@ cat > "$CADDY_FILE" <<EOF_CADDY
EOF_CADDY
if [ -f "$CATALOG_FILE" ]; then
awk '
/^[[:space:]]*-[[:space:]]id:/ {
app=$3
python3 - "$CATALOG_FILE" "$CADDY_FILE" <<'PY'
import sys
print " handle_path /apps/" app "/* {"
print " reverse_proxy " app ":8000"
print " }"
print ""
}
' "$CATALOG_FILE" >> "$CADDY_FILE"
catalog_file = sys.argv[1]
caddy_file = sys.argv[2]
apps = []
current = None
with open(catalog_file, "r", encoding="utf-8") as f:
for raw in f:
stripped = raw.strip()
if stripped.startswith("- id:"):
if current:
apps.append(current)
current = {"id": stripped.split(":", 1)[1].strip()}
elif current and ":" in stripped:
key, value = stripped.split(":", 1)
current[key.strip()] = value.strip().strip('"')
if current:
apps.append(current)
with open(caddy_file, "a", encoding="utf-8") as f:
for app in apps:
app_id = app.get("id")
port = app.get("container_port") or app.get("port") or "8000"
if not app_id:
continue
f.write(f" handle_path /apps/{app_id}/* {{\n")
f.write(f" reverse_proxy {app_id}:{port}\n")
f.write(" }\n\n")
PY
fi
cat >> "$CADDY_FILE" <<EOF_CADDY