Public-Hygiene 1/3: interne IP-Defaults (172.16.x) entfernen #57

Closed
opened 2026-06-02 14:33:26 +00:00 by chinux · 1 comment
Owner

Ziel (Public-Hygiene P0.2 — Teil 1/3)

Hardcodierte interne IP-Defaults entfernen — sie backen das Autoren-Netz ein und sind für fremde Umgebungen falsch.

Fundstellen

  • server/main.py:426 und :620: bridge_ip = found_node.ip_address or "172.16.1.1"
  • server/routers/admin_router.py:289 und :343: bridge_ip = node.ip_address or "172.16.1.1"
  • server/docker-compose.yml:39: TUNNEL_PUBLIC_HOST: ${TUNNEL_PUBLIC_HOST:-172.16.1.14}
  • server/.env.example:19: CORS-Beispiel http://172.16.1.14:8080

Fix

  • bridge_ip-Fallback (funktional!): statt or "172.16.1.1" → wenn node.ip_address leer ist, sauber fehlschlagen (HTTPException(400, "Node hat keine IP-Adresse – Agent neu verbinden/scannen")) statt eine fremde Privat-IP zu raten. Die Install-URL http://{bridge_ip}:9101 wäre mit dem Default ohnehin falsch.
  • docker-compose: Default entfernen → ${TUNNEL_PUBLIC_HOST} (Pflicht-Env) oder leer lassen.
  • .env.example: Beispiel-IP durch RFC-5737-Doku-IP ersetzen (203.0.113.10) oder Platzhalter <server-ip>.

⚠️ Debug-Hinweis

Die bridge_ip-Änderung ist verhaltensändernd: wenn ein Node keine ip_address hat, kam bisher still 172.16.1.1 raus; künftig ein klarer Fehler. Bitte mit einem Node ohne gesetzte IP testen.

Akzeptanz

  • Keine 172.16.x-Defaults mehr im Code/Compose/.env.example.
  • Install-Flow funktioniert mit gesetzter Node-IP; ohne IP klare Fehlermeldung.

Branch

chore/hygiene-remove-internal-ip-defaults

## Ziel (Public-Hygiene P0.2 — Teil 1/3) Hardcodierte **interne IP-Defaults** entfernen — sie backen das Autoren-Netz ein und sind für fremde Umgebungen falsch. ## Fundstellen - `server/main.py:426` und `:620`: `bridge_ip = found_node.ip_address or "172.16.1.1"` - `server/routers/admin_router.py:289` und `:343`: `bridge_ip = node.ip_address or "172.16.1.1"` - `server/docker-compose.yml:39`: `TUNNEL_PUBLIC_HOST: ${TUNNEL_PUBLIC_HOST:-172.16.1.14}` - `server/.env.example:19`: CORS-Beispiel `http://172.16.1.14:8080` ## Fix - **`bridge_ip`-Fallback (funktional!):** statt `or "172.16.1.1"` → wenn `node.ip_address` leer ist, sauber fehlschlagen (`HTTPException(400, "Node hat keine IP-Adresse – Agent neu verbinden/scannen")`) statt eine fremde Privat-IP zu raten. Die Install-URL `http://{bridge_ip}:9101` wäre mit dem Default ohnehin falsch. - **docker-compose:** Default entfernen → `${TUNNEL_PUBLIC_HOST}` (Pflicht-Env) oder leer lassen. - **.env.example:** Beispiel-IP durch RFC-5737-Doku-IP ersetzen (`203.0.113.10`) oder Platzhalter `<server-ip>`. ## ⚠️ Debug-Hinweis Die `bridge_ip`-Änderung ist **verhaltensändernd**: wenn ein Node keine `ip_address` hat, kam bisher still `172.16.1.1` raus; künftig ein klarer Fehler. Bitte mit einem Node ohne gesetzte IP testen. ## Akzeptanz - Keine `172.16.x`-Defaults mehr im Code/Compose/.env.example. - Install-Flow funktioniert mit gesetzter Node-IP; ohne IP klare Fehlermeldung. ## Branch `chore/hygiene-remove-internal-ip-defaults`
Author
Owner

Second Claude succeed

Verifiziert: Fallback or "172.16.1.1" entfernt; stattdessen 400-Guard bei leerer IP (main.py:429, admin_router.py:300); docker-compose.yml TUNNEL_PUBLIC_HOST/CORS_ORIGINS ohne interne Defaults; .env.example nutzt <server-ip>/localhost. Keine 172.16.x mehr.

**Second Claude succeed** ✅ Verifiziert: Fallback `or "172.16.1.1"` entfernt; stattdessen **400-Guard bei leerer IP** (`main.py:429`, `admin_router.py:300`); `docker-compose.yml` `TUNNEL_PUBLIC_HOST`/`CORS_ORIGINS` ohne interne Defaults; `.env.example` nutzt `<server-ip>`/localhost. Keine `172.16.x` mehr.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chinux/theProx#57
No description provided.